项目构建中的 Cocopods 错误

我无法构建一个使用 CocoPods 的项目:

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'
143045 次浏览

看来 CocoaPods 并没有为我的项目设置配置。它们需要基于 Pods.xcconfig,这是在 Pods/Target Support Files/Pods中找到的。为了实现这个目标,我必须做到以下几点:

  1. 将此文件拖到我在 Xcode 的 Xcode 项目中,选择不复制。
  2. 现在在我们的项目中有了一个参考,我们可以设置配置: enter image description here

然后,我有另一个构建错误,可能有或可能没有关联。Copy Pods Resources中定义的 shell 脚本的路径不正确。

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

解析错误。似乎 SRCROOT 在路径中添加了一个并不存在的 dir。所以我硬编码了 Project 文件夹的路径。

这使我能够建造。

为什么那么多本该节省时间的事情最后却被吞噬了呢?

注: 请参阅@abood 的回答。

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

rm -rf MyProject.xcworkspace
pod install

更新: podfile.lock是必需的,版本控制忽略 不应该,它跟踪安装在某个 pod 安装上的库版本。(它分别类似于 Rails 和 php 依赖管理的 Gemfile.lock作曲家,锁定)。要了解更多请阅读 医生。功劳属于 Cbowns


在我的例子中,我所做的就是为我的项目做一些清理工作(即将集成测试作为一个 git 子模块进行分支)。.删除重复档案等)。.并将最终结果推送到 git 远程回购。.所有复制我的回购协议的客户都遭受了上述错误。受到上面 赫隆的注释的启发,我意识到有一些悬空的 pod 脚本试图对一些不存在的文件运行。因此,我进入了我的目标构建阶段,并删除了所有剩余的阶段,有任何与可可豆荚(和赫隆的评论,他建议删除 Copy Pods Manifest.lockcopy pod resources。.我的名字不一样,可能是 b/c 我用的是 Xcode 5。.重点是删除那些悬而未决的构建阶段)。.

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

  • Xcode->Product->Clean Build Folder(将 Alt 键放在产品上查看)
  • 打开 Xcode->Window->Organizer并选择 Projects选项卡。然后找到您的项目和该项目的 删除 derived data

不是很直观。我转到基础项目设置,然后在 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

在我的情况下,问题是在错误的方式。解决这里 http://guides.cocoapods.org/using/troubleshooting.html

如果有些东西看起来不起作用,首先要确保你起作用了 没有完全覆盖 Pods.xcconfig 文件中设置的任何选项 在项目的生成设置中添加值 项目的生成设置,用 $(继承)预置值列表。

我有个问题。

我修复它的方法是完全删除 Pod 实现并重新实现它。确保在所有目标上删除“ Copy Pods Resources”和“ Check Pods Manifest.lock”,如下所述: 如何从项目中删除 Cocopods?

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


在删除 Pods目录然后运行 pod install时,我偶尔会得到相同的错误。

项目信息中显示的一切都是正确的:

enter image description here

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

enter image description here

最简单的修复是 关闭在 Xcode 的项目并重新开放

如果你转到目标的 生成设置并在 全部上过滤,你现在会看到没有错误的 PODS_ROOT条目:

enter image description here

现在构建时应该没有错误。


注意: 甚至 Cocoa Pods 的官方 AFNetworking iOS 示例也有这个问题,这让我相信这是 Xcode 的一个 bug。

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

enter image description here

我也有同样的问题 /Pods/ Pods-resources.sh : 没有这样的文件或目录 即使在文件等有关的豆荚被删除。

通过执行 target-> Build 阶段,然后删除构建阶段“ Copy Pod Resources”,可以摆脱它。

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

enter image description here

简单地解决办法如下:

  • (sudo) gem install cococoapods

  • 吊舱安装

  • 清洁和建造

看起来问题是由我们的一个团队成员最近安装了一个 cocoapods gem 引起的。

