Я повертався назад в історії Git, щоб знайти причину величезної зміни розміру файлу, але єдиною реальною причиною, яку я можу знайти, є перехід з Xcode 6 на Xcode 7 GM.
Я виявив, що це 10 найкращих вкладників розміру файлу в .ipa
створеному за допомогою операції архівування у конфігурації збірки Release :
$ unzip -lv Roger\ Release.ipa | sort -k +3nr | head
41802768 Defl:N 16887199 60% 09-14-15 23:47 dc24cdc1 Payload/Roger.app/Frameworks/libswiftCore.dylib
41802400 Defl:N 16886076 60% 09-06-15 18:33 f939ea6a SwiftSupport/iphoneos/libswiftCore.dylib
11184032 Defl:N 5915625 47% 09-14-15 23:48 6ceac4a2 Payload/Roger.app/Roger
6399584 Defl:N 2670275 58% 09-14-15 23:47 0ac52d3f Payload/Roger.app/Frameworks/libPhoneNumber_iOS.framework/libPhoneNumber_iOS
5410384 Defl:N 2334189 57% 09-14-15 23:47 7a8cb03f Payload/Roger.app/Frameworks/Alamofire.framework/Alamofire
4521904 Defl:N 2292789 49% 09-14-15 23:47 95da0882 Payload/Roger.app/Frameworks/FBSDKCoreKit.framework/FBSDKCoreKit
4731552 Defl:N 1926357 59% 09-14-15 23:48 e05337de Payload/Roger.app/Frameworks/libswiftFoundation.dylib
4731168 Defl:N 1925355 59% 09-06-15 18:33 19a5c3c4 SwiftSupport/iphoneos/libswiftFoundation.dylib
2659232 Defl:N 1232897 54% 09-14-15 23:47 1a53a401 Payload/Roger.app/Frameworks/AFNetworking.framework/AFNetworking
1196624 Defl:N 545343 54% 09-14-15 23:47 19a063cb Payload/Roger.app/Frameworks/Bolts.framework/Bolts
Безумовно найбільшими файлами є два (трохи різні) libswiftCore.dylib
файли, загальний обсяг яких становить 32 МБ. У наборі, створеному Xcode 6, ці два файли мали лише 3 МБ.
Тож питання №1: Чому там двічі є основні файли Swift? ( Вбудований вміст містить швидкий код , встановлений на Ні ).
І питання No2: Що сталося? Чому розмір ядра Swift збільшився на 15 МБ? Це постійно?
Деякі додаткові примітки:
- Це проект, який був цілком Objective-C, але зараз є в основному Swift. Для параметра Визначення модуля встановлено значення Так .
- Проект використовує CocoaPods з
use_frameworks!
набором. - Я підтвердив фактичний розмір завантаження з TestFlight на декількох пристроях та версіях iOS, і він знаходиться в межах 30–60 МБ (імовірно, різниця пов’язана з нарізанням додатків). Раніше він становив 9 Мб.