错误:“沙盒与Podfile.lock不同步”;在用cocoapods安装RestKit之后

在用cocoapods安装RestKit后,我遇到了一个奇怪的问题。 在用cocoapods解决我的项目的RestKit依赖关系并试图构建它之后,我面临这个错误:

沙箱与Podfile.lock不同步。运行“pod install”或更新CocoaPods安装。

我试着运行pod install,但是没有变化。

以下是一些照片: enter image description here

enter image description here

  PODS:
- AFNetworking (1.3.3)
- RestKit (0.20.3):
- RestKit/Core
- RestKit/Core (0.20.3):
- RestKit/CoreData
- RestKit/Network
- RestKit/ObjectMapping
- RestKit/CoreData (0.20.3)
- RestKit/Network (0.20.3):
- AFNetworking (~> 1.3.0)
- RestKit/ObjectMapping
- RestKit/Support
- SOCKit
- RestKit/ObjectMapping (0.20.3)
- RestKit/Search (0.20.3):
- RestKit/CoreData
- RestKit/Support (0.20.3):
- TransitionKit (= 1.1.1)
- RestKit/Testing (0.20.3)
- SOCKit (1.1)
- TransitionKit (1.1.1)


DEPENDENCIES:
- RestKit (~> 0.20.0)
- RestKit/Search (~> 0.20.0)
- RestKit/Testing (~> 0.20.0)


SPEC CHECKSUMS:
AFNetworking: 61fdd49e2ffe6380378df37b3b6e70630bb9dd66
RestKit: 1f181c180105a92f11ec4f6cd7de37625e516d83
SOCKit: 2f3bc4d07910de12dcc202815e07db68a3802581
TransitionKit: d0e3344aac92991395d4c2e72d9c5a8ceeb12910


COCOAPODS: 0.29.0
335569 次浏览

我可以通过更新CocoaPods来解决这个问题。

一、项目清理

  1. 在项目导航器中,选择您的项目
  2. 选择目标
  3. 删除所有libpod *。建造阶段;用库链接二进制文件中的a

2更新CocoaPods

  1. 启动终端并转到项目目录。
  2. 使用pod install命令更新CocoaPods
经过多次尝试,我终于解决了这个问题。变量${PODS_ROOT}没有设置,我做下面的技巧。 去构建阶段->检查Pods清单。锁定和替换

diff "${PODS_ROOT}/../Podfile.lock" "${PODS_ROOT}/Manifest.lock" > /dev/null

diff "${SRCROOT}/Podfile.lock" "${SRCROOT}/Pods/Manifest.lock" > /dev/null

这对我有帮助。

如果你在Podfile中删除目标的所有pod,例如:

target 'myTarget' do
pod 'great-stuff', '~> 4.0'  // you deleted this last pod
end

你需要手动从你的Xcode目标构建阶段中删除这些构建步骤:

  • 检查pod Manifest.lock
  • 复制Pod资源

Cocoapods(当前稳定版本0.37.2)在运行pod install时不会执行此清理。

如果你的舱是空的

  1. 删除复制豆荚资源和检查豆荚清单。
  2. 从构建阶段锁定项目的设置

我在配置错误的xcconfig文件时遇到了这个问题。

pods生成的xcconfig没有正确地包含在我正在使用的定制xcconfig中。这导致没有设置$PODS_ROOT,导致diff "/../Podfile.lock" "/Manifest.lock"失败,原因很明显,Pods将其误解为同步问题。

更改目标名称后

我的问题是xcconfig的目标名称是旧的。

  • 进入项目文件->信息->配置
  • 删除旧的xcconfig (Debug和amp;版本)
  • 圆荚体安装

它会更新到新的。

如果你丢失了。h文件,这也是原因(pods头搜索路径在这些xcconfig中)

我的问题是当我的开发人员在项目中添加了一个pod,然后我使用github拉项目,然后错误发生了。我运行pod安装,它更新了pod的新库,这是由我的开发伙伴添加的。希望能有所帮助。

从项目中移除吊舱并重新安装对我来说很有效。

有一个很好的GitHub库可以完全从项目中删除pods。

只需要保留PodFile的备份并运行以下命令。

  • Gem安装cocoapods-deintegrate
  • 宝石安装椰荚干净
  • 进入项目目录并运行豆荚去积分
  • 再次运行舱清洁
  • 运行圆荚体安装

清理干净,然后跑。

