我的所有目标使用相同的库,因此我使用link_with使我的podfile整洁。但令我惊讶的是,编译的项目失败了。 Xcode抱怨它无法在pod中找到一些文件,例如
diff:/../Podfile.lock:没有这样的文件或目录差异: /Manifest.lock:没有这样的文件或目录错误:沙箱不在 与Podfile.lock同步。运行&#pod; 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
答案 0 :(得分:7)
我认为这是一个pods bug。当项目最初指定目标特定配置并稍后尝试将其组合时,pod不会更新脚本位置。
要修复,请转到Build phases-> Embedd pod framework->更新脚本文件位置以反映通用pod文件夹(如/Pods/Pods-frameworks.sh")。 [您可以在finder中导航以找到sh的确切位置]。删除任何其他不反映在物理文件夹中的脚本。现在项目应该编译。
答案 1 :(得分:3)
答案 2 :(得分:1)
遇到了同样的错误。只想添加Sukitha的答案。
转到构建阶段 - > 嵌入pod框架 - > $SRCROOT
请务必检查此 SRSCROOT 文件块是否正确通向frameworks.h
文件。
您需要进行编辑以纠正问题。
干杯