错误:使用cocoapods安装RestKit后,“沙箱与Podfile.lock ...不同步”

时间:2014-01-26 17:11:43

标签: cocoapods restkit-0.20

使用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

51 个答案:

答案 0 :(得分:275)

我能够通过更新CocoaPods来解决这个问题。

予。项目清理

  1. 在项目导航器中,选择您的项目
  2. 选择目标
  3. 删除构建阶段>中的所有libPods * .a链接二进制文件库
  4. II。更新CocoaPods

    1. 启动终端并转到您的项目目录。
    2. 使用命令pod install
    3. 更新CocoaPods

答案 1 :(得分:81)

经过多次尝试后,我设法解决了这个问题。变量$ {PODS_ROOT}未设置,我在下面进行操作。 转到构建阶段 - >检查Pods Manifest.lock并替换

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

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

它帮助了我。

答案 2 :(得分:43)

如果从Podfile中删除目标中的所有pod,例如

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

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

  • Check Pods Manifest.lock
  • 复制Pod资源

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

答案 3 :(得分:20)

从项目中删除pod并重新安装对我有效。

有很好的GitHub repository可以完全删除项目中的pod。

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

  • gem install cocoapods-deintegrate
  • gem install cocoapods-clean
  • 转到项目目录并运行 pod deintegrate
  • 再次运行 pod clean
  • 运行 pod install

清洁并运行。

答案 4 :(得分:12)

更改目标名称后

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

  • 去项目文件 - >信息 - >构造
  • 删除了旧的xcconfig(Debug& Release)
  • pod install

它会更新为新的。

此外,如果您丢失了.h文件,那就是原因(pods标题搜索路径位于这些xcconfig中)

答案 5 :(得分:8)

我一直在搜索几个小时,发现以下解决方案:

在我的情况下,方法1有效。

方法1:

  1. 选择目标>转到构建短语>单击将二进制文件与库链接>删除所有 libPods.a 文件
  2. 打开终端>直接转到您的项目>运行:

     pod install
    
  3. 清理并构建项目

ref.1

方法2:

  1. 打开终端>直接转到您的项目>运行:

    pod deintegrate --verbose    
    pod install --verbose
    

ref.2

方法3:

  1. 选择目标>转到构建设置>单击“ +”号
  2. 添加2个用户定义的设置:[左侧=右侧]

    PODS_ROOT = ${SRCROOT}/Pods
    

    PODS_PODFILE_DIR_PATH = ${SRCROOT}/
    

ref.3

答案 6 :(得分:5)

如果您看到如下错误:

diff:/../Podfile.lock:没有这样的文件或目录 diff:/Manifest.lock:没有这样的文件或目录 错误:沙箱与Podfile.lock不同步。运行&#pod; pod install'或者更新你的CocoaPods安装。

然后您的项目中有Cocoapods的问题。有时cocoapods可能会失去同步,你需要重新启动cocoapods。您应该能够通过以下方式解决此错误:

  1. 删除项目文件夹中的Podfile.lock文件
  2. 删除项目文件夹中的Pods文件夹
  3. 执行' pod install'在您的项目文件夹中
  4. 做一个"清洁"在Xcode中
  5. 重建您的项目

答案 7 :(得分:5)

在我的情况下,我在集成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目标安装了pod。

答案 8 :(得分:3)

  • 转到构建阶段->检查Pod Manifest.lock
  • 替换
${PODS_ROOT}/Manifest.lock

具有:

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

签入图片:

enter image description here

答案 9 :(得分:3)

我找到了我的解决方案:运行:pod update而不是pod install。错误已得到修复!

答案 10 :(得分:3)

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

答案 11 :(得分:3)

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

在我使用的自定义xcconfig中,Pods生成的xcconfig未正确#included。这导致$ PODS_ROOT未被设置导致diff "/../Podfile.lock" "/Manifest.lock"失败,原因显而易见,Pod将其误解为同步问题。

