我有一个使用CocoaPods的iOS项目。一切都很顺利,直到另一个开发人员开始在同一个项目上工作。他做了一些更改(据我所知只是对代码进行了更改),并在回购中创建了一个新的分支。我已经检查了他的分支,并试图构建它,但我得到一个错误:ASLogger/ASLogger.h文件未找到。

即使我删除了整个项目,重新复制并使用“pods install .”,构建失败仍然存在。你知道问题出在哪里吗?如果你需要更多的信息,尽管问。


当前回答

我是在Xcode 5.0的GM种子上,我不能让这些答案工作。我在SO上尝试了多个不同的关于头导入/ cocoapods的问题。

最后我找到了一个适合我的解决方案:我通过Mac AppStore升级到Xcode 5.0(安装在GM种子的顶部),现在头导入工作正常。

我的系统上还有Xcode 5的测试版,我也把它删除了。也许是这两件事的结合,但希望这能帮助到其他人。

其他回答

我是在Xcode 5.0的GM种子上,我不能让这些答案工作。我在SO上尝试了多个不同的关于头导入/ cocoapods的问题。

最后我找到了一个适合我的解决方案:我通过Mac AppStore升级到Xcode 5.0(安装在GM种子的顶部),现在头导入工作正常。

我的系统上还有Xcode 5的测试版,我也把它删除了。也许是这两件事的结合,但希望这能帮助到其他人。

这里还有另一个原因:所有的头路径看起来都很好,但我们在预编译(.pch)文件中试图读取pod头时仍然有一个错误

(即#import <CocoaLumberjack/CocoaLumberjack.h>)。

查看原始构建输出,我终于注意到这个错误破坏了我们的Watch OS扩展目标,而不是我们正在构建的主要目标,因为我们还将.pch预编译的头文件导入到Watch OS目标中,并且它在那里失败了。确保你的Watch OS目标设置不会试图导入.pch文件(特别是如果你从主目标设置导入,就像我做的那样!)

我认为一个最终的解决方案是去构建设置->搜索路径->用户头搜索路径,找到你的库路径,并在Finder中通过它。确保所有路径都存在,包括导入路径。

对我来说,我的道路比教程更短。在教程中,它类似于#import <SDK/path/to/ SDK/File.h>,但事实证明它只是#import <SDK/File.h>

其他两个答案在这里都没有帮助。我发现了另外两个可以解决它的问题:

Xcode项目(你的项目)的配置应该设置为“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

然后进入终端,切换到您的检查文件所在的文件夹,并键入

bash check

对我来说,修复它的是我的Pods项目的iOS部署目标低于我的项目本身。一旦我使它与我的项目相同,它就能够找到头文件。