我有一个使用CocoaPods的iOS项目。一切都很顺利,直到另一个开发人员开始在同一个项目上工作。他做了一些更改(据我所知只是对代码进行了更改),并在回购中创建了一个新的分支。我已经检查了他的分支,并试图构建它,但我得到一个错误:ASLogger/ASLogger.h文件未找到。
即使我删除了整个项目,重新复制并使用“pods install .”,构建失败仍然存在。你知道问题出在哪里吗?如果你需要更多的信息,尽管问。
我有一个使用CocoaPods的iOS项目。一切都很顺利,直到另一个开发人员开始在同一个项目上工作。他做了一些更改(据我所知只是对代码进行了更改),并在回购中创建了一个新的分支。我已经检查了他的分支,并试图构建它,但我得到一个错误:ASLogger/ASLogger.h文件未找到。
即使我删除了整个项目,重新复制并使用“pods install .”,构建失败仍然存在。你知道问题出在哪里吗?如果你需要更多的信息,尽管问。
当前回答
如果以上都不适合你,你发现这个错误,因为你刚刚切换到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模块使用伞文件,这是更安全的。
其他回答
没有一个答案对我有帮助(我把我的pod链接到所有目标,构建配置设置正确,正确设置搜索路径“$(inherited)”,等等……)。
在我使用标准的安装/更新命令将cocoapods更新到最新的调试版本后,问题自行消失:
gem install cocoapods --pre
or:
sudo gem install cocoapods --pre
(如果安装过程中使用了sudo)。
那一定是茧足虫。
1.检查
build settings ->搜索路径->用户头搜索路径-> . build settings
“$ {PODS_ROOT} /”递归
2.检查导入样式(关键点), 如果你的podfile已经设置
use_frameworks !
在File-Bridging-Header.h中,格式化器应该是这样的
#进口“MBProgressHUD.h”
Else应该在下面
#进口< MBProgressHUD.h >
3.那一定是工作!相信我
维基给出了如何解决这个问题的建议:
如果Xcode找不到依赖项的头文件: 检查pod头文件是否在Pods/Headers中被正确地符号链接 并且您没有覆盖HEADER_SEARCH_PATHS(参见#1)。如果Xcode 还是找不到他们,作为最后的手段,你可以提前进口, 例如,#导入“Pods/ ssziparchvee .h”。
这里还有另一个原因:所有的头路径看起来都很好,但我们在预编译(.pch)文件中试图读取pod头时仍然有一个错误
(即#import <CocoaLumberjack/CocoaLumberjack.h>)。
查看原始构建输出,我终于注意到这个错误破坏了我们的Watch OS扩展目标,而不是我们正在构建的主要目标,因为我们还将.pch预编译的头文件导入到Watch OS目标中,并且它在那里失败了。确保你的Watch OS目标设置不会试图导入.pch文件(特别是如果你从主目标设置导入,就像我做的那样!)
你试过引进Cocoapods风格吗?
#import <ASLogger.h>
网站上的信息不是很清楚,我提交了一个拉请求:
https://github.com/CocoaPods/cocoapods.org/pull/34
更新:他们撤回了我的请求:)