答案 12 :(得分:2)

我尝试了一切,但问题仍然存在。 之后,我执行了此操作,并尽快运行(尽可能平滑)。

  1. 打开.xcworkspace文件。
  2. 如果在Xcode 10上使用Cordova,请更改为旧版构建系统。
  3. 转到Podfile的目标/项目。选择Deployment traget作为11 +
  4. 然后将调试和发行版更改为Pods-.build/release。在我的案例中是App.debug / release.Pic。希望能帮助到你。 CHange the Debug Release in Pod

答案 13 :(得分:2)

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

您只需要cd到终端中的project/project_name directory,使用ls检查是否有Podfile个文件。

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

pod install

答案 14 :(得分:2)

从这些答案中完全没有任何结果对我有用。必须通过运行<template> <v-row> <v-dialog v-model="dialog" max-width="600px"> <template v-slot:activator="{ on }"> <v-btn class="ma-3" color="info" v-on="on">{{ text }}</v-btn> </template> <slot></slot> </v-dialog> </v-row> </template> 重新创建项目。我注意到的是,即使是重新生成的(带有我的情况)Firebase Pod的项目也一遍又一遍地导致错误消息。在我看来,cordova platform add iosXcode中的某些(Firebase,RestKit)吊舱似乎是一个错误。要包含Pod,我只需编辑CocoaPods并运行config.xml,它就会自动为我完成所有工作。不确定是否可以在所有情况下使用。

编辑:我有一个cordova platform add iOS / Podfile上的iOS,但最新的Xcode位于{{ 1}}。这打开了我的脑海,尝试了这种方法。看起来有点琐碎,但可以正常使用,并且可以完成我的# DO NOT MODIFY -- auto-generated by Apache Cordova功能。

答案 15 :(得分:1)

我在Flutter项目中遇到了这个问题。我刚刚在xCode中打开了iOS模块,并且Build Clean Folder对我有用。

答案 16 :(得分:1)

对我来说,由于工作繁忙,该配置由于现有配置而没有自动添加。

Flutter/Release.xcconfig添加到Flutter/Debug.xcconfigimport pandas as pd from pandas import ExcelWriter from pandas import ExcelFile import os.path as op from openpyxl import workbook import re def extract_export_columns(df, list_of_columns, file_path): column_df = df[list_of_columns] column_df.to_csv(file_path, index=False, sep="|") #Orrginal file input_base_path = 'C:/Users/somedoc input' main_df_data_file = pd.read_csv(op.join (input_base_path, 'som_excel_doc.csv ')) #Filter for tailnumbers tail_numbers = main_df_data_file['abcde'] <= 30 main_df_data_file[tail_abcd] #iterate over list #number_filter = main_df_data_file.Updated.isin(["15"]) #main_df_data_file[number_filter] #print(number_filter) #for row in main_df_data_file.values: #for value in row: # print(value) #print(row) # to check the condition # Product of code output_base_path = r'C:\Users\some_doc output' extract_export_columns(main_df_data_file, ['Updated 28 Feb 18 Tail #'], op.join(output_base_path, 'UBC_example3.txt'))

解决了问题。

答案 17 :(得分:1)

我的问题是可可豆荚版本所以我安装了最新的: sudo gem install cocoapods --pre 然后pod update

这对我有用

答案 18 :(得分:1)

对我有用的步骤(cronjob

cronjob

同样 XCode 8.3.3/XCode 9 beta with a Swift 3.1 project 。这应解决链接中的任何错误,例如“Apple Mach -O Linker命令失败”

答案 19 :(得分:1)

如果您申请项目清理的方式,您的项目仍然出错。

您可以转到构建阶段,然后找到Check Pods Manifest.lock并删除脚本。

然后键入命令以删除Pods

之类的文件夹rm -rf Pods

然后你需要通过命令rm Podfile.lock

删除Podfile.lock

根据情况,您可以删除文件your_project_name.xcworkspace

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

希望这个解决方案适合你。快乐编码:)

