2015-11-02 2 views
3

Я перестроил некоторую статическую библиотеку для арки arm64, которая требуется для моего приложения iOS с поддержкой bitcode (-fembed-bitcode) из командной строки. Раньше без поддержки биткода сгенерированный файл .a составлял около 88 Мб, теперь он составляет около 230 Мб. Я знаю, что создание с поддержкой биткода добавляет раздел __bitcode в файлы .o, но почему это в 3 раза больше? Мне нужно построить для armv7 и создать жировую библиотеку с обоими arm64 и armv7, или я могу использовать новый только с битным кодом?XCode7: статическая библиотека с размером бит-кода?

Ранее:

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 

ответ

1

С поддержкой битового кода, ожидается, что размер быстрых dylibs, и ваш собственный код будет значительно больше в .xcarchive (может идти в 3 раза).

Однако этот дополнительный размер не будет отражен в том, что фактически доставляется вашим пользователям, поэтому это не должно быть проблемой.

Когда вы отправляете приложение в хранилище приложений с включенной этой статической библиотекой, хранилище будет обрабатывать его, чтобы вырезать биткод, и эта обработанная версия IPA - это то, что будут загружать ваши пользователи.

+0

Я не уверен, что понимаю, почему это в 3 раза больше. 230 Mb довольно близко к fat lib, который содержит arm64 + armv7 + armv8. так будет ли эта lib с поддержкой биткода работать на устройства armv7? это «поддержка биткода», равная fat lib? – 4ntoine

Смежные вопросы