这让我很开心!

  1. 删除Podfile。锁定文件在您的项目文件夹
  2. 删除项目文件夹中的Pods文件夹
  3. 在项目文件夹中执行pod install
  4. 在Xcode中进行“清洁”
  5. 重新构建项目
我在最新的ComponentKit 0.14上也有同样的问题。 原因是PODS_ROOT没有设置,我发现解决方案是添加一行到ComponentKit。xcconfig: < / p >
#include "../Pods/Target Support Files/Pods-ComponentKit/Pods-ComponentKit.debug.xcconfig"

在我的案例中,我在集成WatchKit应用程序后得到了同样的错误。为了解决问题,我需要在Podfile中添加WatchKit的两个目标:

target 'MyProject WatchKit App' do
platform :watchos, '2.0'
shared_pods
end


target 'MyProject WatchKit App Extension' do
platform :watchos, '2.0'
shared_pods
end

PS:也许这发生在我身上,因为我错误地为MyProject WatchKit App目标安装了pods。

当你这样做时

pod install --verbose

确保:

1-您在正确的目录。大多数情况下,当下载一个github项目时,会有一个主文件夹。在调用pod install——verbose之前,您需要在终端中的实际项目名称文件夹(masterfolder/project folder)中

2-删除旧的pod锁文件夹,然后使用xcode clean &清理项目;做吊舱安装。

3-保持rvm更新。

在项目中检查pod可能没有被推送到Git。所以很明显compile将会崩溃,因为它无法找到Pods目录

 diff "${PODS_ROOT}/../../Podfile.lock" "${PODS_ROOT}/Manifest.lock" > /dev/null

我通过在导航到我的项目目录后在终端中发出pod install来解决这个问题。

事实上,我有一个错误cannot find pod command,这意味着cocoapods没有安装。这是通过gem install cocoapods修复的。如果遇到依赖项错误,只需安装报告丢失的每个命令。在我的情况下,我必须更新Ruby,之后cocoapods被正确安装,我能够使用命令pod install

PS.如果你有Pods目录,试试pod update。也许你的库需要更新。

对我来说,问题是我通过复制一个现有的目标在我的应用程序中创建了一个新目标,但忘记将目标添加到Podfile。由于某种原因,克隆的目标工作了几天没有问题,但过了一段时间后,它无法通过这个错误构建。我必须在Podfile中为我克隆的项目目标创建一个新的目标条目,然后运行pod install

我有这个问题时,我试图删除以前安装的库

@Michal的回答帮助了我

删除或卸载之前添加的库:cocoapods

我找到了解决方案:运行:pod update而不是pod install。错误被修正了!

我不小心从我试图安装pod的地方删除并解压回文件夹 是这样的: 1) CD在你的项目文件夹 2)压缩你的项目 3)删除项目文件夹 4)解压文件夹回来 5)从现在开始,即使你有这个文件夹,你也应该从终端

再次进入这个文件夹
我的问题是可可豆荚版本,所以我安装了最新的: sudo gem install cocoapods --pre 然后pod update < / p >

这对我很有用

对我有用的步骤(XCode 8.3.3/XCode 9 beta with a Swift 3.1 project)

 - Navigate to your project directory
- pod install //which then asks you to do the next step
- pod repo update //takes a while to update the repo
- pod update
- pod install
- Close Xcode session
- Open and Clean the project
- Build/Run

make sure you open the .xcworkspace file rather than the project file (.xcodeproj) when working with pods。这应该解决任何错误的链接,如“苹果Mach -O链接器命令失败”

如果你正在应用项目清理的方式,你的项目仍然错误。

你可以去选项卡构建阶段,然后找到Check Pods Manifest.lock并删除脚本。

然后输入命令删除文件夹Pods,如rm -rf Pods

然后你需要删除Podfile。通过命令rm Podfile.lock锁定

也许,基于某种情况,你可以删除文件your_project_name.xcworkspace

最后,你需要命令来安装Pod pod install --repo-update

希望你能想到这个解决方案。快乐编码:)

如果你从github下载项目或从其他地方复制,那么依赖库不存在,就会出现这个问题。

你只需要在终端中cdproject/project_name directory,使用ls检查是否有一个Podfile文件。

如果存在Podfile,你只需要安装依赖项:

pod install

如果你看到如下错误:

< p > diff: / . . / Podfile。lock:没有这样的文件或目录 diff: /清单。lock:没有这样的文件或目录 错误:沙箱与Podfile.lock不同步。运行'pod install'或更新CocoaPods安装

