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

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


当前回答

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

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

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

其他回答

我将在我的构建设置中更新以下内容,我没有得到任何错误。要检查这些东西,同时更新你的cocoapods。

建立设置

启用位码- YES(如果你正在使用位码) 宏预处理器- $(继承) 其他链接标志- objc, -lc++, $(继承)

只构建体系结构

调试-是 放松-不

搜索路径

框架搜索路径$(继承)$(PROJECT_DIR) 库搜索路径- $(继承) 标题搜索路径- $(继承)

对我来说,问题是在其他链接标志值。出于某种原因,我在像-l“xml2”-l“Pods-MBProgressHUD”这样的标志中没有引号。

如果你在“pod安装”或“pod更新”后出现构建错误,这可能是因为你的某个pod已经使用XCode 6.3构建,而你仍然在使用以前的版本。

在我的情况下,我不得不更新我的OSX从mavericks到Yosemite有Xcode 6.3并解决问题

我发现将库作为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中的文件夹

你试过引进Cocoapods风格吗?

#import <ASLogger.h>

网站上的信息不是很清楚,我提交了一个拉请求:

https://github.com/CocoaPods/cocoapods.org/pull/34

更新:他们撤回了我的请求:)