沙箱与Podfile.lock-ios不同步

时间:2015-07-31 04:56:21

标签: ios xcode cocoapods

从谷歌尝试多个答案后,我遇到以下错误。

PhaseScriptExecution Check\ Pods\ Manifest.lock /Users/apple/Library/Developer/Xcode/DerivedData/Build/Intermediates/FoodSpot.build/Debug-
    iphonesimulator/FoodSpotTests.build/Script-36819C3C1B6A30F50091382D.sh
        cd "/Users/apple/Downloads/FoodSpot 2"
        /bin/sh -c /Users/apple/Library/Developer/Xcode/DerivedData/Build/Intermediates/FoodSpot.build/Debug-iphonesimulator/FoodSpotTests.build/Script-36819C3C1B6A30F50091382D.sh

    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.

我已多次更新和安装,但它们毫无用处。

22 个答案:

答案 0 :(得分:26)

对我来说,它适用于以下情况:

pod deintegrate --verbose    
pod install --verbose

答案 1 :(得分:19)

对我来说,原因是在Build Settings中错过了User-Defined变量!

调查问题,Build Phases尝试区分2个文件。

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

由于缺少PODS_PODFILE_DIR_PATH和PODS_ROOT变量,因此将它们假设为""所以$ {PODS_PODFILE_DIR_PATH} /Podfile.lock指向/Podfile.lock,而另一个指向同一个。

失败了

diff /Podfile.lock and /Manifest.lock

我通过在Build Settings

中添加2个用户定义的设置来修复此问题
PODS_ROOT = ${SRCROOT}/Pods
PODS_PODFILE_DIR_PATH = ${SRCROOT}/.

经过几个小时的搜索,这是唯一对我有用的解决方案

答案 2 :(得分:15)

  

运行' pod install'或者更新你的CocoaPods安装。

您已在错误中回答了问题!

错误消息指出您应该更新CocoaPods安装。

您可以删除框架和库中的libPod,并使用pod install更新Cocoapod。

同时

清理并构建项目

SO参考:

CocoaPods Errors on Project Build

Error:"The sandbox is not in sync with the Podfile.lock..." after installing RestKit with cocoapods

答案 3 :(得分:2)

只需转到构建阶段,然后单击[CP]检查Pods Manifest.lock。

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

PODS_PODFILE_DIR_PATH和POD_ROOT都应在用户定义的构建设置中定义。 POD_ROOT应该有正确的Manifext.lock文件路径和 POD_PODFILE_DIR_PATH应具有Podfile.lock

的正确路径

所以在构建设置中添加以下内容。

PODS_ROOT ---- ${SRCROOT}/Pods

PODS_PODFILE_DIR_PATH ---- ${SRCROOT}

答案 4 :(得分:2)

问题是在目标构建阶段中,“检查Pod Manifest.lock”脚本无法找到Podfile.lock和Manifest.lock。

enter image description here

这通常是由于未定义PODS_PODFILE_DIR_PATH和PODS_ROOT变量引起的。

转到“构建设置”标签以定义它们。

enter image description here

您将需要在项目中查找Podfile.lock和Manifest.lock,并获取其目录的完整路径。目录路径将是您用于PODS_PODFILE_DIR_PATH和PODS_ROOT的值。

答案 5 :(得分:2)

在podfile中进行更改,如下所示:

较旧的pod文件

target:TargetName,:exclusive =>是的

更改了pod文件

目标' TargetName'做

答案 6 :(得分:2)

删除派生数据对我来说很有用。我通过进入查找器本身删除了。

答案 7 :(得分:1)

我很确定你已经打开了你的项目'您尝试安装新Pod的工作区。所以试试以下(对我来说这很有用):

  1. 清理项目
  2. 关闭项目
  3. 运行pod install
  4. 打开项目并再次尝试重新构建
  5. 问题可能已经解决。

答案 8 :(得分:1)

在我的情况下,我在整合其他目标后得到了同样的错误。要解决问题,我需要在Podfile中添加两个目标:

abstract_target 'myApp' do
   use_frameworks!

   pod 'Alamofire', '~> 3.0'
   pod 'SwiftyJSON'

    target 'myAppOtherTarget'
end

答案 9 :(得分:1)

确保在Xcode Project构建步骤之前添加“pod install”命令行构建步骤。

错误来自Xcode项目目标中的构建阶段运行脚本,该脚本无法找到Podfile.lock。此文件由CocoaPods生成,必须在TeamCity项目的构建步骤中安装。

