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

问题描述 投票:188回答:34

用cocoapods安装RestKit后,我遇到了一个奇怪的问题。在使用cocoapods为我的项目解析RestKit依赖项并尝试构建它之后,我遇到了这个错误:

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

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

以下是一些镜头:

  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
cocoapods restkit-0.20
34个回答
280
投票

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

I. Project Cleanup

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

II. Update CocoaPods

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

3
投票

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


3
投票

我找到了我的解决方案:运行:pod update而不是pod install。错误是固定的!


2
投票

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

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

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

pod install

2
投票

我尝试了一切,但问题仍然存在。之后我做了这个,它尽快工作(尽可能顺利)。

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

1
投票

当你这样做

pod install --verbose

确保:

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

2-删除旧的pod lock文件夹,然后使用xcode clean&do pod install清理项目。

3-保持您的rvm更新。


1
投票

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

这对我有用


1
投票

对我有用的步骤(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。这应该解决任何链接错误,如“Apple Mach -O Linker命令失败”


1
投票

如果您正在申请Project Cleanup并且您的项目仍然出错。

您可以转到Build Phases选项卡,然后查找Check Pods Manifest.lock并删除脚本。

然后键入命令以删除文件夹Pods,就像rm -rf Pods一样

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

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

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

希望这个解决方案能够满足您的需求。快乐编码:)


1
投票

对我来说,在颤振的情况下,由于现有配置,配置不会自动添加。

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

解决了这个问题。


0
投票

如果你的豆荚是空的

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

83
投票

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

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

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

它帮助到我。


0
投票

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


0
投票

这让我很快乐!

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

0
投票

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

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

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。也许您的图书馆需要更新。


0
投票

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

@Michal的回答帮助了我

Remove or uninstall library previously added : cocoapods


0
投票

我不小心删除了然后从我试图安装pod的地方解压缩文件夹。 它是这样的:1)在您的项目文件夹中的CD 2)压缩您的项目3)删除项目文件夹4)解压缩文件夹5)从现在起即使你有这个文件夹你应该从终端再次到这个文件夹


0
投票

我有错误:

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

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


0
投票

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

sudo gem install cocoapods

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


0
投票

请执行以下步骤:

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

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

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

4:在Xcode中执行“清理”

5:重建你的项目


0
投票

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

  • 安装捆绑器
  • 在项目的根目录中添加Gemfile
  • 在Gemfile中添加所需的gem
  • bundle install
  • 然后总是使用bundle exec pod install

如果你不知道其中一个步骤的方法,在谷歌搜索将有助于:)


43
投票

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

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

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

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

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


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

20
投票

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

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

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

  • gem install cocoapods-deintegrate
  • 宝石安装cocoapods-clean
  • 转到项目目录并运行pod deintegrate
  • 再次运行pod清理
  • 运行pod安装

清洁并运行。


12
投票

更改目标名称后

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

  • 去项目文件 - >信息 - >配置
  • 删除旧的xcconfig(Debug和Release)
  • pod安装

它将更新为新的。

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


9
投票

我一直在寻找几个小时,我找到了如下解决方案:

就我而言,方法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


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目标安装了吊舱。


5
投票

如果您看到如下错误:

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

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

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

3
投票

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

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

© www.soinside.com 2019 - 2024. All rights reserved.