2016-06-21 35 views

Odpowiedz

4

Myślę, że wprowadzasz zamieszanie w to, czym właściwie jest Bitcode. Bitcode może być używany zarówno w statycznych strukturach, jak i bibliotekach dynamicznych.

Z Apple docs:

Bitcode jest pośrednim przedstawieniem kompilatu. Aplikacje przesłane do iTunes Connect, które zawierają kod Bitcode, zostaną skompilowane i połączone w App Store. Dołączenie bitu pozwoli Apple na ponowną optymalizację pliku binarnego aplikacji w przyszłości bez konieczności przesyłania do sklepu nowej wersji aplikacji.

Większość bibliotek i frameworków jest "grubych", co oznacza, że ​​zawierają dodatkowe pliki binarne obsługujące wszystkie architektury. Oznacza to, że framework iOS może obsługiwać armv7, armv7s i i386 (wszystkie architektury urządzeń i symulator).

Budowanie biblioteki za pomocą bitcode umożliwia jej działanie w trybie Thinning. Oznacza to, że tylko pliki binarne odpowiednie dla architektury, w której aplikacja będzie działać, są pobierane ze sklepu App Store. Dodatkowo, jak wspomina Crazyrems w komentarzach, zoptymalizuje to instalację aplikacji i rozmiar pobierania, ponieważ urządzenie pobierze tylko zasoby niezbędne do uruchomienia aplikacji na tej konkretnej architekturze/urządzeniu.

Nie będę wdawać się w szczegóły o LLVM IR, ale polecam czytanie tych artykułów na odniesienie:

+1

Instalacje będą zoptymalizowany. Tylko część aplikacji zbudowana dla architektury konkretnego telefonu zostanie pobrana podczas instalacji, co oznacza mniejsze rozmiary aplikacji. – Crazyrems

+0

@ Dziękuję za podziękowania, dodałem to jako aktualizację mojej odpowiedzi. – JAL

+0

Zadowolony z odpowiedzi. Dzięki @JAL – iMHitesh