我有一个使用CocoaPods的iOS项目。一切都很顺利,直到另一个开发人员开始在同一个项目上工作。他做了一些更改(据我所知只是对代码进行了更改),并在回购中创建了一个新的分支。我已经检查了他的分支,并试图构建它,但我得到一个错误:ASLogger/ASLogger.h文件未找到。
即使我删除了整个项目,重新复制并使用“pods install .”,构建失败仍然存在。你知道问题出在哪里吗?如果你需要更多的信息,尽管问。
我有一个使用CocoaPods的iOS项目。一切都很顺利,直到另一个开发人员开始在同一个项目上工作。他做了一些更改(据我所知只是对代码进行了更改),并在回购中创建了一个新的分支。我已经检查了他的分支,并试图构建它,但我得到一个错误:ASLogger/ASLogger.h文件未找到。
即使我删除了整个项目,重新复制并使用“pods install .”,构建失败仍然存在。你知道问题出在哪里吗?如果你需要更多的信息,尽管问。
当前回答
我将在我的构建设置中更新以下内容,我没有得到任何错误。要检查这些东西,同时更新你的cocoapods。
建立设置
启用位码- YES(如果你正在使用位码) 宏预处理器- $(继承) 其他链接标志- objc, -lc++, $(继承)
只构建体系结构
调试-是 放松-不
搜索路径
框架搜索路径$(继承)$(PROJECT_DIR) 库搜索路径- $(继承) 标题搜索路径- $(继承)
其他回答
没有一个答案对我有帮助(我把我的pod链接到所有目标,构建配置设置正确,正确设置搜索路径“$(inherited)”,等等……)。
在我使用标准的安装/更新命令将cocoapods更新到最新的调试版本后,问题自行消失:
gem install cocoapods --pre
or:
sudo gem install cocoapods --pre
(如果安装过程中使用了sudo)。
那一定是茧足虫。
我发现将库作为pod安装直接帮助动态库。例如,对于Firebase:
pod 'RNFirebase', :path => 'path/to/node_modules/react-native-firebase/ios'
或ASLogger:
pod 'ASLogger', :path => 'path/to/node_modules/aslogger/ios' // path to header files
更改或硬编码HEADER_SEARCH_PATHS并没有帮助我。如果错误再次出现,不需要rm -rf node_modules,也不需要删除pod文件等,我发现清除缓存很有用。
对于react-native,我运行
rm -rf $TMPDIR/react-native-packager-cache-*
rm -rf $TMPDIR/metro-bundler-cache-*
rm -rf $TMPDIR/metro-*
rm -rf $TMPDIR/react-*
rm -rf $TMPDIR/haste-*
rm -rf "$(getconf DARWIN_USER_CACHE_DIR)/org.llvm.clang/ModuleCache"
npm start -- --reset-cache
对于Xcode,我删除~/Library/Developer/Xcode/DerivedData中的文件夹
维基给出了如何解决这个问题的建议:
如果Xcode找不到依赖项的头文件: 检查pod头文件是否在Pods/Headers中被正确地符号链接 并且您没有覆盖HEADER_SEARCH_PATHS(参见#1)。如果Xcode 还是找不到他们,作为最后的手段,你可以提前进口, 例如,#导入“Pods/ ssziparchvee .h”。
以下是对我有效的方法:
转到目标>“构建设置”选项卡,找到“用户头搜索路径”设置。
将其设置为"$(BUILT_PRODUCTS_DIR)"并选中"Recursive"复选框。
现在构建的目标将搜索工作区的共享构建目录,以定位可链接的头文件。
====
更新
最近我也遇到了类似的问题(尽管略有不同)。结果Xcode找不到Pods,因为我打开的是。xcodeproj文件而不是。xcworkspace文件。也许将来能帮助到别人。
你试过引进Cocoapods风格吗?
#import <ASLogger.h>
网站上的信息不是很清楚,我提交了一个拉请求:
https://github.com/CocoaPods/cocoapods.org/pull/34
更新:他们撤回了我的请求:)