我的所有目标使用相同的库,因此我使用link_with使我的podfile整洁 . 但令我惊讶的是,编译的项目失败了 . Xcode抱怨它无法在pod中找到一些文件,例如
diff:/../Podfile.lock:没有这样的文件或目录diff:/Manifest.lock:没有这样的文件或目录错误:沙箱与Podfile.lock不同步 . 运行“pod install”或更新CocoaPods安装 .
和
找不到'DDLog.h'文件
我再次运行pod安装并一次又一次清理xcode . 但没有运气 . 我无法弄清楚原因 . 从我所看到的,cocopods只将每个目标的shellScript更改为一个Pods-resources.sh,这就是link_with应该做的,对吧?
shellScript = "\"${SRCROOT}/Pods/Target Support Files/Pods-CloudPhone/Pods-"my target"-resources.sh\"\n";
shellScript = "\"${SRCROOT}/Pods/Target Support Files/Pods/Pods-resources.sh\"\n";
这是cocopods的错误吗?我使用最新的0.37,现在我回去单独指定每个目标 .
更新:
CocoaPods 1.0删除了link_with,转而支持abstract_target
3 回答
快速解决方案:删除
Embed Pod Frameworks
并再次运行pod install
遇到了同样的错误 . 只想添加Sukitha的答案 .
转到 build phase - > Embed pod framework - >
$SRCROOT
请务必检查此 SRSCROOT 文件块是否正确通向
frameworks.h
文件 .您需要进行编辑才能解决问题 .
干杯
我认为这是一个pods bug . 当项目最初指定目标特定配置并稍后尝试将其组合时,pod不会更新脚本位置 .
要修复,请转到构建阶段 - >嵌入窗格框架 - >更新脚本文件位置以反映通用窗格文件夹(如/Pods/Pods-frameworks.sh“) . [您可以在finder中导航以找到sh的确切位置删除任何其他不反映在物理文件夹中的脚本 . 现在项目应该编译 .