我有一个类似的问题,这是什么工作:

  1. 在 Xcode 中:
    • 干净
    • 删除 Xcode 的派生数据/窗口/组织者/项目/您的项目
    • Pod 目录(它包含配置文件,删除文件而不仅仅是引用!)
    • 删除了对 Project/Configuration (调试/发布)中每个目标的 pod 配置文件的所有引用
    • 从所有目标中移除“目标/构建阶段/复制豆荚资源”
    • 从所有目标中删除“目标/构建设置/用户定义/PODS _ ROOT”
  2. 退出 Xcode
  3. 在您的项目目录中:
    • Rm-rf 豆荚
    • (可选) rm-rf YourProject.xcworkspace
    • Rm-rf Podfile. lock
  4. 吊舱安装
  5. 在 Xcode 打开你的项目 xcworkspace

在使用分离舱之前,我已经创建了多个目标。后来,当我开始编译其他目标时,我不得不将 link _ with 与我的 Podfile 中的目标列表一起添加。

  1. 在升华文本中打开.xcodeproj 文件
  2. 删除这两行,如果你有干净的豆荚文件夹,我的意思是,如果你得到上述错误后,你删除豆荚文件夹

我最近也遇到了同样的问题,我尝试了所有可能的建议,除了这个插件,没有任何其他的适合我:

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

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

我希望我能帮助别人。

这个问题解决了。

  1. 选择项目的 目标
  2. 选择 生成设置
  3. 打开 用户定义下拉列表
  4. 将键 PODS _ ROOT的值更改为 ${ SRCROOT }/豆荚

Screenshot for above steps

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

我觉得这里有个窃听器。
对我来说,我删除 Pods文件夹和 Podfile.lock和做的 pod install再次解决问题。
这条信息忽略了

在我的例子中,我确实将 Podfile.lock & Manifest.lock 放到了源代码控制中,但是我忘了添加 Pods-Project。调试(发布)。Xcconfig 文件到源代码管理(通过错误地添加 * 。Xcconfig 到。) ,然后我得到了相同的编译错误,原因完全相同,PODS _ ROOT 没有被设置。

因此,如果目标是在克隆回购之后,项目可以立即构建和运行,而不需要在机器上安装 CocoaPods,那么你要么在源代码控制中添加整个 Pods 目录,要么在源代码控制中添加 Podfile.lock、 Manifest.lock、项目的 xcconfig 文件和 Pods xcconfig 文件。

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

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

enter image description here

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

你可以试试下面这个,我修好了。

  1. 安装 gem 安装 cocoapods
  2. 安装 gem 安装 cocoapods-干净
  3. Goto 吊舱解体
  4. 太空舱清理完毕
  5. 吊舱安装

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

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

  1. 转到目标项目设置中的“生成阶段”选项卡 这是在制造麻烦

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

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

  4. 在“信息”选项卡中的项目设置中,展开“配置”和 将调试和调试的目标配置设置为“无” (这将修复两个丢失的文件警告)

  5. 删除项目的派生数据(Window > Projects > Delete [ next 然后重新启动 Xcode,构建/运行 target

我今天太开心了!

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

如果您有一个 watch OS 目标: 我突然发现,在 watch 分机中有 pods,但是在 watch 目标本身中没有,这会导致同样的错误。解决方案是将豆荚也添加到手表目标。

gem install xcodeproj

也许能帮到你。

参见 Pod 安装失败,中止-新的 Swift 项目

如果在创建 Podfile 之后添加了新的目标,只需删除 Podfile、 Podfile.lock、 Pods 文件夹和工作区 那么 然后把你的豆荚放进去 吊舱安装

在尝试以上操作之后,我意识到我在 pod install上得到了一个错误

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

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

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

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

在花了几个小时后,我发现解决方案去“构建阶段” 然后“检查吊舱清单锁定” 勾选“安装时只运行脚本”

以后再谢我吧;)enter image description here

我有同样的问题与我的 爱奥尼克项目,我尝试了以上所有的解决方案,但没有运气。

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

1. PODS_ROOT2. PODS_PODFILE_DIR_PATH

如果没有出现,然后添加它,

PODS_ROOT = ${SRCROOT}/Pods


PODS_PODFILE_DIR_PATH = ${SRCROOT}/

它将解决问题,解决 链接

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