答案 20 :(得分:1)

当你这样做时

pod install --verbose

确保:

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

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

3-保持您的rvm更新。

答案 21 :(得分:1)

我在Ionic-3上遇到了同样的问题,我做了一些上述步骤,但没有一个对我有用。

对于离子 删除ios平台

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

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

答案 22 :(得分:1)

通过安装Cordova版本9修复了离子应用程序的问题,尝试了上述所有与xcode链接的解决方案,但均不适用于我的离子应用程序

如果有人在Cordova应用程序中遇到相同问题,请更新至Cordova 9以解决此问题

答案 23 :(得分:0)

如果您使用 Windows 进行 Git 检出,并且 Podfile.lock 是使用 Windows (CRLF) 行结尾创建的,也会发生这种情况。

答案 24 :(得分:0)

检查 Pods 目标和 Runner 目标必须相同

1- 跑步者

enter image description here

2- Pods

enter image description here

答案 25 :(得分:0)

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

ios platform target

答案 26 :(得分:0)

添加新的开发者帐户时出现此错误。我更改了项目名称下的Team,但是错过了Pods文件夹下的更新。

我在Pods-> Signing -> Team下可用的“团队”选项下更新了新的开发人员ID后,便解决了该错误,并且构建成功。

答案 27 :(得分:0)

首先您必须了解 Podfile.lock 是什么,然后了解 Manifest.lock 是什么以及它在何处使用。

Podfile 包含您拥有的每个依赖项的(optimistic 或确切)版本。锁定文件只保存确切的版本。

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

  • 假设您下载了团队的版本。在您项目的根目录中,您只有 PodfilePodfile.lock
  • 然后您执行pod install。 CocoaPods 只是添加了一个安全检查,以确保您和您的所有其他团队成员都使用相同版本的所有内容。

这就是 Manifest.lock 发挥作用的地方。 Manifest.lock 是您本地机器的锁。它必须与存储库中最后一次提交(导致 Pod 发生更改)生成的 Podfile.lock 匹配。如果它不匹配,那么事情就搞砸了。

关于 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 不同步的一种情况:

我的意思是,如果您从主分支拉取,那么您将获得主分支的 Podfile 和锁定文件。如果您随后对 Podfile 进行更改,然后运行 ​​pod install,那么您将更新 Podfile.lockManifest.lock 并使它们保持同步。没有这个问题

这只是为了如果:

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

enter image description here

该脚本已记录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。您还以某种方式意外更改了 Manifest.lock 目录中的 /Pods(或者如前所述,可能只提交了锁定文件而不是 Podfile,反之亦然)。删除 /Pods 目录不会造成危害。之后做一个pod install。除非您想要,否则不要执行 pod update

只要确保您永远删除Podfile.lock,否则如果您执行pod install,它会将所有依赖项更新到它可以的最新版本.


查看和此 video 锁定文件、CocoaPods docs 锁定文件如何在 pod 安装与 pod 更新中使用不同以及最后查看所有这些逻辑如何使用也很有帮助更多详情 this artsy blog on checksums。值得注意的是,单个空间将创建一个新的校验和,并可能使事情不同步。

答案 28 :(得分:0)

就我而言,此问题是由损坏的 *.xcworkspace 文件引起的。它在左侧的 Project Navigator 菜单中显示了我项目的两个不同版本。

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

为了修复它,我删除了我的 *.xcworkspace,然后再次从我的 pod install 文件夹中运行 ios。这会自动重新生成工作区文件。在 XCode 中打开那个新文件,瞧,没有更多的构建错误。

答案 29 :(得分:0)

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

我收到错误:

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

在尝试了一百万件事之后,包括这个线程中包含的大部分内容,我最终破解了位于以下位置的 pod 文件:usr/local/bin/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 解决了所有问题。

答案 30 :(得分:0)

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

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

答案 31 :(得分:0)

