<PBXResourcesBuildPhase UUID=..> 试图初始化具有未知 UUID 的对象

<PBXResourcesBuildPhase UUID=..> attempted to initialize an object with an unknown UUID

我已经为一个项目进行了 SVN 签到。此后,我通过 terminal 安装了 pod。安装 pod 后,很少有警告说明

    <PBXResourcesBuildPhase UUID=...> attempted to initialise an 
    object with an unknown UUID.

可能是什么原因? 此警告是否严重

我不知道你是否解决了这个问题,但为了将来参考,我也遇到了同样的问题。

就我而言,在文本编辑器上打开 .pbxproj 文件后,发现第一个 UUID 指向 'Copy Bundle Resources' 'Build Phases'.

删除并再次添加解决了我的问题。

在我的案例中发生的原因是一些开发人员更新了一个 pod A 而我安装了一个新的 pod B(没有更新的 pod A)。所以当我合并他的代码时,我收到了警告。

解决这个问题的一个简单方法是

1. remove libPods.a from General->Linked Frameworks and libraries 
2. run `pod install` or `pod update "an-existing-pod"` again. 

对于第 2 步,目的是更新 .xcodeproj 文件而不是再次安装 pod。如果 pod 已经存在,cocoapods 将只更新 .xcodeproj 文件。

Xcode 8 - 12

目标 > 常规 > 链接的框架和库

Step 1: 从 CocoaPods 中分离你的项目。正在从您的 Xcode 项目中删除 CocoaPods 的所有痕迹。

$pod deintegrate ProjectName.XCODEPROJ

Step 2: 再次安装 pod

$pod install

确保将 ProjectName.XCODEPROJ 替换为您的项目名称。

我现在还时不时发生。我的解决方案是在您的项目文件中搜索未知的 UUID,然后简单地删除您将找到的所有行。

终端命令:

cat YOUR_PROCJECT_NAME.xcodeproj/project.pbxproj | grep 'UNKNOWN_UUID'

你应该找到这样的东西:

UNKNOWN_UUID /* (null) in Resources */,

刚刚运行

pod clean pod install

那些错误应该消失了。

多个 xcode 版本安装也可能存在问题。试试这个 link 了解更多详情 -

https://www.ryadel.com/en/xcode-sdk-iphoneos-cannot-be-located-mac-osx-error-fix/

我在解决了项目文件中的一些合并冲突后发生了这个错误。

在 Xcode 11.4.1 中,我在项目设置 > 常规 > 框架、库和嵌入式内容下删除了 Pods_TARGETNAME.framework

然后我运行pod install,之后一切都好了。

我解决的方法跟帖中没有描述

  • 评论了所有 pods 和 运行 pod installPods 文件夹最终被删除。但是 terminal

    中仍然有警告
  • 取消对广告连播的注释。再运行pod install。警告现在消失了。

我和我的同事花了几个小时试图弄清楚如何修复类似的错误:

[!] `<PBXBuildFile UUID=`050DCB84CE258104B4E8C808`>` attempted to initialize an object with an unknown UUID. `12B87A081D0745C6D77F7885` for attribute: `file_ref`. This can be the result of a merge and the unknown UUID is being discarded.

为我们解决的问题:

  1. 在 .pbxproj 文件中识别“未知 UUID”所指的文件;在我们的例子中,它是 libPods-<TARGET_NAME>.a
  2. 在 XCode
  3. 的文件浏览器中找到该文件
  4. 删除XCode
  5. 内的文件
  6. 重新运行pod install

我注释掉了所有 pods 并执行了“pod install”,然后取消了所有 pods 到之前状态的注释并执行了“pod install”。那解决了我的问题