我有一个使用CocoaPods的iOS项目。一切都很顺利,直到另一个开发人员开始在同一个项目上工作。他做了一些更改(据我所知只是对代码进行了更改),并在回购中创建了一个新的分支。我已经检查了他的分支,并试图构建它,但我得到一个错误:ASLogger/ASLogger.h文件未找到。
即使我删除了整个项目,重新复制并使用“pods install .”,构建失败仍然存在。你知道问题出在哪里吗?如果你需要更多的信息,尽管问。
我有一个使用CocoaPods的iOS项目。一切都很顺利,直到另一个开发人员开始在同一个项目上工作。他做了一些更改(据我所知只是对代码进行了更改),并在回购中创建了一个新的分支。我已经检查了他的分支,并试图构建它,但我得到一个错误:ASLogger/ASLogger.h文件未找到。
即使我删除了整个项目,重新复制并使用“pods install .”,构建失败仍然存在。你知道问题出在哪里吗?如果你需要更多的信息,尽管问。
当前回答
我是在Xcode 5.0的GM种子上,我不能让这些答案工作。我在SO上尝试了多个不同的关于头导入/ cocoapods的问题。
最后我找到了一个适合我的解决方案:我通过Mac AppStore升级到Xcode 5.0(安装在GM种子的顶部),现在头导入工作正常。
我的系统上还有Xcode 5的测试版,我也把它删除了。也许是这两件事的结合,但希望这能帮助到其他人。
其他回答
如果你使用的是Xcode 12或以上版本,请确保你的Pods是为正确的架构(Intel vs. ARM)编译的。检查是否在任何地方设置了VALID_ARCHS或EXCLUDED_ARCHS。
我有config。build_settings['EXCLUDED_ARCHS[sdk= iphoneonesemulator *]'] = 'arm64'在我的Podfile中,这阻止了编译器找到Pod头文件。
我发现将库作为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中的文件夹
对我来说有用的是选择Pods项目,在Pod项目的目标目录中找到并选择缺少头的目标框架,并在目标的构建设置中“Architectures”下将“Build Active Architecture Only”设置为“No”。
我将在我的构建设置中更新以下内容,我没有得到任何错误。要检查这些东西,同时更新你的cocoapods。
建立设置
启用位码- YES(如果你正在使用位码) 宏预处理器- $(继承) 其他链接标志- objc, -lc++, $(继承)
只构建体系结构
调试-是 放松-不
搜索路径
框架搜索路径$(继承)$(PROJECT_DIR) 库搜索路径- $(继承) 标题搜索路径- $(继承)
我发现${PODS_HEADERS_SEARCH_PATHS}是缺失的,它没有在我的开发git分支中定义,所以我添加了“$(SRCROOT)/Pods/Headers/”的头搜索路径递归
对我来说没问题