Objective c CoCoapod在项目构建中出错

Objective c CoCoapod在项目构建中出错,objective-c,cocoa-touch,cocoapods,build-error,Objective C,Cocoa Touch,Cocoapods,Build Error,我无法构建一个使用cocoapod的项目。我得到以下错误: 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 i

我无法构建一个使用cocoapod的项目。我得到以下错误:

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\u ROOT

播客文件:

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'

所以CocoaPods似乎没有为我的项目设置配置。它们需要基于
Pods/Target Support Files/Pods
中的
Pods.xcconfig
。为了让它发挥作用,我必须做以下几点:

  • 将此文件拖动到Xcode中的我的Xcode项目中,选择不复制
  • 现在我们的项目中有一个参考,我们可以设置配置:
  • 然后我出现了另一个构建错误,可能与此相关,也可能与此无关。
    Copy Pods资源中定义的shell脚本路径不正确

    "${SRCROOT}/Pods/Pods-resources.sh"
    
    解决不正确。似乎SRCROOT正在向路径中添加一个不存在的额外目录。所以我硬编码了项目文件夹的路径

    这让我得以建立

    为什么这么多本来可以节省你时间的东西最终都会把你的时间吃光呢


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

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

    rm -rf MyProject.xcworkspace
    pod install
    

    更新:一个
    podfile.lock
    是必需的,版本控制不应忽略,它跟踪特定pod安装时安装的库的版本。(它分别类似于rails和php依赖项管理的和)。要了解更多信息,请阅读。功劳归于我



    在我的例子中,我所做的是为我的项目做一些内部清理(即将集成测试分支为git子模块..删除重复文件等)。。并将最终结果推送到git远程回购。。克隆我的回购协议的所有客户都遭受了上述错误。受上述评论的启发,我意识到有一些悬而未决的pod脚本试图针对一些不存在的文件运行。因此,我进入了我的目标构建阶段,删除了所有与cocoa pod相关的剩余阶段(Hlung的评论建议删除
    复制pod Manifest.lock
    复制pod resources
    。我的命名不同可能是b/c,我使用的是Xcode 5..重点是删除那些悬而未决的构建阶段)..

    我通过以下步骤解决了相同的问题:

    • Xcode->Product->Clean Build文件夹
      (按住产品上的alt键查看)
    • 打开
      Xcode->Window->Organizer
      并选择
      Projects
      选项卡。然后找到您的项目并删除该项目的衍生数据

      • 这不是很直观。我转到基本项目设置,然后在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
        
        diff”/Users/admin/Desktop/Experimental/projectfolder/Podfile.lock”“/Users/admin/Desktop/Experimental/projectfolder/Pods/Manifest.lock”>/dev/null
        如果[[$?!=0]];然后
        
        猫在我的情况下,问题出在错误的方向上。这里的解决方案

        如果有些事情似乎不起作用,首先要确保你是正确的 未完全覆盖Pods.xcconfig文件中的任何选项集 在项目的生成设置中。将值添加到您的 项目的生成设置,在值列表前面加上$(继承)

        我有这个问题


        我修复它的方法是完全删除Pod并重新实现它。确保从所有目标的“构建阶段”中删除“复制吊舱资源”和“检查吊舱清单.锁定”,如下所述:

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


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

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

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

        最简单的修复方法是关闭Xcode中的项目,然后重新打开它

        如果您转到目标的构建设置并在All上进行筛选,您现在将看到
        PODS\u ROOT
        条目,没有错误:

        它现在应该没有错误地构建


        注意:即使是Cocoa Pods的官方AFIOS示例也有这个问题,这让我相信这是Xcode的一个bug

        另一种修复方法是手动将配置更改为
        None
        ,然后返回其原始值:

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


        通过转到目标->构建阶段,然后删除构建阶段的“复制Pod资源”来摆脱它。

        转到目标的
        构建设置
        ,并确保在“用户定义”部分中
        PODS\u ROOT
        的值等于
        ${SRCROOT}/PODS


        只需执行以下操作即可解决:

        • (sudo)gem安装cocoapods

        • 吊舱安装

        • 清洁和建设


        问题似乎是由我们的一名团队成员最近安装了cocoapods gem造成的。

        我也遇到了类似的问题,这就是成功的原因:

      • 在Xcode中:
        • 干净的
        • 删除Xcode/Window/Organizer/Proje中的派生数据
          gem install xcodeproj
          
          PODS_ROOT = ${SRCROOT}/Pods
          
          PODS_PODFILE_DIR_PATH = ${SRCROOT}/