不包括设备上的iOS框架位代码

hivapdat  于 2022-11-26  发布在  iOS
关注(0)|答案(4)|浏览(107)

我正在为iOS开发静态库,其中我使用Alamofire。当我尝试为模拟器的发布构建时,一切都很好,但当我尝试为设备构建时(发布或调试),我遇到以下问题:

ld: bitcode bundle could not be generated because '/PathToMyLibraryProducts/Release-iphoneos/Alamofire/Alamofire.framework/Alamofire' was built without full bitcode. All frameworks and dylibs for bitcode must be generated from Xcode Archive or Install build for architecture armv7

我的框架已经启用了位代码,并且是胖框架(为设备和模拟器构建)。我如何解决这个问题?

0dxa2lsx

0dxa2lsx1#

如果您使用cocopods-binary搭配cocopods

出现此错误的原因是cocoapods-binary不会生成启用了位代码的框架,除非您在Podfile中使用此键特别指明:
enable_bitcode_for_prebuilt_frameworks
这是您的播客文件的外观:

plugin 'cocoapods-binary'

platform :ios, '12.0'
use_frameworks!
enable_bitcode_for_prebuilt_frameworks!
all_binary!

target 'ProjectName' do
    pod 'Alamofire'
end
3gtaxfhh

3gtaxfhh2#

找到此讨论,可能是relevant
总之,需要以下设置:BITCODE_GENERATION_MODE=发布版本的位代码和BITCODE_GENERATION_MODE=调试版本的标记
希望能有所帮助。
顺祝商祺,Mukund

8tntrjer

8tntrjer3#

我认为,当您为Generic Device构建时,bitcode没有启用。因此,请执行以下操作:
1.在pods.xcodeproj下,选择所有pod目标。
1.在Build Settings下导航,确保所有“Pod”〉“Build Settings”〉“Build Active Architecture Only”都设置为“NO”。
1.启用Bitcode设置为YES
1.然后,点击项目目标,并遵循步骤2和3
1.清理构建并生成Archive

eanckbw9

eanckbw94#

将此代码添加到您的pod文件中,它将为所有框架启用Bitcode。

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

相关问题