项目构建中的CocoaPods错误

时间:2013-06-12 18:11:11

标签: objective-c cocoa-touch cocoapods build-error

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

30 个答案:

答案 0 :(得分:170)

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

rm -rf MyProject.xcworkspace
pod install

答案 1 :(得分:68)

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


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

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

enter image description here

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

enter image description here

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

如果您转到目标构建设置并过滤全部,您现在会看到PODS_ROOT条目没有错误:< / p>

enter image description here

现在应该构建没有错误。


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

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

enter image description here

答案 2 :(得分:32)

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

enter image description here

答案 3 :(得分:30)

更新podfile.lock是必需的,不应该被版本控制忽略,它会跟踪某个pod安装时安装的库的版本。 (对于rails和php依赖管理,它分别类似于gemfile.lockcomposer.lock)。要了解详情,请阅读docs。积分转到cbowns


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

答案 4 :(得分:28)

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

  1. 将此文件拖入Xcode中的Xcode项目,选择不复制。
  2. 现在我们的项目中有一个参考,我们可以设置配置: enter image description here
  3. 然后我有另一个构建错误,可能有也可能没有关联。 Copy Pods Resources中定义的shell脚本的路径不正确。

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

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

    这让我可以建立。

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

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

答案 5 :(得分:21)

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

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

答案 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)

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

答案 9 :(得分:6)

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

通过转到target-&gt;构建阶段然后删除构建阶段&#34;复制Pod资源&#34;来摆脱它。

答案 10 :(得分:4)

这个问题解决了。

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

答案 11 :(得分:4)

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

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

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

我希望我会帮助这个人。

答案 12 :(得分:3)

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

答案 13 :(得分:2)

这是我的一天!

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

答案 14 :(得分:2)

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

  1. 转到目标项目设置中的“构建阶段”选项卡 这会造成麻烦。

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

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

  4. 在“信息”选项卡的项目设置中,展开“配置”和 对于debug和,将目标的配置设置为None 发布。 (这将修复一些丢失的文件警告)

  5. 删除项目的派生数据(窗口&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)

您可以尝试以下操作。它固定在我身上。

  1. 安装gem install cocoapods-deintegrate
  2. 安装gem install cocoapods-clean
  3. goto pod deintegrate
  4. pod clean
  5. pod install
  6. 插件将从您的项目的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,是导致问题的原因:

enter image description here

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

答案 22 :(得分:0)

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

答案 23 :(得分:0)

如果你有一个watchOS目标:我发现突然间,在手表扩展名中拥有pod而在watch目标本身中没有使用同样的错误。解决方案是将吊舱添加到手表目标。

答案 24 :(得分:0)

gem install xcodeproj

可以帮到你。

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

答案 25 :(得分:0)

如果在创建Podfile后添加了新目标,只需删除Podfile,Podfile.lock,Pods文件夹和工作区 然后 init pods - &gt;然后放入你的pods pod install

答案 26 :(得分: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

答案 27 :(得分:0)

花了几个小时后,我发现解决方案转到了#34; Build Phases&#34; 然后&#34;检查Pods Manifest.lock&#34; 勾选&#34;仅在安装&#34;

时运行脚本

稍后再次感谢我;)enter image description here

答案 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)

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

相关问题