3

我已经arm64为我的 iOS 应用程序所需的 arch重建了一些静态库,并从命令行获得了bitcode支持(标志)。-fembed-bitcode以前没有位码支持,生成的 .a 文件约为 88 Mb,现在约为 230 Mb。我知道使用位码支持构建会在 .o 文件中添加 __bitcode 部分,但为什么它会大 3 倍?我是否需要为armv7两者构建和创建胖库,arm64或者armv7我可以只使用带有位码的新库?

之前:

    MBA-Anton:lib asmirnov$ lipo -info ./libclang-llvm-3.7-arm64-release.a 
input file ./libclang-llvm-3.7-arm64-release.a is not a fat file
Non-fat file: ./libclang-llvm-3.7-arm64-release.a is architecture: arm64

MBA-Anton:lib asmirnov$ ls -l ./libclang-llvm-3.7-arm64-release.a 
-rwxrwxrwx  1 asmirnov  staff  88123960 27 окт 13:06 ./libclang-llvm-3.7-arm64-release.a

现在:

MBA-Anton:lib asmirnov$ lipo -info ./libclang_llvm_3.7_arm64_release_bitcode.a
input file ./libclang_llvm_3.7_arm64_release_bitcode.a is not a fat file
Non-fat file: ./libclang_llvm_3.7_arm64_release_bitcode.a is architecture: arm64

MBA-Anton:lib asmirnov$ ls -l ./libclang_llvm_3.7_arm64_release_bitcode.a 
-rwxrwxrwx  1 asmirnov  staff  230715536  2 ноя 11:27 ./libclang_llvm_3.7_arm64_release_bitcode.a
4

1 回答 1

1

启用 bitcode 后,预计 swift dylib 的大小以及您自己的代码在 .xcarchive 中将显着增大(最多可增加 3 倍)。

但是,这个额外的大小不会反映在实际交付给您的用户的内容中,所以这应该不是问题。

当您将应用程序提交到包含此静态库的应用程序商店时,商店将对其进行处理以去除位码,而经过处理的 IPA 版本就是您的用户将下载的内容。

于 2015-11-04T05:18:30.110 回答