我已经为 arm64
arch 重建了一些静态库,这是我的 iOS 应用程序所需的,具有 bitcode
支持(-fembed-bitcode
标志) 从命令行。以前没有位码支持生成的 .a 文件大约是 88 Mb,现在大约是 230 Mb。我知道使用 bitcode 支持进行构建会将 __bitcode 部分添加到 .o 文件中,但为什么它会大 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
最佳答案
启用 bitcode 后,预计 .xcarchive 中 swift dylib 和您自己的代码的大小将明显变大(最多可增加 3 倍)。
但是,这个额外的大小不会反射(reflect)在实际交付给您的用户的内容中,因此这应该不是问题。
当您将包含此静态库的应用程序提交到应用程序商店时,应用程序商店将对其进行处理以去除位码,并且您的用户将下载经过处理的 IPA 版本。
关于XCode7:启用位码大小的静态库?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33471939/