【问题标题】:Compiled framework provides bitcode error when archiving编译的框架在归档时提供位码错误
【发布时间】:2019-06-02 13:46:14
【问题描述】:

已经苦苦挣扎了几天...基本上我已经构建了一个已编译的发布框架并与 cocoaPods 一起分发。问题是归档此框架应用程序时会出现以下错误:

ld: bitcode bundle could not be generated because '/.../testingPodsAcrossversions/Pods/Pod/Pod.framework/Pod' was built without full bitcode. All frameworks and dylibs for bitcode must be generated from Xcode Archive or Install build file '/.../testingPodsAcrossversions/Pods/Pod/Pod.framework/Pod' for architecture arm64

我做过这些事情:

搜索 Enable Bitcode 设置并将其设置为 YES 用于调试和发布模式。

搜索位码设置。在 Debug 和 Release 模式中添加 -fembed-bitcode,或者您可以在 Debug 和 Release 模式中添加 -fembed-bitcode-marker -fembed-bitcode 处于发布模式。

在 User Defined 设置下添加 BITCODE_GENERATION_MODE,然后为 Debug 和 Release 模式添加 bitcode,或者您可以在 Debug 和 Release 模式中添加标记。

我只需要发布版本,所以我没有构建通用框架,只是发布版本......我真的很想解决这个问题,因为它对我来说是一场噩梦......

【问题讨论】:

  • 可能重复:stackoverflow.com/questions/53649761/… 建议的答案是:“尝试在框架构建设置中将 Skip Install 设置为 YES 并将 Bitcode 设置为 YES。”这对你有帮助吗?
  • @Muli 不,我已经对那个问题发表了评论......但它没有解决它......仍在尝试,但感觉有点绝望......
  • @ViktorVostrikov,您找到解决方案了吗?我面临着类似的问题
  • 轶事:我需要 OTHER_CFLAGS = "-fembed-bitcode";OTHER_LDFLAGS = "-ObjC";BITCODE_GENERATION_MODE = bitcode; 来获得一个带有 Obj-C 桥的静态 Swift 框架,以便在归档使用它的支持位码的应用程序时工作。

标签: ios objective-c swift cocoa ios-frameworks


【解决方案1】:

如果您使用的是 pod,请尝试将其添加到 Podfile(它为我解决了同样的问题):

post_install do |installer|
    installer.pods_project.targets.each do |target|
        target.build_configurations.each do |config|
            config.build_settings['BITCODE_GENERATION_MODE'] = 'bitcode'
            config.build_settings['ENABLE_BITCODE'] = 'YES'
        end
    end
end

【讨论】:

    【解决方案2】:

    详情

    • Xcode 版本 11.3.1 (11C504)

    解决方案

    在 podfile 末尾添加以下代码

    def enable_bitcode_in(config)
      cflags = config.build_settings['OTHER_CFLAGS'] || ['$(inherited)']
      if config.name == 'Release'
        cflags << '-fembed-bitcode'
        config.build_settings['BITCODE_GENERATION_MODE'] = 'bitcode'
      else # 'Debug'
        cflags << '-fembed-bitcode-marker'
        config.build_settings['BITCODE_GENERATION_MODE'] = 'marker'
      end
      config.build_settings['OTHER_CFLAGS'] = cflags
    end
    
    def enable_bitcode_for(targets)
      targets.each do |target|
        target.build_configurations.each do |config|
          enable_bitcode_in(config)
        end
      end
    end
    
    post_install do |installer|
      enable_bitcode_for(installer.pods_project.targets)
    end
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-11-05
      • 2021-01-23
      • 1970-01-01
      • 1970-01-01
      • 2016-06-14
      • 2015-08-14
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多