我无法构建使用CocoaPods的项目。我收到以下错误:
diff: /../Podfile.lock: No such file or directory
diff: Manifest.lock: No such file or directory error:
The sandbox is not in sync with the Podfile.lock. Run 'pod install' or update your CocoaPods installation.`
$ pod install
似乎工作正常,并在我的工作区中添加了Pods
项目。我试过$ pod update
,但这没有帮助。
似乎没有设置PODS_ROOT
。
Podfile:
platform :ios, '6.0'
workspace 'Example.xcworkspace'
xcodeproj 'example/Example.xcodeproj'
pod 'TestFlightSDK', '~> 1.3.0-beta.5'
pod 'TestFlightLogger', '~> 0.0.2'
pod 'CocoaLumberjack', '~> 1.6.2'
pod 'Reachability', '~> 3.1.0'
pod 'SBJson', '~> 3.2'
pod 'MKMapViewZoom', '~> 1.0.0'
答案 0 :(得分:170)
当我对Podfile进行重大更改时,我遇到了类似的问题。我的解决方案是删除工作区文件并再次运行pod install
:
rm -rf MyProject.xcworkspace
pod install
答案 1 :(得分:68)
TLDR:这很可能是Xcode的一个错误,关闭并重新打开项目通常是最简单的修复。假设其他一切都是configured properly。
删除Pods
目录然后运行pod install
时,我偶尔会遇到同样的错误。
项目信息中的所有内容都显示正确:
但是,当我转到目标用户定义的构建设置时,PODS_ROOT条目要么完全丢失,要么对于一个或多个配置为空。这导致构建时出现以下错误:
最简单的解决方法是在Xcode中关闭项目并重新打开。
如果您转到目标构建设置并过滤全部,您现在会看到PODS_ROOT
条目没有错误:< / p>
现在应该构建没有错误。
注意:即使是Cocoa Pods&#39;官方AFNetworking iOS示例有这个问题,这让我相信它是Xcode的一个错误。
另一种解决方法是手动将配置更改为None
,然后再更改为原始值:
答案 2 :(得分:32)
转到目标Build Settings
,确保“用户定义”部分中PODS_ROOT
的值等于${SRCROOT}/Pods
。
答案 3 :(得分:30)
更新:podfile.lock
是必需的,不应该被版本控制忽略,它会跟踪某个pod安装时安装的库的版本。 (对于rails和php依赖管理,它分别类似于gemfile.lock和composer.lock)。要了解详情,请阅读docs。积分转到cbowns。
在我的情况下,我所做的是我正在为我的项目做一些房屋清理(即将集成测试分解为git子模块......删除重复文件等)..并将最终结果推送到git远程repo ..克隆我的repo的所有客户都遭受了上述错误。受上面Hlung's评论的启发,我意识到有一些悬空的pod脚本试图对一些不存在的文件运行。所以我进入了我的目标构建阶段,并删除了与可可豆荚有关的所有剩余阶段(Hlung的评论他建议删除Copy Pods Manifest.lock
和copy pod resources
..我的名字可能不同b / c我正在使用Xcode 5 ..重点是删除那些悬空构建阶段)..
答案 4 :(得分:28)
所以似乎CocoaPods没有为我的项目设置配置。它们需要基于Pods.xcconfig
中的Pods/Target Support Files/Pods
。要实现这一点,我必须执行以下操作:
然后我有另一个构建错误,可能有也可能没有关联。 Copy Pods Resources
中定义的shell脚本的路径不正确。
"${SRCROOT}/Pods/Pods-resources.sh"
解决不正确。似乎SRCROOT正在添加一条并不存在于路径中的额外目录。所以我硬编码了Project文件夹的路径。
这让我可以建立。
为什么那么多可以节省你时间的东西最终会吃掉它?
注意:请参阅@ abood的答案进行解释。
答案 5 :(得分:21)
我有一个类似的问题,这是有效的:
答案 6 :(得分:15)
我通过以下步骤摆脱了同样的问题:
Xcode->Product->Clean Build Folder
(在产品上按 alt键查看)Xcode->Window->Organizer
并选择Projects
标签。然后找到您的项目并删除 derived data
项目。答案 7 :(得分:10)
通过执行以下操作简单解决:
(sudo)gem install cocoapods
pod install
清理并构建
似乎问题是由我们的团队成员之一更新的cocoapods gem安装引起的。
答案 8 :(得分:9)
答案 9 :(得分:6)
有同样的问题说 /Pods/Pods-resources.sh:没有这样的文件或目录 甚至在删除了与pod相关的文件等之后。
通过转到target-&gt;构建阶段然后删除构建阶段&#34;复制Pod资源&#34;来摆脱它。
答案 10 :(得分:4)
答案 11 :(得分:4)
我最近遇到了同样的问题。我已经尝试了所有可能的建议,除了这个插件对我有用之外什么都没有:
https://github.com/kylef/cocoapods-deintegrate
清理当前的cocoapods集成后,剩下要删除的是Podfile,Podfile.lock和.xcworkspace。然后再重新安装。
我希望我会帮助这个人。
答案 12 :(得分:3)
我认为这里有一个错误。
对我来说,我删除了Pods
文件夹和Podfile.lock
并再次执行pod install
来解决问题。
这条消息忽略了...... :(
答案 13 :(得分:2)
这是我的一天!
pod install
答案 14 :(得分:2)
在我的情况下,这是一个测试目标,我从podfile中删除了所有pod(因为我添加了pods,我后来意识到我在该目标中不需要)。这里没有其他解决方案适用于我。
转到目标项目设置中的“构建阶段”选项卡 这会造成麻烦。
删除名为“Check Pods Manifest”和“Copy Pods”的部分 资源“
在“Link Binary with Libraries”中删除libPods-YourTarget.a
在“信息”选项卡的项目设置中,展开“配置”和 对于debug和,将目标的配置设置为None 发布。 (这将修复一些丢失的文件警告)
删除项目的派生数据(窗口&gt;项目&gt;删除[下一步] 到您的项目)并重新启动Xcode。建立/运行目标。
答案 15 :(得分:2)
这不是很直观。我去了基础项目设置然后我在Check Pods Manifest.lock下硬编码我的pod.lock和pod.manifest的路径,因为它们实际上保留在不同的文件夹中,所以我的路径看起来像这样:
diff "/Users/admin/Desktop/Experimental/projectfolder/Podfile.lock" "/Users/admin/Desktop/Experimental/projectfolder/Pods/Manifest.lock" > /dev/null
if [[ $? != 0 ]] ; then
cat << EOM
error: The sandbox is not in sync with the Podfile.lock. Run 'pod install' or update your CocoaPods installation.
EOM
exit 1
fi
答案 16 :(得分:2)
您可以尝试以下操作。它固定在我身上。
插件将从您的项目的cocoapods中删除,并将重新安装。
答案 17 :(得分:1)
我有这个问题。
我修复它的方法是完全删除Pod实现并重新实现它。确保删除所有目标上“Build Phase”的“Copy Pods Resources”和“Check Pods Manifest.lock”,如下所示:How to remove CocoaPods from a project?
答案 18 :(得分:1)
在我的情况下,我确实把Podfile.lock&amp;源代码管理中的Manifest.lock,但是我忘了将Pods-Project.debug(release).xcconfig文件添加到源代码控制(错误地将* .xcconfig添加到.gitignore),然后我得到了相同的编译错误,原因完全一样,PODS_ROOT未设置。
因此,如果目标是在克隆repo之后,项目可以立即构建并运行,而无需在机器上安装CocoaPods,则可以在源代码管理中添加整个Pods目录,或者添加Podfile.lock,Manifest.lock,project& #39; s xcconfig文件和Pods xcconfig文件到源代码控制。
我没有将构建设置与默认CocoaPods配置合并到源控件的private .xcconfig。
答案 19 :(得分:1)
为了摆脱这个错误,我需要删除Pods
目录并删除Podfile.lock
文件。
答案 20 :(得分:1)
在我的情况下,问题是错误的。解决方案http://guides.cocoapods.org/using/troubleshooting.html
如果某些东西看起来不起作用,首先要确保你是 没有完全覆盖从Pods.xcconfig文件设置的任何选项 在项目的构建设置中。要从您的选项中为选项添加值 项目的构建设置,在值列表前加上 $(继承)。
答案 21 :(得分:0)
我有同样的问题。在回顾我最近的步骤后,我发现为新目标添加目标声明,然后运行pod install,
是导致问题的原因:
重置我的分支并清理我的项目不起作用,因为Cocoapods在源代码管理下修改了至少一个不的文件。我知道这是因为一旦我在添加额外目标之前将远程分支重置为提交,并重新克隆了repo,问题就不复存在了。
答案 22 :(得分:0)
我在使用pod之前创建了多个目标。后来当我开始编译其他目标时,我不得不在我的Podfile中添加link_with和目标列表。
答案 23 :(得分:0)
如果你有一个watchOS目标:我发现突然间,在手表扩展名中拥有pod而在watch目标本身中没有使用同样的错误。解决方案是将吊舱添加到手表目标。
答案 24 :(得分:0)
答案 25 :(得分:0)
如果在创建Podfile后添加了新目标,只需删除Podfile,Podfile.lock,Pods文件夹和工作区 然后 init pods - &gt;然后放入你的pods pod install
答案 26 :(得分:0)
尝试上述操作后,我意识到我在pod install
[!] CocoaPods没有设置项目的基本配置 因为您的项目已经有自定义配置集。
这导致了错误,因为cocoapods没有将.xcconfig文件添加到我的项目中。
为了解决这个问题,我去了项目的Info
标签。对于所有方案和目标,将我的基于配置文件设置为None
。然后重新运行pod install
答案 27 :(得分:0)
花了几个小时后,我发现解决方案转到了#34; Build Phases&#34; 然后&#34;检查Pods Manifest.lock&#34; 勾选&#34;仅在安装&#34;
时运行脚本答案 28 :(得分:0)
我的 IONIC 项目遇到了同样的问题,我尝试了所有解决方案,但没有运气。
如果您仍然遇到同样的问题,请检查以下天气设置是否存在Build Settings -> User-Defined settings
或
1。PODS_ROOT
2。PODS_PODFILE_DIR_PATH
如果不存在则添加
PODS_ROOT = ${SRCROOT}/Pods
PODS_PODFILE_DIR_PATH = ${SRCROOT}/
它将解决问题,解决方案link
答案 29 :(得分:0)
就我而言,我不小心在配置文件的末尾键入了一个不必要的点,这导致了这个奇怪的问题。请确保您的配置文件没有任何错误!