那么在你的项目中Cocoapods有一个问题。有时茧足类动物会不同步,你需要重新启动茧足类动物。您应该能够通过以下方法解决此错误:

  1. 删除Podfile。锁定文件在您的项目文件夹
  2. 删除项目文件夹中的Pods文件夹
  3. 在项目文件夹中执行“pod install”
  4. 在Xcode中进行“清洁”
  5. 重新构建项目

我错了:

diff: / . . / Podfile。diff: /Manifest. lock:没有这样的文件或目录。lock:没有这样的文件或目录错误:沙箱没有与Podfile.lock同步。

我第一次从bitbucket中提取请求。我清理了我的项目,尝试了所有的方法(pod安装,pod更新等),但上面的答案都不适合我。然后我只是检查我安装吊舱的路径,并纠正它,重新安装,它只是工作。确保在.xcodeproj或.xcworkspace(如果已经存在的话)存在的位置前面给出路径。也许有人会从中受益。

我也犯了同样的错误。首先我更新cocoapods使用

sudo gem install cocoapods

然后安装Pod使用Pod安装命令为我工作。

您需要在定制的xcconfig中包含pods生成的xcconfig路径。对我来说,这是因为配置错误的xcconfig文件。

请执行以下步骤:

1:删除Podfile。锁定文件在您的项目文件夹

2:删除项目文件夹中的Pods文件夹

3:在项目文件夹中执行“pod install”

4:在Xcode中进行“Clean”

5:重建你的项目

我使用包中的可可荚安装。

  • 安装打包机
  • 在项目根目录中添加Gemfile
  • 在Gemfile中添加所需的宝石
  • bundle install
  • 然后总是使用bundle exec pod install

如果你不知道如何操作这些步骤之一,在谷歌上搜索会有帮助:)

pod deintegrate <PROJECT>.XCODEPROJ // will deintegrate cocoapods
pod install // installs the pods

我找了几个小时,找到了如下的解决方案:

在我的例子中,方法1是有效的。

方法1:

  1. 选择目标>构建阶段 >点击用库链接二进制文件 >删除所有libPods.a文件

  2. open Terminal >直接到您的项目>运行:

      pod install
    
  3. 清洁和建立项目

< a href = " https://stackoverflow.com/a/31738557/10717246 " > ref . 1 < / >

方法2:

  1. open Terminal >直接到您的项目>运行:

     pod deintegrate --verbose
    pod install --verbose
    

< a href = " https://stackoverflow.com/a/35446801/10717246 " > ref . 2 < / >

方法3:

  1. 选择目标>建立设置 >点击“+”;标志

  2. add 2用户自定义设置:[to the left = to the right]

     PODS_ROOT = ${SRCROOT}/Pods
    

而且

    PODS_PODFILE_DIR_PATH = ${SRCROOT}/

< a href = " https://stackoverflow.com/a/47107769/10717246 " > ref.3 < / >

我什么都试过了,但问题还是没有解决。 在那之后,我这样做了,它工作尽快(尽可能顺利)
  1. 打开.xcworkspace文件。
  2. 如果在Xcode 10上使用Cordova,则更改为遗留构建系统。
  3. 转到Podfile的目标/项目。选择“部署traget”为11+
  4. 然后将debug和release更改为Pods-.build/release。在我的例子中是App.debug/release。图片附呈。希望能有所帮助。 李CHange the Debug Release in Pod < / >

对于在flutter中工作的我来说,由于现有的配置,配置没有自动添加。

Flutter/Release.xcconfigFlutter/Debug.xcconfig中添加#include "Pods/Target Support Files/Pods-Runner/Pods-Runner.profile.xcconfig"

解决了这个问题。

我也有同样的问题 我将所有内容更新到最新的 来自: NPM -v 6.4.1 节点-v v10.2.1 Pod——version 1.5.3

< p >: NPM -v 6.5.0 Node -v v11.8.0 Pod——version 1.6.0

然后修复它

我的回答是:

    使用以下命令更新cocoapods: 李圆荚体更新< / >
  1. 通过这个命令安装你的新pods。 李圆荚体安装< / >
  2. 最后一条: Sudo gem install cocoapods.
  3. .

运行这个程序,错误就会消失

rm -rf Pods && gem install cocoapods && pod install

  • Build Phases -> Check Pods Manifest.lock
  • 取代
${PODS_ROOT}/Manifest.lock

:

${SRCROOT}/Podfile.lock" "${SRCROOT}/Pods/Manifest.lock

