gpt4 book ai didi

ios - bitcode 是否支持弱链接第三方框架?

转载 作者:行者123 更新时间:2023-12-03 11:16:54 25 4
gpt4 key购买 nike

问题在标题中简单说明。这是我的设置:

构建一个动态框架,可选择链接(弱链接)到 GoogleInteractiveMediaAds.framework。对于使用我的框架的应用程序,GoogleInteractiveMediaAds 是一个可选的依赖项,如果没有它,框架也能正常工作。这是目前工作。

然而,当尝试从位码重建时会出现问题,这通常发生在选择“从位码重建”导出 Ad Hoc 构建时。位码编译过程失败:

ipatool failed with an exception: #<CmdSpec::NonZeroExitException: $/Applications/Xcode.app/Contents/Developer/usr/bin/bitcode-build-tool ...

并深入查看日志文件,我找到了错误描述:
Failed to resolve linkage dependency MyFramework arm64 -> @rpath/GoogleInteractiveMediaAds.framework/GoogleInteractiveMediaAds: Could not resolve @rpath in @rpath/GoogleInteractiveMediaAds.framework/GoogleInteractiveMediaAds from MyFramework
error: GoogleInteractiveMediaAds not found in dylib search path

注意:GoogleInteractiveMediaAds.framework 确实包含位码。

显然,这个错误是通过不选择“从位码重建”来避免的。如果我要回答我自己的问题,我会说,不,看起来从 bitcode 编译时,您不能使用弱链接框架。仅仅是因为 bitcode 编译步骤试图链接到未包含在应用程序目标中的框架。但是,我无法找到任何关于使用位码弱链接的官方文档,或者任何相关的 StackOverflow 答案,所以我不确定我是否遗漏了什么,或者是否有一些相关的编译器/链接器设置我很想让它发挥作用。

最佳答案

在您的情况下,您需要等待框架本身的修复。
我们在分发我们的框架时遇到了类似的问题,我对此进行了描述 here我只是不想分享我们的调查结果,因为似乎没有人公布他们的结果。
没有位码就不需要分发。长话短说,其中包含了 LLVM 检测,这会阻止 AppStore 处理。我写了一篇关于 XCode 12 and BigSur issues with XCFramework 的完整博客.
总而言之,以下是创建 XCFramework 时需要确保的一些必要步骤。分发:

  • 使用归档构建是一个 必须 ,发布版本还不够
  • BUILD_LIBRARY_FOR_DISTRIBUTION必须设置为 YES
  • SKIP_INSTALL 必须设置为 NO
  • GCC_INSTRUMENT_PROGRAM_FLOW_ARCS = NO关闭 GCC 检测并将它们从二进制文件中删除
  • CLANG_ENABLE_CODE_COVERAGE = NO从二进制文件中关闭代码覆盖工具

  • 以上所有内容都有助于解决我们的准备和分发问题,如果您碰巧遇到与我们相同的问题,希望可以为您节省一些时间。

    关于ios - bitcode 是否支持弱链接第三方框架?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58740662/

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