项目构建中的CocoaPods错误


178

我无法建立使用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'

3
一个简单的“ pod安装”
可解决

重要![!] From now on use MyProject.xcworkspace.不是旧的.xcodeproj-戴维德罗兹
Dawid Drozd)

当您在模拟器中进行测试时,虽然只有白色屏幕
desigNerd

Answers:


171

对Podfile进行重大更改时,我遇到了类似的问题。我的解决方案是删除工作空间文件并pod install再次运行:

rm -rf MyProject.xcworkspace
pod install

17
表示未正确安装cocoapods。运行sudo gem install cocoapods
Asgoth

4
gem install cocoapods更好。大多数时候sudo,宝石都不是必需的。
PatrickNLT 2014年

5
您的回答让我很开心。我在里面呆了几个小时。脱下帽子
shaikh 2014年

谢谢,它修复了错误。FWIW,我在gem update cocoapods
rounak

解决的问题。执行“荚更新”时遇到错误
swebal

68

TLDR:这很可能是Xcode的错误,关闭和重新打开项目通常是最简单的修复。假设其他所有配置正确


删除Pods目录然后运行时,有时会出现相同的错误pod install

一切在项目信息中看起来都是正确的:

在此处输入图片说明

但是,当我转到目标的用户定义的构建设置时,PODS_ROOT条目要么完全丢失,要么对于一个或多个配置为空。这会导致生成以下错误:

在此处输入图片说明

最简单的解决方法是在Xcode中关闭项目,然后重新打开它

如果转到目标的Build Settings并在All上进行过滤,现在将看到PODS_ROOT没有错误的条目:

在此处输入图片说明

现在,它应该没有错误地构建。


注意:即使Cocoa Pods的官方AFNetworking iOS示例也存在此问题,这使我相信这是Xcode的错误。

另一种解决方法是将配置手动更改为None,然后恢复为原始值:

在此处输入图片说明


1
事实证明这是给我的!我的$ PODS_ROOT设置不正确
亚历克斯·雷恩

经过长时间的搜索修复,由于您的解决方案,我得以将其顺利运行。我只需要将“配置”更改为“无”并返回到
Pod

这真是无能为力。

32

转到目标Build Settings,并确保“用户定义”部分中的PODS_ROOTequals 值${SRCROOT}/Pods

在此处输入图片说明


效果很好。这就是所需要的。
pr4n

