项目构建中的CocoaPods错误

问题描述 投票:178回答:30

我无法构建使用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'
objective-c cocoa-touch cocoapods build-error
30个回答
170
投票

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

rm -rf MyProject.xcworkspace
pod install

6
投票

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

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


4
投票

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

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

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

我希望我会帮助这个人。


4
投票

这个问题解决了。

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

Screenshot for above steps


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

2
投票

您可以尝试以下方法。它适合我。

  1. 安装gem install cocoapods-deintegrate
  2. 安装gem install cocoapods-clean
  3. 在解体后准备好了
  4. 豆荚干净
  5. pod安装

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


2
投票

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

  1. 转到项目设置中的“构建阶段”选项卡,以查找导致问题的目标。
  2. 删除名为“Check Pods Manifest”和“Copy Pods Resources”的部分
  3. 在“Link Binary With Libraries”中删除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实现并重新实现它。确保在所有目标上的“Build Phases”中删除“Copy Pods Resources”和“Check Pods Manifest.lock”,如下所示:How to remove CocoaPods from a project?


68
投票

TLDR:这很可能是Xcode的一个错误,关闭和重新打开项目通常是最简单的修复。假设其他一切都是configured properly


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

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

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

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

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

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


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

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


1
投票

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


1
投票

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

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

我没有把构建设置与默认CocoaPods配置合并到源控件的private .xcconfig


0
投票

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


0
投票

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

enter image description here

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


0
投票

如果你有一个watchOS目标:我发现突然间,在手表扩展中但是没有在监视目标中的pod本身也会出现同样的错误。解决方案是将吊舱添加到手表目标。


0
投票
gem install xcodeproj

可以帮到你。

pod install fails with abort - New Swift project


0
投票

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


0
投票

尝试上述后,我意识到我在pod install上收到错误

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

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

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

有关更多信息,请参阅此链接。 Cocoapods Warning - CocoaPods did not set the base configuration of your project because because your project already has a custom config set


0
投票

花了几个小时后,我发现解决方案转到“Build Phases”然后“Check Pods Manifest.lock”勾选“仅在安装时运行脚本”

谢谢我以后;)enter image description here


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


32
投票

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


0
投票

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


30
投票

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


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


28
投票

所以似乎CocoaPods没有为我的项目设置配置。它们需要基于Pods.xcconfig中的Pods/Target Support Files/Pods。要实现这一点,我必须执行以下操作:

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

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

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

解决不正确。似乎SRCROOT正在添加一条不存在于路径中的额外目录。所以我硬编码了Project文件夹的路径。

这让我可以建立。

为什么这么多可以节省你时间的东西最终会吃掉它?

注意:请参阅@ abood的答案进行解释。


21
投票

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

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

15
投票

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

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

10
投票

通过执行以下操作简单地解决:

  • (sudo)gem install cocoapods
  • pod安装
  • 清洁和建设

似乎问题是由我们的一个团队成员有一个更近期的cocoapods gem安装引起的。


9
投票

  1. 在sublime文本中打开.xcodeproj文件
  2. 删除这两行,如果你有干净的pods文件夹,我的意思是如果你删除pods文件夹后得到上述错误
© www.soinside.com 2019 - 2024. All rights reserved.