Ich bin in der Git-Geschichte zurückgegangen, um die Ursache für eine enorme Änderung der Dateigröße zu finden, aber der einzige wirkliche Grund, den ich finden kann, ist der Wechsel von Xcode 6 zu Xcode 7 GM.
Ich habe festgestellt, dass dies die 10 wichtigsten Beiträge zur Dateigröße in einer .ipa
aus dem Archiv erstellten Operation in einer Release- Build-Konfiguration sind:
$ 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
Bei weitem die größten Dateien sind die zwei (leicht unterschiedlichen) libswiftCore.dylib
Dateien, die insgesamt über 32 MB groß sind. In dem von Xcode 6 erstellten Bundle umfassten diese beiden Dateien nur 3 MB.
Frage 1 lautet also: Warum sind die Swift-Kerndateien dort zweimal? ( Eingebetteter Inhalt enthält Swift-Code ist auf Nein gesetzt ).
Und Frage 2 lautet: Was ist passiert? Warum hat sich die Swift-Kerngröße um 15 MB erhöht? Ist das dauerhaft?
Einige zusätzliche Hinweise:
- Dies ist ein Projekt, das vollständig Objective-C war, jetzt aber größtenteils Swift ist. Die Einstellung Modul definieren ist auf Ja gesetzt .
- Das Projekt verwendet CocoaPods mit
use_frameworks!
Set. - Ich habe die tatsächliche Downloadgröße von TestFlight auf mehreren Geräten und iOS-Versionen bestätigt und sie liegt im Bereich von 30 bis 60 MB (vermutlich ist der Unterschied auf das Schneiden von Apps zurückzuführen). Früher waren es 9 MB.