由于缺少Info.plist文件,xcarchive格式错误。

7
我有两个项目,它们都是基于同一个Rake脚本构建的,该脚本在内部使用XCode构建。用xcodebuild -archivePath进行构建(ARCHIVE成功),然后我用xcodebuild -exportArchive打包应用程序。问题是第一个项目成功地完成了所有步骤,但第二个项目在xcodebuild -exportArchive上失败了,因为xcarchive格式不正确。我已经比较了这两个归档文件,发现缺少Info.plist导致格式不正确。当我手动准备这样的Info.plist并将其放入xcarchive中时,我就可以无问题地打包应用程序。
你知道为什么XCode构建不会在xcarchive文件中生成Info.plist吗?

你有没有解决这个问题?我也遇到了同样的问题,在搜索一番之后,发现对于一些人来说,添加先前评论中提到的内容可以解决问题。我认为我已经正确设置了这些,但是仍然看到相同的问题。据我所见,我的问题出现在命令行中将 CONFIGURATION_BUILD_DIR="${BUILD_DIR}" 更改为 SYMROOT="${BUILD_DIR}" ,以便在升级 cocoapods 0.38.2 -> 1.1.1 和 Xcode 7.2 -> 8.2.1 后解决其他问题时修复它们。 - diidu
这是我目前找到的最直接的答案:https://developer.apple.com/library/content/qa/qa1273/_index.html,但对我没有用。 - diidu
最终,我通过删除SYMROOT并仅使用默认值使其正常工作。本应更快地注意到这一点。 - diidu
6个回答

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

0

我在一个应用程序项目中也遇到了这个bug。该项目使用了一个链接到框架的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


0
在我的情况下,我通过SPM引入了一个包含dSym/BCSymbolmap文件的XCFramework。
这导致在一个复杂的项目中发生了缺少Info.plist的情况,在一个更简单的项目中没有发生,并且仅在使用面向App Store的配置文件而不是企业配置文件时才会发生。在Xcode中仅运行Archive后,生成的.xcarchive文件缺少根目录下的Info.plist文件,因此Organizer未能打开。
将获取的SPM XCFramework进行修改(供应商更改并发布了新版本),只包括框架二进制文件而不包括调试信息,可以使Archive再次正常工作。
这是在Xcode 12.4下进行的,有理由认为Xcode 12.5(或最终的Xcode 13)可能会更好,尽管在这种情况下我无法验证。
请注意,即使按照12.4版本说明建议的方式添加修复程序以删除Archive过程中包含在App插件目录中的重复Framework,仍会发生此问题。

0

我的问题是由于更新 第三方库 至较新版本导致的。不确定是他们那边出了什么问题,但你可以试着看看是否在这个问题出现之前没有更新某些依赖项。


0
在我的情况下,问题是由SYMROOT=...参数引起的。将我的代码更改为使用-derivedDataPath=...即可解决此问题。

0
我尝试了所有能找到的解决方案,但都没有起作用,直到在试图回到一个可用版本的过程中,我注意到出现了某种缓存问题。
所以我首先建议尝试回到最后一个可存档的版本,看看是否能起作用。如果像我一样,那个版本也不再起作用,那么你可能有一个缓存问题,希望通过以下方法解决:
pod deintegrate
rm -rf Pods
rm -rf Podfile.lock
rm -rf build
pod cache clean --all
pod install

希望这能帮助其他人节省大约14个小时的时间。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接