签到图片:

enter image description here

我在Flutter项目中遇到了这个问题。我刚刚在xCode中打开了iOS模块,Build Clean Folder对我来说很有效。

尝试在Podfile中设置正确的目标,然后运行pod updatepod install

ios平台目标

我有同样的问题与Ionic-3,我做了一些上面提到的步骤,但没有一个对我有效。

< p >离子 删除ios平台

$ ionic cordova platform remove ios
$ ionic cordova platform add ios

打开xcode然后尝试构建。 这对我有用:-)

这些答案对我来说完全没用。必须通过运行cordova platform add ios重新创建项目。我注意到,即使是新生成的项目(在我的情况下)Firebase pod也会一次又一次地出现错误消息。在我看来,在XcodeCocoaPods中的一些(Firebase, RestKit) pod看起来像一个bug。为了包含pods,我可以简单地编辑我的config.xml并运行cordova platform add iOS,它会自动为我完成所有事情。但不确定它是否适用于所有场景。

编辑:我有一个Podfile从以前的iOS/Xcode,但最新的今天有# DO NOT MODIFY -- auto-generated by Apache CordovaPodfile。这让我的脑海中亮起了一盏灯,开始尝试这种方法。看起来有点琐碎,但工作和我的Firebase功能工作。

通过安装cordova版本9,修复了ionic应用程序的问题,尝试了以上所有解决方案,大部分与xcode链接,都不适合我的ionic应用程序

如果任何人在他们的cordova应用程序中遇到同样的问题,请更新到cordova 9来解决这个问题

当我添加一个新的开发人员帐户时,我得到了这个错误。我更改了项目名称下的Team,但我错过了在Pods文件夹下更新它。

我在Pods-> Signing -> Team下可用的Teams选项下更新了新的开发人员ID后解决了这个问题,错误消失了,构建成功。

我混淆了上面的一些评论,这解决了我的问题

一、项目清理

  1. 在项目导航器中,选择您的项目
  2. 选择目标
  3. 删除Build Phases > Link Binary With Libraries中的所有libPods*.a

2清洁构建文件夹

在XCode中:Menu Bar → Product → Product -> Clean build Folder

3更新cocapods

运行pod update

首先,你必须理解Podfile.lock是什么,然后理解Manifest.lock是什么以及它在哪里被使用。

Podfile包含你拥有的每个依赖项的(乐观或精确)版本。锁文件只保存精确的版本。

一旦你执行pod install,所有的pods都会被下载/安装到/pods目录中。你可能想承认,也可能不想。这取决于你的团队。不是由你的团队决定他们是否应该提交Podfile.lock。这样团队中的每个开发人员都可以确保他们得到完全相同的版本。

  • 假设您下载了团队的代码。在你的项目根目录中,你只有PodfilePodfile.lock,而Pods目录没有被提交。
  • 然后执行pod install来创建Pods目录。每个pod的版本的你的快照应该与Podfile.lock中的所有pod的版本匹配。
  • CocoaPods有一个安全检查,以确保匹配的版本

这就是Manifest.lock开始发挥作用的地方。Manifest.lock是创建的本地机器锁。它必须与Podfile.lock匹配,该Podfile.lock是由你的repo中的最后一次提交(导致你的pods的变化)生成的。如果不匹配,那就有问题了。

关于Manifest.lock文件是什么:

  #     Manifest.lock: A file contained in the Pods folder that keeps track of
#     the pods installed in the local machine. This files is used once the
#     exact versions of the Pods has been computed to detect if that version
#     is already installed. This file is not intended to be kept under source
#     control and is a copy of the Podfile.lock.

老实说,我只能想到一种情况,在这种情况下Manifest.lockPodfile.lock会不同步:

我的意思是,如果你从main分支中提取,那么你会得到main的Podfile和lock文件。如果你随后对Podfile进行了更改,然后运行pod install,那么你将更新Podfile.lockManifest.lock,并使它们保持同步。没有问题

这样是否可以:

  1. 你和你的团队不提交/Pods目录
  2. 你的PodfilePodfile.lock中有合并冲突,但你没有意识到它。或者你没有同时提交PodfilePodfile.lock
  3. 然后考虑到Xcode不处理PodfilePodfile.lock,那么自然你的项目可以成功构建。
  4. 然而如果你去检查你的目标的构建阶段,你会看到以下内容

enter image description here

该脚本被记录为在这里

