179

我无法构建使用 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没有设置。

播客文件:

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'
4

30 回答 30

172

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

rm -rf MyProject.xcworkspace
pod install
于 2013-10-02T07:23:48.247 回答
68

TLDR:这很可能是 Xcode 的一个错误,关闭并重新打开项目通常是最简单的修复方法。假设其他一切都配置正确


删除Pods目录然后运行pod install​​.

项目信息中的所有内容都显示正确:

在此处输入图像描述

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

在此处输入图像描述

最简单的修复方法是在 Xcode 中关闭项目并重新打开它

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

在此处输入图像描述

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


注意:即使是 Cocoa Pods 的官方 AFNetworking iOS Example 也有这个问题,这让我相信这是 Xcode 的一个错误。

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

在此处输入图像描述

于 2014-03-15T18:55:50.190 回答
32

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

在此处输入图像描述

于 2014-05-25T06:22:25.073 回答
30

update: apodfile.lock是必需的,版本控制应该忽略它,它跟踪在某个 pod install 中安装的库的版本。(它分别类似于用于 rails 和 php 依赖管理的gemfile.lockcomposer.lock )。要了解更多信息,请阅读文档归功于cbowns 。


就我而言,我所做的是我正在为我的项目进行一些房屋清洁(即将集成测试分支为 git 子模块......删除重复文件等)......并将最终结果推送到 git 远程仓库......所有克隆我的仓库的客户都遭受了上述错误。受上述Hlung评论的启发,我意识到有一些悬空的 pod 脚本试图针对一些不存在的文件运行。所以我进入了我的目标构建阶段,并删除了所有与可可豆荚有关的剩余阶段(以及 Hlung 的评论,他建议删除Copy Pods Manifest.lockcopy pod resources..我的命名不同,也许 b/c 我使用的是 Xcode 5..重点是删除那些悬空的构建阶段)..

于 2013-10-08T09:19:36.603 回答
28

所以似乎 CocoaPods 没有为我的项目设置配置。它们需要基于Pods.xcconfig. Pods/Target Support Files/Pods为了使它起作用,我必须执行以下操作:

  1. 在 Xcode 中将此文件拖到我的 Xcode Project 中,选择不复制。
  2. 现在我们的项目中有一个引用,我们可以设置配置: 在此处输入图像描述

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

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

错误地解决了。SRCROOT 似乎在路径中添加了一个不存在的额外目录。所以我硬编码了项目文件夹的路径。

这使我能够构建。

为什么这么多本应为你节省时间的事情最终却把它吃光了?

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

于 2013-06-12T19:29:37.257 回答
22

我有一个类似的问题,这是有效的:

  1. 在 Xcode 中:
    • 干净的
    • 删除 Xcode/Window/Organizer/Project/Your Project 中的派生数据
    • Pod 目录(它包含配置文件,删除文件而不仅仅是引用!)
    • 删除了对 Project/Configurations (debug/release) 中每个目标的 pod 配置文件的所有引用
    • 从所有目标中删除了“目标/构建阶段/复制 Pod 资源”
    • 从所有目标中删除了“目标/构建设置/用户定义/PODS_ROOT”
  2. 退出 Xcode
  3. 在您的项目目录中:
    • rm -rf 豆荚
    • (可选)rm -rf YourProject.xcworkspace
    • rm -rf Podfile.lock
  4. 吊舱安装
  5. 在 Xcode 中打开 YourProject.xcworkspace
于 2014-11-25T06:12:36.973 回答
15

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

  • Xcode->Product->Clean Build Folder(按住产品上的alt键查看)
  • 打开Xcode->Window->Organizer并选择Projects选项卡。然后找到您的项目并删除 derived data该项目。
于 2014-01-07T14:56:27.257 回答
10

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

  • (sudo) gem 安装 cocoapods

  • 吊舱安装

  • 清洁和建造

看来问题是由我们的一名团队成员安装了更新的 cocoapods gem 引起的。

于 2014-10-06T08:14:24.443 回答
9

  1. 以崇高的文本打开 .xcodeproj 文件
  2. 删除这两行,如果您有干净的 pods 文件夹,我的意思是如果您在删除 pods 文件夹后出现上述错误
