Xcode Cloud 无法上传已嵌入包依赖项的存档

Posted

技术标签:

【中文标题】Xcode Cloud 无法上传已嵌入包依赖项的存档【英文标题】:Xcode Cloud Can't Upload Archive that has embeded Package Dependencies 【发布时间】:2021-12-17 03:58:48 【问题描述】:

在 Xcode Cloud 上归档应用程序后的 post-actions 中,有一个任务设置为上传到 TestFlight。它因错误而失败。

ITMS-90334: Invalid Code Signature Identifier. The identifier “XyzSDK-55554944d176df9a74f43236a8f1ccb71ea4d480” in your code signature for “XyzSDK” must match its Bundle Identifier “XyzSDK”

XyzSDK 是一个通过 Swift 包管理器导入到应用程序的包(右键单击项目>>添加包>>插入存储库 url)。

我还想知道为什么导入到项目的包在归档阶段后具有生成的 id (55554944d176df9a74f43236a8f1ccb71ea4d480) 的包标识符。导致错误。似乎很难编辑包标识符,因为它是一个包依赖项。

有没有办法禁用它?导入包依赖项后,我有什么遗漏的事情吗?还是 Xcode 云的 bug?

附:我已通过反馈助手将此问题发送给 Apple,但目前没有回复。

【问题讨论】:

你解决了吗?我有同样的问题。 我还不能解决它。反馈助理也没有回应。 您下载了最新的 Xcode 13.3-beta 吗?修复了一些问题。 【参考方案1】:

似乎这是由于将动态库作为 Swift 包管理器依赖项造成的。如果您的目标是 ios,则需要确保您的依赖项是作为静态库构建的。

一些 Swift 包有多个目标,因此根据依赖项的具体情况,您可能需要将 Package.swift 的 targets -> .target -> dependencies 替换为 ["XyzLib"] 之类的东西类似于[ .product(name: "XyzLibStatic", package: "xyzLib") ]

今天发生在我身上,例如,我将这个库作为 SPM 依赖项:https://github.com/launchdarkly/swift-eventsource/blob/master/Package.swift

修复是针对依赖项的 type: .static 版本 (LDSwiftEventSourceStatic)。

【讨论】:

以上是关于Xcode Cloud 无法上传已嵌入包依赖项的存档的主要内容,如果未能解决你的问题,请参考以下文章

iOS 为什么使用xcode8上传app包到appStore无法构建版本

Xcode Cloud Testing 无法归档项目

为啥 Pip 会忽略已配置的具有嵌套依赖项的存储库?

存在 spring-cloud-kubernetes 配置映射依赖项的 spring 应用程序启动异常

Spring Cloud Data Flow 上传包失败。存储库 [local] 中的包 [test-stream-comments:1.0.0] 已存在

Xcode 构建上传错误:对 TCP 端口 443 的出站访问,无法找到包的 MZContentProviderUpload。 (1041)