我最近做了一些关于减少我的iphone应用程序的ipa包大小的工作,其中包含用swift,objective-C以及项目中的C编写的代码。归档ipa文件后,我注意到该文件比预期的要大一些。因此,我解压缩了ipa文件,发现包中有重复的快速支持dylib。
解压缩文件的结构如下(好吧,旁边没用的文件):
-Payload
-....
-Frameworks
-libswiftCore.dylib
-libswiftCoreGraphics.dylib
-libswiftDarwin.dylib
-libswiftDispatch.dylib
-libswiftFoundation.dylib
-libswiftObjectiveC.dylib
-libswiftSecurity.dylib
-SwiftSupport
-libswiftCore.dylib
-libswiftCoreGraphics.dylib
-libswiftDarwin.dylib
-libswiftDispatch.dylib
-libswiftFoundation.dylib
-libswiftObjectiveC.dylib
-libswiftSecurity.dylib
请注意,SwiftSupport和Payload / Frameworks下的dylib是相同的swift支持库,每个文件夹占用2MB空间,这些空间不可压缩。但是我检查了相应lib的md5,同名文件的文件内容不一样。
所以我的问题是,为什么需要在最终包装中有两个dylib副本。如果可以避免,如何避免在最终包中有冗余的库。
提前谢谢你们。