我最近做了一些关于减少我的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
Run Code Online (Sandbox Code Playgroud)
请注意,SwiftSupport和Payload/Frameworks下的dylib是相同的swift支持库,每个文件夹占用2MB空间,这些空间不可压缩.但是我检查了相应lib的md5,同名文件的文件内容不一样.
所以我的问题是,为什么需要在最终包中有两个dylib副本.如果可以避免,如何避免在最终包中有冗余的库.
提前谢谢你们.