gpt4 book ai didi

ios - 无法为 arm64 生成位码包

转载 作者:可可西里 更新时间:2023-11-01 03:56:31 26 4
gpt4 key购买 nike

当我在当前正在处理的项目的build设置中将“启用位码”设置为"is"时遇到构建错误。错误是:

ld: bitcode bundle could not be generated because '/Users/nick/Library/Developer/Xcode/DerivedData/PROJECTNAME-esksqmlmtpqewpbktcqeqloackeu/Build/Intermediates.noindex/PROJECT.build/Debug-iphoneos/PROJECTNAME.build/Objects-normal/arm64/main.o' was built without full bitcode. All object files and libraries for bitcode must be generated from Xcode Archive or Install build file '/Users/nick/Library/Developer/Xcode/DerivedData/PROJECTNAME-esksqmlmtpqewpbktcqeqloackeu/Build/Intermediates.noindex/PROJECT.build/Debug-iphoneos/PROJECTNAME.build/Objects-normal/arm64/main.o' for architecture arm64 clang: error: linker command failed with exit code 1 (use -v to see invocation)

(我已将项目名称修改为 PROJECTNAME,并将变体修改为 PROJECT 以在此处发布。)

起初我认为这可能是由于该项目通过 Cocoapods 使用的依赖项之一,但它们都将“启用位码”设置为"is",我希望在如果是这种情况,则显示错误消息。除了通过 Cocoapods(和 Apple 框架)包含的框架外,该项目不使用任何框架。

我已尝试删除派生数据、重新启动 Xcode 以及清除构建文件夹,但错误仍然存​​在。

我还尝试了针对此处类似问题所建议的“-fembed-bitcode-marker”解决方案:

iOS library to BitCode

但我不是在构建一个静态库,而是一个应用程序,所以也许不足为奇,它没有任何区别。

该项目相当大,自 2012 年以来一直在开发,因此包括 Objective-C 和 Swift。它目前以 iOS 8 作为部署目标,以 11.2 作为基础 SDK。过去从未在任何开发或生产版本中启用过 Bitcode。我们在类似但更新的项目上启用了 Bitcode。我们目前使用的是 Xcode 9.2 (9C40b)。

我知道我可以将项目的build设置的“启用位码”设置为“否”以“修复”错误,但我宁愿启用位码以便在如上所述上传二进制文件后 Apple 可以进行重新优化这里: Apple Docs - App Thinning

我是否在build设置中遗漏了一个修复此错误的标志或其他东西?非常感谢任何建议!

非常感谢,尼克

最佳答案

在更新到 Xcode 10 之后,我们尝试再次为这个项目生成一个 Bitcode 包,并且(在尝试不同的构建配置之后)已经能够这样做了。最终适用于该项目的配置是:

对于项目和 Pod 的build设置:

  • “启用位码”设置为"is"
  • 将“-fembed-bitcode”添加到“其他 cflags”
  • 添加值为“bitcode”的“BITCODE_GENERATION_MODE”

调试和发布都需要这些设置。这是因为如果我们尝试使用“-fembed-bitcode-marker”或“marker”标志,Debug 会抛出“无法生成位码”错误(请参阅原始问题)。

我们更喜欢使用调试的“标记”变体,因为它编译速度更快,但至少我们现在有了一些有用的东西!

关于ios - 无法为 arm64 生成位码包,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48076533/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com