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

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


当前回答

更新

确保您的Podfile包含link_with目标缺少配置文件。否则,Cocoapods默认只设置第一个目标。如。

platform :osx, '10.7'
pod 'JSONKit',       '~> 1.4'

link_with 'Pomo', 'Pomo Dev', 'Pomo Tests'

------结束


注意:请注意,您必须查看项目->信息->配置下面的步骤。


我有类似的症状,发现豆荚。xcconfig文件没有包含在我试图构建的特定目标中。其他一些建议的解决方案对我来说很有效,但这个解决方案似乎解决了部分潜在问题。

简单的解决方案是为没有set的目标更改配置文件set。

其他回答

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

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

1.检查

build settings ->搜索路径->用户头搜索路径-> . build settings

“$ {PODS_ROOT} /”递归

2.检查导入样式(关键点), 如果你的podfile已经设置

use_frameworks !

在File-Bridging-Header.h中,格式化器应该是这样的

#进口“MBProgressHUD.h”

Else应该在下面

#进口< MBProgressHUD.h >

3.那一定是工作!相信我

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

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

如果以上都不适合你,你发现这个错误,因为你刚刚切换到use_frameworks!在你的播客文件中,继续阅读:

我尝试了上面所有的解决方案,在了解到在我的特定情况下,它根本不是关于搜索头路径;当你切换到use_frameworks时!在Podfile中,你不再需要在桥接头中包含框架,事实上Xcode会抛出非常没有帮助的“unable to find header”错误。

你需要做的是删除桥接头文件中的所有导入,取而代之的是根据需要在你的个人Swift文件中使用Swift导入模块,就像你对Swift框架一样。

如果你在你的Obj-C类中使用任何框架头文件(在我的例子中,我们有一个使用FBSDK的方便类),你需要将它从本地导入更改为全局导入(这意味着将#import "Module.h"更改为#import <Module/Module.h>,当你开始键入框架名称时,它应该自动完成。在我的例子中,它是<AFNetworking/AFHTTPRequestOperationManager.h>)。

编辑:我已经了解到做一个@import模块使用伞文件,这是更安全的。

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

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