XCode7:启用位码大小的静态库?

标签 xcode clang llvm xcode7 bitcode

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

之前:

    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/

相关文章:

objective-c - 替换已弃用的 NSNibLoading 方法(loadNibFile :, loadNibNamed :, 等)?

objective-c - 未知日志 wx=wy=rx=ry=ios

templates - 如何在编译时计时条件

c++ - LLVM 有后端优化器吗?

c++ - llvm clang 2.6 : "not using the clang compiler for C++ inputs "

XCode 4 调试器 : Attach to process from command line

ios - 如何让 Storyboard支持 UICollectionView 中动态调整大小的单元格?

c++ - []<typename>(){} 是有效的 lambda 定义吗?

c++ - 为什么 libclang 会错误解析带有 .h 前缀的 C++ header ?

c++ - 使用 CMake 和 Visual Studio 构建 LLVM 安装失败,