我必须PODS_ROOT使用此路径和violá将其添加到目标中(我也将其添加header search paths为“ $(PODS_ROOT)” 递归
Jacksonkr

没有为我工作。

30

更新: a podfile.lock是必需的,不应被版本控制忽略,它会跟踪在特定pod安装中安装的库的版本。(分别类似于rails和php依赖管理的gemfile.lockcomposer.lock)。要了解更多信息,请阅读文档。信誉归于小丑


就我而言,我所做的是我正在为项目做一些内部清理工作(即,将集成测试作为git子模块分支出来。删除重复文件等),并将最终结果推送到git远程仓库中。所有克隆我的仓库的客户都遇到了以上错误。受到Hlung上面评论的启发,我意识到有些悬挂的Pod脚本正试图对一些不存在的文件运行。因此,我进入了目标构建阶段,并删除了与可可豆荚有关的所有其余阶段(Hlung的评论他建议删除Copy Pods Manifest.lockcopy pod resources..我的名字与我使用的Xcode 5不同。重点是删除那些悬空的构建阶段。)


1
那不是Podfile.lock目的:请阅读Cocoapods关于“与团队合作”的文档以获取更多信息。
cbowns

@cbowns您绝对正确,感谢您的评论。我更新了答案。
2013年

12
我删除了xcworkspace文件并进行了pod安装,但是仍然收到相同的错误消息。
jowie 2014年

@jowie同样在这里...如果您解决了,可以请您指导我。
Bandish Dave

28

因此,似乎CocoaPods并未为我的项目设置配置。它们需要基于Pods.xcconfig中找到的Pods/Target Support Files/Pods。为了使它起作用,我必须执行以下操作:

  1. 将此文件拖到Xcode中的Xcode项目中,选择不复制。
  2. 现在我们的项目中有一个参考,我们可以设置配置: 在此处输入图片说明

然后,我又遇到了另一个构建错误,该错误可能相关,也可能不相关。中定义的Shell脚本的路径Copy Pods Resources不正确。

"${SRCROOT}/Pods/Pods-resources.sh"

解决不正确。似乎SRCROOT正在添加路径中不存在的额外目录。因此,我对项目文件夹的路径进行了硬编码。

这使我得以建立。

为什么这么多本来可以节省您时间的事情最终把它吃光了?

注意:请参阅@abood的答案以获取解释。


27
如果由于从目标中删除了所有Pod而看到此错误,则您将不再具有任何Pod脚本,但仍会尝试运行它。您必须进入目标构建阶段,然后删除Copy Pods Manifest.lockCopy Pods Resources阶段。并同时删除libPods.a带有库的链接二进制文件。
Hlung 2013年

@Hlung出色的评论..它实际上解决了问题的根本原因,我尝试了上述解决方案,但仍然以Podfile.lock结尾(大多数.gitignore文件都配置为忽略..正确的是..),该文件'不要一直徘徊..如果您把它写成答案,我会给您+1!
2013年

@abbood写下来,我给你赢。
分心

只是想补充一点,CocoaPods的Github页面上的这个问题提到检查构建阶段是否可能存在这个确切的问题(由于我有多个目标,所以更加相似)。问题导致我在这里向下滚动
。...– DanBlakemore

22

我有一个类似的问题,这是起作用的:

  1. 在Xcode中:
    • 清洁
    • 删除Xcode / Window / Organizer / Project / Your Project中的派生数据
    • Pod目录(它包含配置文件,删除文件而不仅仅是引用!)
    • 删除了对项目/配置(调试/发行版)中每个目标的pod配置文件的所有引用
    • 从所有目标中删除了“目标/构建阶段/复制窗格资源”
    • 从所有目标中删除了“目标/构建设置/用户定义/ PODS_ROOT”
  2. 退出Xcode
  3. 在您的项目目录中:
    • rm -rf豆荚
    • (可选)rm -rf YourProject.xcworkspace
    • rm -rf Podfile.lock
  4. 吊舱安装
  5. 在Xcode中打开YourProject.xcworkspace

4
不要随便删除工作区-即使您的工作区是由Cocoapods创建的,它也是由您维护的。
约瑟夫·德卡洛,2015年

这对我有用,删除了与Pod相关的每个文件,然后重新安装了Pod。
Leena 2015年

15

通过执行以下步骤,我摆脱了相同的问题:

  • Xcode->Product->Clean Build Folder(按住产品上的alt键即可查看)
  • 打开Xcode->Window->Organizer并选择Projects标签。然后找到您的项目并删除 derived data该项目。

1
为我工作。很生气。现在快乐。
fresidue 2014年

就我而言,我在github项目上遇到了麻烦。因此,我必须完全删除Project目录(rm -rf),执行上述操作,然后解压缩该项目,进行pod安装并打开xcworkspace,并且没有错误!
rharvey 2014年

为我工作。谢谢。
xevser

10

只需执行以下操作即可解决:

  • (sudo)gem install cocoapods

  • 吊舱安装

  • 清洁和建造

看来问题出在我们的一位团队成员安装了最新的cocoapods gem。


1
我必须重新安装cocoapods并重新启动XCode才能解决此问题。
Camster 2014年

必须运行gem install cocoapods,然后pod install在该线程上提到的几乎所有其他内容……
Echelon 2014年

9

  1. 以崇高文本打开.xcodeproj文件
  2. 删除这两行,如果您有干净的Pod文件夹,我的意思是,如果在删除Pod文件夹后出现上述错误

给我一个ld:-lPods-/ *我的项目名称* / Tests找不到的库
SleepsOnNewspapers 2015年

这还会在以后的Pod安装中给我错误吗?
SleepsOnNewspapers

6

有同样的问题说/Pods/Pods-resources.sh:即使删除了与pod相关的文件等,也没有这样的文件或目录。

通过转到target-> Build阶段,然后删除构建阶段“ Copy Pod Resources”来摆脱它。


很不错的解决方法,但是恐怕在清理

然后我从使用Pod的fileName中得到“ .h”文件找不到错误
coolcool1994 '16

4

我最近有同样的问题。我已经尝试了所有可能的建议,除了这个插件对我没有帮助:

https://github.com/kylef/cocoapods-deintegrate

在清除了当前的cocoapods集成之后,剩下要删除的是Podfile,Podfile.lock和.xcworkspace。然后,重新安装一遍。

我希望我可以帮助某人。


这是唯一为我解决的问题。
查理

我很高兴我能帮助查理
Chiara的

4

这个问题解决了。

  1. 选择项目目标
  2. 选择构建设置
  3. 打开用户定义的下拉列表
  4. 将键PODS_ROOT的值更改为$ {SRCROOT} / Pods

上述步骤的屏幕截图


1
我很喜欢你的 但是我仍然收到同样的错误消息。这是什么!!!没有人对此有正确的答案。

@YumYumYum:然后尝试重新安装您的Pod。
Jayprakash Dubey

尝试过所有解决方案,但此解决方案有效。就我而言,仍然需要在发布中设置路径。
Ankit Kargathra

3

我认为这里有一个错误。
对我来说,我删除Pods文件夹,Podfile.lock然后pod install再次执行以解决问题。
此消息正在忽略.. :(


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

该脚本似乎是由CocoaPod生成的。您将脚本放在哪里?
Nickolas

2

您可以尝试以下方法。它为我固定。

  1. 安装gem安装cocoapods-deintegrate
  2. 安装gem安装cocoapods-clean
  3. goto pod解体
  4. 豆荚清洁
  5. 吊舱安装

插件将从您的项目的cocoapods中删除,并将重新安装。


2

就我而言,这是一个测试目标,我从podfile中删除了所有pod(因为我添加了后来意识到我不需要该目标的pod)。这里没有其他解决方案对我有用。

  1. 转到引起问题的目标的项目设置中的“构建阶段”选项卡。

  2. 删除名为“检查容器清单”和“复制容器资源”的部分

  3. 在“与库链接二进制文件”内部,删除libPods-YourTarget.a

  4. 在项目设置的“信息”选项卡中,展开“配置”,然后将目标的配置都设置为“无”以进行调试和发布。(这将修复一些丢失的文件警告)

  5. 删除项目的派生数据(“窗口”>“项目”>“删除” [在项目旁边),然后重新启动Xcode。构建/运行目标。


2

这件事情让我感到很快乐!

  1. 删除项目文件夹中的Podfile.lock文件
  2. 删除项目文件夹中的Pods文件夹
  3. pod install在您的项目文件夹中执行
  4. 在Xcode中执行“清理”
  5. 重建项目

1

就我而言,问题出在错误的地方。这里的解决方案http://guides.cocoapods.org/using/troubleshooting.html

如果某些事情似乎不起作用,首先请确保您没有完全覆盖项目构建设置中Pods.xcconfig文件中设置的任何选项。要将值添加到项目的构建设置中的选项中,请在值列表前添加$(inherited)


1

我有这个问题。

我修复它的方法是完全删除Pod的实现并重新实现。确保按如下所述从所有目标的“构建阶段”中删除“复制Pod资源”和“检查Pod Manifest.lock”:如何从项目中删除CocoaPods?


1

为了摆脱此错误,我需要删除Pods目录并删除Podfile.lock文件。


我同意你的意见,我做了所有的工作,包括删除工作区文件,它确实对我有用。
Alix

1

就我而言,我确实将Podfile.lock和Manifest.lock放在了源代码管理中,但是我忘记将Pods-Project.debug(release).xcconfig文件添加到源代码控制中(错误地将* .xcconfig添加到.gitignore),然后我由于完全相同的原因而得到相同的编译错误,未设置PODS_ROOT。

因此,如果目标是克隆存储库后,项目可以立即构建并运行,而无需在计算机上安装CocoaPods,则可以在源代码管理中添加整个Pods目录,也可以添加Podfile.lock,Manifest.lock,项目的xcconfig文件和将xcconfig文件放入源代码管理。

我没有将用于将构建设置与默认CocoaPods配置合并的私有.xcconfig放置到源代码管理中。


1

花了几个小时后,我发现解决方案转到“构建阶段”,然后单击“检查Pods Manifest.lock”,勾选“仅在安装时运行脚本”。

晚点再谢我 ;)在此处输入图片说明


1

我的IONIC项目也遇到了同样的问题,我首先尝试了所有解决方案,但没有走运。

如果你有同样的问题是,下面设置检查天气存在于Build Settings -> User-Defined settings或不

1. PODS_ROOT 2。PODS_PODFILE_DIR_PATH

如果不存在,则添加它,

PODS_ROOT = ${SRCROOT}/Pods

PODS_PODFILE_DIR_PATH = ${SRCROOT}/

它将解决问题,解决链接


0

在使用Pod之前,我已经创建了多个目标。后来,当我开始编译其他目标时,我必须在我的Podfile中添加link_with和目标列表。


0

我遇到过同样的问题。追溯最近的步骤后,我发现为新目标添加目标声明,然后运行pod install,是问题的原因:

在此处输入图片说明

由于Cocoapods修改了至少一个不受源代码控制的文件,因此重置我的分支和清理我的项目无效。我知道这一点,因为一旦在添加额外目标之前将远程分支重置为提交,然后重新克隆了存储库,该问题就不再存在。


0

如果您有watchOS目标:我突然发现,在手表扩展中但没有在手表目标本身中装有吊舱会因为同样的错误而使事情破裂。解决方案是将吊舱也添加到监视目标。



0

如果在创建Podfile之后添加了新目标,只需删除Podfile,Podfile.lock,Pods文件夹和工作区,然后初始化pods->然后将pods pod安装


0

尝试上述方法后,我意识到我遇到了错误 pod install

[!] CocoaPods未设置项目的基本配置,因为您的项目已具有自定义配置集。

这是导致错误的原因,因为cocoapods没有将.xcconfig文件添加到我的项目中。

为了解决这个问题,我转到了Info项目的选项卡。将None所有配置和目标的“ 基于配置文件”设置为。然后重新跑pod install

有关更多信息,请参见此链接。 Cocoapods警告-CocoaPods未设置项目的基本配置,因为您的项目已具有自定义配置集


0

就我而言,我不小心在配置文件的末尾键入了一个不必要的点,这导致了这个奇怪的问题。请确保您的配置文件没有任何错误!

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.