Fil*_*nik 185 cocoa build objective-c ios cocoapods
我有一个使用CocoaPods的iOS项目.一切都在顺利进行,直到另一位开发人员开始在同一个项目上工作.他做了一些更改(据我所知只对代码)并在回购中创建了一个新的分支.我检查了他的分支并尝试构建它,但是我收到一个错误:找不到ASLogger/ASLogger.h文件.
即使我删除了整个项目并制作了新的副本并使用"pods install".构建失败仍然存在.你知道问题出在哪里吗?如果您需要更多信息,请询问.
wag*_*les 205
更新
确保您的目标Podfile包含link_with缺少配置文件的目标.Cocoapods 默认只设置第一个目标.例如
platform :osx, '10.7'
pod 'JSONKit', '~> 1.4'
link_with 'Pomo', 'Pomo Dev', 'Pomo Tests'
Run Code Online (Sandbox Code Playgroud)
------结束更新
注意:请注意,您必须查看项目 - >信息 - >配置,了解以下步骤.
我有类似的症状,发现该pods.xcconfig文件没有包含在target我试图构建的具体内容中.其他一些建议的解决方案对我有用,但这个解决方案似乎解决了潜在问题的一部分.

简单的解决方案是更改为没有一组的目标设置配置文件.

Bil*_*ess 89
更新
我已经更新了这个,因为我的原始答案,得到了downvote,所以我希望这有帮助.如果确实如此,希望它会得到我的投票.
如果未导入标头,则可能存在冲突HEADER_SEARCH_PATHS.尝试添加$(inherited)到构建设置中的标题搜索路径,以确保它从CocoaPods中提取.xcconfig文件中包含的任何搜索路径.
这应该有助于解决任何冲突并正确导入您的源.
Alb*_*ing 77
1.检查
构建设置 - >搜索路径 - >用户标题搜索路径 - >
2.检查导入样式(KEY POINT),如果podfile已设置
use_frameworks!
在你的File-Bridging-Header.h,格式化程序应该这样
#import "MBProgressHUD.h"
否则应该在下面
#import <MBProgressHUD.h>
那一定要工作!相信我
ave*_*dev 57
头文件,你将成为我的死...
最后通过添加(包括引号)使其工作
"${PODS_ROOT}/BuildHeaders"
Run Code Online (Sandbox Code Playgroud)
到用户标题搜索路径条目,并检查'递归'.
小智 52
我发现${PODS_HEADERS_SEARCH_PATHS}缺少它并且没有在我的开发git分支中定义,所以我添加 "$(SRCROOT)/Pods/Headers/"了Header Search Paths with recursive
这对我来说没问题
bra*_*ray 35
其他两个答案都没有帮助.我发现了另外两个可能解决它的问题:
Xcode项目中的项目 - >信息 - >配置(您的项目)应该设置为Debug,Release(和你有的)的'Pods'.请参阅"未找到标头 - 未包含搜索路径"
也许您必须使用link_with命令链接目标.请参阅"无法在静态库项目中查找标头"
编辑 您可以通过以下方式检查符号链接:创建名为"check"的文本文件,不带扩展名.将这些行复制到其中:
file=/Users/youUserName/XcodeProjectName/Pods/BuildHeaders/SVProgressHUD/SVProgressHUD.h
if [[ ! -e $file && -L $file ]]; then
echo "$file symlink is broken!"
else
echo "symlink works"
fi
Run Code Online (Sandbox Code Playgroud)
然后转到终端,切换到检查文件所在的文件夹并键入
bash check
Run Code Online (Sandbox Code Playgroud)
Sno*_*ash 35
这对我有用:
转到目标>"构建设置"选项卡,找到"用户标题搜索路径"设置.
将其设置为"$(BUILT_PRODUCTS_DIR)"并选中"递归"复选框.
现在,构建的目标将搜索工作空间的共享构建目录,以找到可链接的头文件.
====
UPDATE
我最近遇到了类似的问题(虽然略有不同).事实证明Xcode找不到Pod,因为我打开了.xcodeproj文件而不是.xcworkspace文件.未来可能会帮助别人.
Sco*_*ter 19
如果以上都不适合您并且您因为刚刚切换到use_frameworks!Podfile 而发现此错误,请继续阅读:
在我了解到在我的特定情况下根本不是关于搜索标题路径之前,我尝试了上面的所有解决方案以及更多解决方案; 这是当你切换到use_frameworks!你的Podfile时,你不再需要在你的桥接头中包含框架,事实上Xcode将抛出非常无用的"无法找到头"错误.
您需要做的是从桥接头文件中删除所有导入,而是import Module根据需要在各个Swift文件中使用Swift ,就像使用Swift框架一样.
如果您在Obj-C类中使用任何框架头文件(在我的情况下我们有一个使用FBSDK的便利类),您需要将其从本地导入更改#import "Module.h"为全局导入(这意味着更改为#import <Module/Module.h>,应该自动完成当你开始输入框架名称时为你.在我的情况下它是<AFNetworking/AFHTTPRequestOperationManager.h>).
编辑:我已经知道做一个@import Module使用更安全的伞文件.
Tie*_*eme 16
你尝试过导入Cocoapods风格吗?
#import <ASLogger.h>
Run Code Online (Sandbox Code Playgroud)
网站上的信息不是很清楚,我提交了拉取请求:
https://github.com/CocoaPods/cocoapods.org/pull/34
更新:他们拉了我的请求:)
我是团队中唯一遇到同样问题的开发人员,它对每个人都很有效,所以我意识到它必须是我的环境.我git clone在另一个目录中尝试了相同的项目并且编译得很完美,然后我意识到它必须是我的项目路径的某些地方的Xcode缓存,"某处"是DerivedData文件夹,只需删除它并做一个干净的构建你的项目,它对我有用.
你可以通过以下方式获取路径,甚至在finder中打开文件夹:
Xcode - > 首选项 - > 位置 - >**DerivedData
| 归档时间: |
|
| 查看次数: |
143778 次 |
| 最近记录: |