于 2015-05-13T05:04:23.253 回答
6

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

通过转到目标-> 构建阶段然后删除构建阶段“复制 Pod 资源”来摆脱它。

于 2014-04-09T04:32:19.590 回答
4

这个问题解决了。

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

以上步骤的截图

于 2015-08-06T12:10:32.623 回答
4

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

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

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

我希望我能帮助这个人。

于 2015-07-31T11:05:01.700 回答
3

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

于 2015-08-27T15:46:23.577 回答
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
于 2014-01-13T16:51:08.403 回答
2

您可以尝试以下方法。它为我修好了。

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

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

于 2016-04-30T07:33:22.977 回答
2

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

  1. 删除项目文件夹中的 Podfile.lock 文件
  2. 删除项目文件夹中的 Pods 文件夹
  3. pod install在您的项目文件夹中执行
  4. 在 Xcode 中进行“清理”
  5. 重建你的项目
于 2016-05-31T17:16:30.437 回答
2

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

  1. 转到导致问题的目标的项目设置中的 Build Phases 选项卡。

  2. 删除名为“Check Pods Manifest”和“Copy Pods Resources”的部分

  3. 在“Link Binary With Libraries”中删除 libPods-YourTarget.a

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

  5. 删除项目的派生数据(Window > Projects > Delete [next to your project)并重新启动 Xcode。构建/运行目标。

于 2016-05-13T14:14:46.500 回答
2

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

如果您仍然有同样的问题,请检查以下设置是否Build Settings -> User-Defined settings存在

1. PODS_ROOT 2.PODS_PODFILE_DIR_PATH

如果不存在,则添加它,

PODS_ROOT = ${SRCROOT}/Pods

PODS_PODFILE_DIR_PATH = ${SRCROOT}/

它将解决问题,解决方案链接

于 2018-04-13T11:48:21.400 回答
1

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

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

于 2014-01-14T09:47:08.763 回答
1

我有这个问题。

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

于 2014-02-27T02:45:09.310 回答
1

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

晚点再谢我 ;)在此处输入图像描述

于 2018-02-27T22:33:35.607 回答
1

在我的情况下,我确实将 Podfile.lock 和 Manifest.lock 放在源代码管理中,但我忘记将 Pods-Project.debug(release).xcconfig 文件添加到源代码管理(通过错误地将 *.xcconfig 添加到 .gitignore),然后我以完全相同的原因得到相同的编译错误,没有设置 PODS_ROOT。

因此,如果目标是在克隆 repo 后,项目可以立即构建和运行,而无需在机器上安装 CocoaPods,您可以在源代码控制中添加整个 Pods 目录,或者添加 Podfile.lock、Manifest.lock、项目的 xcconfig 文件和Pods xcconfig 文件到源代码控制。

我没有将将构建设置与默认 CocoaPods 配置合并到源代码控制中的私有 .xcconfig 。

于 2016-03-14T08:59:40.473 回答
1

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

于 2015-08-12T23:48:22.153 回答
0

在我使用 pod 之前,我已经创建了多个目标。后来当我开始编译其他目标时,我不得不在我的 Podfile 中添加带有目标列表的 link_with。

于 2015-05-10T20:44:56.300 回答
0

如果你有一个 watchOS 目标:我突然发现,在 watch扩展中而不是在 watch 目标本身中有 pod 会出现同样的错误。解决方案是将 pod 也添加到 watch 目标中。

于 2016-07-15T17:36:58.647 回答
0

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

于 2017-07-18T20:20:51.670 回答
0
gem install xcodeproj

可以帮助你。

请参阅pod install failed with abort - New Swift project

于 2017-03-12T05:30:18.097 回答
0

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

在此处输入图像描述

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

于 2016-04-01T18:11:09.380 回答
0

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

于 2019-04-24T02:51:09.137 回答
0

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

[!] CocoaPods 没有设置您项目的基本配置,因为您的项目已经有一个自定义配置集。

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

为了解决这个问题,我去了Info我的项目的标签。将我的基于配置文件设置None为所有方案和目标。然后重新运行pod install

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

于 2018-01-20T03:11:44.127 回答