7

我有两个项目,我基于相同的 Rake 脚本构建,内部使用 XCode 构建。xcodebuild -archivePath用(ARCHIVE 成功)构建它,然后我用xcodebuild -exportArchive. 问题是第一个项目成功了所有步骤,但第二个项目失败了,xcodebuild -exportArchive因为xcarchive格式错误。我已经比较了这两个档案,并且畸形是由于档案Info.plist内部丢失造成的。当我手动准备Info.plist并将其放入xcarchive时,我可以毫无问题地打包应用程序。

为什么 XCode 构建不会产生Info.plist内部xcarchive文件的任何线索?

4

4 回答 4

1

@diidu 对这个问题的评论是我的问题的解决方案,我相信这与 @Fishman 的相同。从我的构建脚本中添加 CONFIGURATION_BUILD_DIR(并删除对 SYMROOT 的使用)导致 Info.plist 被写入存档,然后导出成功。

于 2017-02-07T18:29:18.167 回答
0

我在iOS应用程序项目中也遇到了这个错误。该项目使用链接到框架的 GIT 子模块,作为子项目集成到Xcode工作区。

该项目确实正常构建,直到框架子模块升级为使用XCFramework而不是普通框架。深入研究这个问题,我终于找到了问题:BUILD_LIBRARY_FOR_DISTRIBUTIONSKIP_INSTALL框架构建设置

如果你设置

BUILD_LIBRARY_FOR_DISTRIBUTION=YES
SKIP_INSTALL=NO

为了构建框架,应用程序归档任务将生成一个错误的XCArchive,使其Info.plist没有ApplicationProperties条目。您必须确保至少没有BUILD_LIBRARY_FOR_DISTRIBUTION构建属性设置为YES,并且可能没有SKIP_INSTALL设置为NO

于 2021-01-19T13:50:34.213 回答
0

在我的例子中,我通过 SPM 包含了一个包含 dSym/BCSymbolmap 文件的 XCFramework。

这导致丢失的 Info.plist 发生在一个复杂的项目上,而它没有发生在一个更简单的项目上,并且仅在使用 App Store 的配置文件而不是企业配置文件时发生。在 Xcode 中简单地运行存档时也会发生这种情况,完成后管理器没有打开,因为生成的 .xcarchive 在根目录下缺少 Info.plist 文件。

更改 SPM 获得的 XCFramework(供应商对其进行了更改并发布了新版本)以仅包含框架二进制文件,并且没有任何调试信息使存档再次正常工作。

这是 Xcode 12.4,有一些理由认为 Xcode 12.5(或最终 Xcode 13)可能会更好,尽管在这种情况下我无法验证。

请注意,即使按照 12.4 发行说明建议的方式,在 App Plugins 目录中添加修复以删除存档进程包含的重复框架后,也会发生这种情况。

于 2021-08-14T05:23:27.183 回答
0

我的问题是由将3rd 方库更新到较新版本引起的。不确定是什么原因造成的,但您可能会尝试查看在这开始发生之前您是否没有更新某些依赖项。

于 2021-12-02T08:38:00.373 回答