Xcode 12 上传错误 ITMS-90085:“二进制文件中没有架构。Lipo 未能检测到捆绑可执行文件中的任何架构。”

Posted

技术标签:

【中文标题】Xcode 12 上传错误 ITMS-90085:“二进制文件中没有架构。Lipo 未能检测到捆绑可执行文件中的任何架构。”【英文标题】:Xcode 12 Upload ERROR ITMS-90085: "No architectures in the binary. Lipo failed to detect any architectures in the bundle executable." 【发布时间】: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 目录。 【参考方案1】:

删除 POD 文件夹并再次执行 Pod install。 它对我有用,我希望它也对你有用。

【讨论】:

这听起来像是 CocoaPods 的解决方法,是吗? (我正在使用迦太基)

以上是关于Xcode 12 上传错误 ITMS-90085:“二进制文件中没有架构。Lipo 未能检测到捆绑可执行文件中的任何架构。”的主要内容,如果未能解决你的问题,请参考以下文章

错误 ITMS-90085:“二进制文件中没有架构。Lipo 未能检测到捆绑可执行文件中的任何架构。”

Xcode 10 应用程序上传“协商连接……”

无法使用 xcode 将应用上传到应用商店

上传期间 Xcode 无效签名问题

Xcode 上传错误:“validateAssets (1272)”?

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