我尝试了pod install的各种组合,删除node_modules并重新安装,清理和重建xcode项目,甚至重新启动我的电脑。这些都不适合我...

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

答案 32 :(得分:0)

我可以通过单击“产品”->“清理构建文件夹”来解决此问题。

enter image description here

答案 33 :(得分:0)

确保设置了 pod 配置文件。

enter image description here

答案 34 :(得分:0)

我有同样的错误。首先,我使用

更新cocoapods
sudo gem install cocoapods

然后使用Pod install命令为我安装pod。

答案 35 :(得分:0)

如果你的豆荚是空的

  1. 删除复制窗格资源并检查窗格清单。
  2. 锁定项目的构建阶段设置

答案 36 :(得分:0)

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

答案 37 :(得分:0)

这是我的一天!

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

答案 38 :(得分:0)

我对最新的ComponentKit 0.14有同样的问题。 原因是PODS_ROOT没有设置,我发现解决方案是在ComponentKit.xcconfig中添加一行:

#include "../Pods/Target Support Files/Pods-ComponentKit/Pods-ComponentKit.debug.xcconfig"

答案 39 :(得分:0)

检查您的项目中可能没有将Pod推送到Git。很明显,编译会因为无法找到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。也许您的图书馆需要更新。

答案 40 :(得分:0)

当我试图删除以前安装的库

时,我遇到了这个问题

@Michal的回答帮助了我

Remove or uninstall library previously added : cocoapods

答案 41 :(得分:0)

我意外删除了然后从我尝试安装pod的文件夹中解压缩文件夹 就像这样: 1)cd在你的项目文件夹中 2)压缩你的项目 3)删除项目文件夹 4)解压缩文件夹 5)从现在开始,即使你有这个文件夹,你也应该从终端再次访问这个文件夹

答案 42 :(得分:0)

我有错误:

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

我第一次从bitbucket请求了。我清理了我的项目并尝试了一切(pod安装,pod更新等),但上述答案都没有对我有用。然后我只检查我安装pod的路径并更正它并再次安装,它只是工作。确保在.xcodeproj或.xcworkspace(如果已经存在)之前提供路径。也许有人会从中受益。

答案 43 :(得分:0)

运行此命令,错误将消失

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

答案 44 :(得分:0)

请执行以下步骤:

1:删除项目文件夹中的Podfile.lock文件

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

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

4:用Xcode进行“清理”

5:重建项目

答案 45 :(得分:0)

我使用捆绑软件中的可可豆荚安装。

  • 安装捆绑软件
  • 在项目的根目录中添加Gemfile
  • 在Gemfile中添加必需的宝石
  • bundle install
  • 然后始终使用bundle exec pod install

如果您不知道其中一个步骤的操作方法,则在Google上搜索会有所帮助:)

答案 46 :(得分:0)

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

答案 47 :(得分:0)

我有同样的问题 我将所有内容更新为最新 从: npm -v 6.4.1 节点-v v10.2.1 pod-版本1.5.3

至: npm -v 6.5.0 节点-v v11.8.0 pod-版本1.6.0

并修复它

答案 48 :(得分:0)

我的工作答案是:

  1. 安装通过以下命令更新您的可可足类: 吊舱更新
  2. 通过此命令安装新的Pod。 吊舱安装
  3. 最后一个命令: sudo gem install cocoapods。

答案 49 :(得分:-1)

我在上面混了一些评论,就解决了我的问题

I。项目清理

  1. 在项目导航器中,选择您的项目
  2. 选择目标
  3. 删除Build Phases > Link Binary With Libraries中的所有Menu Bar → Product → Product -> Clean build Folder

II。清理构建文件夹

在XCode中:pod update

III。更新鱼腥藻

运行if (std::set{x,y} == std::set{1,2}) { return 1; }

答案 50 :(得分:-1)

您需要在自定义的xcconfig中包含Pods生成的xcconfig路径。对我来说,这是由于错误配置的xcconfig文件。