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

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


当前回答

如果没有导入头文件,则可能在HEADER_SEARCH_PATHS中存在冲突。尝试将$(inherited)添加到Build Settings中的头搜索路径,以确保它从CocoaPods的.xcconfig文件中提取任何搜索路径。

这将有助于解决任何冲突并正确导入源代码。

其他回答

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

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

没有一个答案对我有帮助(我把我的pod链接到所有目标,构建配置设置正确,正确设置搜索路径“$(inherited)”,等等……)。

在我使用标准的安装/更新命令将cocoapods更新到最新的调试版本后,问题自行消失:

   gem install cocoapods --pre

or:

   sudo gem install cocoapods --pre

(如果安装过程中使用了sudo)。

那一定是茧足虫。

对我来说有用的是选择Pods项目,在Pod项目的目标目录中找到并选择缺少头的目标框架,并在目标的构建设置中“Architectures”下将“Build Active Architecture Only”设置为“No”。

这是我的答案,我更新cocoapods,我认为这使得PODS_HEADERS_SEARCH_PATHS消失。我的解决方案与此类似,但我使用“$(PODS_ROOT)/Headers”- Andrew Aitken

非常感谢你的回答。我花了很长时间寻找解决问题的方法。非常感谢。

我是团队中唯一遇到相同问题的开发人员,它对每个人都很有效,所以我意识到这必须是我的环境。我在另一个目录中尝试了同一个项目的git克隆,它编译得很完美,然后我意识到它必须是Xcode缓存的东西,为我的项目路径的某处,“某处”是DerivedData文件夹,只需删除它,并对你的项目进行干净的构建,它为我工作。

你可以获取路径,甚至在finder中打开文件夹:

Xcode -> 首选项 -> 位置 -> **派生数据