【发布时间】:2020-11-02 22:22:02
【问题描述】:
我正在开发一个我之前发布过无数次的应用程序。我最近更新到 Xcode 12 并且正在使用 Carthage 解决方法脚本,它使我能够毫无问题地构建 Debug 构建。但是,当我尝试将存档上传到 App Store Connect 时,我看到了以下错误:
App Store Connect 操作错误 错误 ITMS-90085:“二进制文件中没有架构。Lipo 未能检测到捆绑可执行文件中的任何架构。”
我在 xcarchive 中查看了一下,可以看到在 .app 目录中,我的非 carthage 嵌入式库的目录没有 unix 可执行文件,而过去成功的 xcarchive 上传确实有该可执行文件。
关于如何解决这个问题的任何想法?回到 Xcode 11.7 需要更改应用程序代码,所以我希望不必这样做。
更新:也尝试删除并重新嵌入有问题的框架,但这没有帮助。
我终于添加了一个构建阶段运行脚本来修复这个问题,但会继续寻找更好的解决方案。无论如何,这是我添加的脚本--
MISSING_FRAMEWORK_EXECUTABLE="${PROJECT_TEMP_ROOT}/UninstalledProducts/iphoneos/MyFramework.framework/MyFramework"
TO_DIRECTORY="${BUILT_PRODUCTS_DIR}/${FRAMEWORKS_FOLDER_PATH}/MyFramework.framework/"
mkdir -p "${TO_DIRECTORY}"
cp "${MISSING_FRAMEWORK_EXECUTABLE}" "${TO_DIRECTORY}"
【问题讨论】:
-
另外,我注意到有问题的 unix 可执行文件确实链接到 ArchiveIntermediates 目录的子文件夹中,但由于某种原因未添加到 xcarchive。会努力添加它,但似乎应该有一种开箱即用或配置驱动的方式,因为我只是嵌入了一个本地框架。
-
FWIW,链接到 /Users/me/Library/Developer/Xcode/DerivedData/MyApp-xcode-generated-random-letters 的 unix 可执行 actual 文件/Build/Intermediates.noindex/ArchiveIntermediates/MyApp/IntermediateBuildFilesPath/UninstalledProducts/iphoneos/MyEmbeddedFramework.framework 目录。