我的构建步骤如下:

  1. 命令行:bundle install --path .bundle(使用Gemfile在项目本地安装cocoapods。)
  2. 命令行:bundle exec pod install --verbose(使用Podfile
  3. 命令行:carthage update --platform iOS(使用Cartfile
  4. Xcode Project
  5. 构建档案的命令行
  6. 上传构建的命令行
  7. 希望这有帮助。

答案 10 :(得分:0)

编辑

结果证明我的问题是由于 Manifest.lock 末尾的新行在 PodFile.lock 文件中不存在。对这两个文件运行差异突出显示了问题。

在 PodFile.lock 文件的末尾添加一个新行解决了它。

原答案

没有一个答案对我有用,所以我刚刚检查了“[CP] Check Pods Manifest.lock”下的“For install builds only”,它位于构建阶段选项卡中。

我相信这个设置意味着它只会在存档时运行检查,让我可以继续开发,因为我不需要在我的机器上存档应用程序。

谨慎使用,因为它可能不是适合所有人的最佳解决方案。

[CP] Check Pods Manifest.lock

答案 11 :(得分:0)

就我而言,错误发生在_Tests目标上。我不需要_Tests目标,所以我删除了它。这解决了错误。

答案 12 :(得分:0)

请检查Top Sites - Sandbox Sync iOS以获得更多说明。我通过更改文件路径来解决了该问题

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

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

Xocde -> "Open Your Project" -> "Select Your Project" -> "Select Your Target" -> Build Phases -> Check Pods Manifest.lock

如果没有,请尝试如上所述更改路径以及Legacy Build System。更改构建系统Xcode -> File -> Workspace Settings -> Build System -> Legacy Build System

答案 13 :(得分:0)

我认为您正在尝试在当前项目中使用旧项目的pod文件夹,您必须复制当前项目的Manifest.lock文件,并将该文件替换为您添加的旧项目的pod文件夹。 Manifest.lock文件位置YourProject-> Pods-> Manifest.lock 希望这会有所帮助。为我工作!

答案 14 :(得分:0)

我只是通过更新Cocoapod修复了它,因为在错误之前有日志记录,警告显示我们需要升级cocoapods,因为当前的cocoapod版本不支持pod文件,因此请清理项目,然后升级cocoapod安装pod。

1. Clean project
2. sudo gem install cocoapods/gem install cocoapods
3. pod install (optional if your project still shows error)

注意:我在iOS平台上的Flutter应用程序中发现了此错误

答案 15 :(得分:0)

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

就我而言,方法3可行。

方法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

答案 16 :(得分:0)

我通过在“构建设置”中添加2个用户定义的设置来解决此问题

PODS_ROOT = ${SRCROOT}/Pods
PODS_PODFILE_DIR_PATH = ${SRCROOT}/.

答案 17 :(得分:0)

如果你碰巧像我一样移动你的Podfile并面对这个问题,下面讨论的解决方案可能会有所帮助 -

  1. 删除以下所有内容 - Pods文件夹,xcworkspace 文件,podlock文件(跳过那些不适用于子文件夹的文件)
  2. 从构建阶段选项卡
  3. 中删除其中包含[cp]的所有步骤
  4. 重复步骤1& 2用于工作区中的所有子项目
  5. 打开工作区,进入每个项目并删除pod的框架,并从每个项目中删除pods文件夹
  6. 关闭工作区
  7. 运行pod install
  8. 您现在应该能够打开,构建和运行项目

答案 18 :(得分:0)

我现在面临同样的问题,并在导航到终端中的项目位置后使用此命令修复。

pod install --repo-update

答案 19 :(得分:0)

我有同样的问题。原来Manifest.lock上的cocoapods版本高于我在Mac上的版本。我不得不做一个' sudo gem install cocoapods',以使cocoapods的版本达到Manifest.lock文件中指定的版本。这解决了这个问题,我在构建项目时没有任何错误。

答案 20 :(得分:0)

如果可可豆荚没有正确安装或卸载,就会发生这种情况

如果你想安装cocoa pods

pod install

如果您要卸载可可豆荚,请运行命令

pod deintegrate

答案 21 :(得分:-1)

我不想这么说,但我只是删除了 pods/ 或者没有将它们包含在项目中并且它构建了。我不知道这是否会对项目产生长期影响。

这是目前我的 ionic5 for ios 的 .sh 构建脚本。将来可能会改变。

# BUILDING FOR IOS

##################################
#
#     MAKE SURE YOU UNPLUG ALL DEVICES!!!!!
#
##################################

 
ionic cordova platform remove ios
ionic cordova prepare ios 
ionic cordova platform add ios
ionic cordova build ios --prod --release --buildFlag="-UseModernBuildSystem=0" --verbose
cd platforms
cd ios
open "MyApp.xcworkspace/"
cd ..
cd ..

它一直困扰着我的项目,所以我想我会删除它们。到目前为止,我还没有部署该项目……所以谁知道呢。 BigSur 11.1,XCode 12.4 (12D4e)