#     Adds a shell script build phase responsible for checking if the Pods
#     locked in the Pods/Manifest.lock file are in sync with the Pods defined
#     in the Podfile.lock.
#
#     @note   The build phase is appended to the front because to fail fast.
#
#     @return [void]

这些行所做的是:执行diff并确保你的Manifest.lock即所有已安装pod版本的当地的快照等于Podfile.lock即所有已安装pod版本的回购的当前快照。

修复可能非常简单,只要确保你的Podfile是你想要的。然后运行pod install。你也以某种方式意外地在你的/Pods目录中对你的Manifest.lock进行了更改(或者如前所述,可能只提交了锁文件而没有提交Podfile,反之亦然)。删除/Pods目录不会造成伤害。只需要在后面做一个pod install。不要做pod update,除非那是你想要的。

只要确保你从来没有删除了Podfile.lock,否则如果你做了pod install,那么它会更新所有依赖到最新版本。


同样有帮助的是,在锁文件上看到和这个视频,在pod安装和pod更新中如何使用锁文件的CocoaPods文档,最后看到如何更详细地使用所有这些逻辑 这个关于校验和的艺术博客。值得注意的是,单个空格将创建一个新的校验和,并可能使内容不同步

如果您使用Windows进行Git签出和Podfile,也会发生这种情况。lock使用窗口(CRLF)行结束符创建。

对我来说,这是Ruby版本号的问题。

我得到了错误:

The sandbox is not in sync with the Podfile.lock. Run 'pod install' or update your CocoaPods installation.

在尝试了一百万件事情之后,包括这个线程中包含的大部分内容,我最终破解了位于:usr/local/bin/pod的pod文件

我更正了第一行,以指向我的机器上实际存在的ruby版本。我改变了:

#!/System/Library/Frameworks/Ruby.framework/Versions/2.3/usr/bin/ruby

#!/System/Library/Frameworks/Ruby.framework/Versions/2.6/usr/bin/ruby

经过几天的努力,从3级到6级一切都解决了。

我尝试了pod install的各种组合,删除node_modules &重装、清洗及放;重建xcode项目,甚至重新启动我的电脑。这些对我都没用……

我的修复是在我的项目的根目录下运行pod --version。我不知道如何或为什么,但这成功地安装了一个缺失的依赖,所以我想我在这里分享它,以防它帮助其他人:)

确保pod配置文件已设置。

enter image description here

我可以通过点击产品-清洁构建文件夹来修复这个问题。

enter image description here

下面这些简单的步骤对我很有用:

  1. 关闭工作空间
  2. 运行pod install --repo-update
  3. 打开你的工作空间,重建(如果你清理你的构建文件夹,这将是更合理的)。

在我的情况下,这个问题是由于一个损坏的*.xcworkspace文件。它在左边的project Navigator菜单中显示了我项目的两个不同版本。

为了验证,我从位于Build Phases > Check Pods Manifest.lock的bash脚本中删除了输出重定向( > /dev/null),以便它将diff打印到STDOUT。果然,在阅读构建日志时,我得到了完全不同的Podfile。锁定和清单。锁输出。

为了解决这个问题,我删除了我的*.xcworkspace,然后从我的ios文件夹中再次运行pod install。自动重新生成工作区文件。在XCode中打开这个新文件,瞧,再也没有构建错误了。

检查吊舱目标和跑者目标必须一致

1 -跑步

enter image description here

2 -吊舱

enter image description here

你能试试这个吗:

  1. 删除Pods文件夹
  2. 删除Podfile.lock
  3. 运行pod安装
  4. 清洁+建造

我通过运行pod install和复制文件Pods/Manifest的内容来解决。锁到Podfile.lock文件

我们也有同样的问题,我们团队中有人打开了Podfile。锁在Visual Studio Code中,保存它,编辑器已经删除了文件末尾的CR(回车)。重新引入“CR”解决了这个问题。 所以一定要运行这个命令来找出为什么这些文件是不同的
diff "${PODS_ROOT}/../../Podfile.lock" "${PODS_ROOT}/Manifest.lock"

删除pod .framework:

< p > Folder named Pods Linked Frameworks and Libraries 并删除所有新的输入行从@主文件应用程序的ios < / em >

以下华氏先生的回答帮助我解决了mac m1上的问题,而不是pod安装是运行:

sudo arch -x86_64 gem install ffi
arch -x86_64 pod install

而不是吊舱安装

这对我很有帮助。希望对你有所帮助

删除

进口“飞镖:html”;未使用的