如何防止SwiftSupport库被包含两次

时间:2015-06-02 17:31:32

标签: ios swift

当我们将应用程序Firefox for iOS导出到.ipa文件时,SwiftSupport目录包含两次:

./Payload/Client.app/Frameworks/libswiftCore.dylib
./Payload/Client.app/Frameworks/libswiftCoreAudio.dylib
./Payload/Client.app/Frameworks/libswiftCoreGraphics.dylib
./Payload/Client.app/Frameworks/libswiftCoreImage.dylib
./Payload/Client.app/Frameworks/libswiftDarwin.dylib
./Payload/Client.app/Frameworks/libswiftDispatch.dylib
./Payload/Client.app/Frameworks/libswiftFoundation.dylib
./Payload/Client.app/Frameworks/libswiftObjectiveC.dylib
./Payload/Client.app/Frameworks/libswiftSecurity.dylib
./Payload/Client.app/Frameworks/libswiftUIKit.dylib
./SwiftSupport/libswiftCore.dylib
./SwiftSupport/libswiftCoreAudio.dylib
./SwiftSupport/libswiftCoreGraphics.dylib
./SwiftSupport/libswiftCoreImage.dylib
./SwiftSupport/libswiftDarwin.dylib
./SwiftSupport/libswiftDispatch.dylib
./SwiftSupport/libswiftFoundation.dylib
./SwiftSupport/libswiftObjectiveC.dylib
./SwiftSupport/libswiftSecurity.dylib
./SwiftSupport/libswiftUIKit.dylib

这是来自.ipa文件,该文件是使用发布配置文件构建的,并为 App Store Distribution 导出。

有没有人见过这个?我在Apple开发者论坛上问过两次没有回复。

2 个答案:

答案 0 :(得分:5)

不幸的是,IPA大小对于AppleWatch仍然很重要,因为如果大小超过50 MB的限制(包括所有膨胀),它会抛出验证错误。

幸运的是,设置"嵌入内容包含Swift" Apple Watch应用程序目标 NO 将Apple Watch大小减少了16.5 MB,从而通过了验证。

注意:我的整个应用都是用Swift编写的,内置基于Swift的framworks。但是代码是在WatchKit扩展中,而不是应用程序!

我已经在论坛上询问这个解决方案是否合适,还没有回复..另外,我已经将这个版本提交给itunes connect,现在已经处理了30分钟(叹息)。如果我遇到这种方法的问题,请回复此处,或删除答案。

您可以在下面的屏幕截图中看到WatchKit应用程序如何丢失较新档案中的Frameworks文件夹,删除16.5 MB

enter image description here

答案 1 :(得分:0)

根据Apple技术支持关于IPA size after moving to Swift 2/iOS9

  

你的IPA中的libswiftCore.dylib的大小,以及你的IPA的大小,一般来说,现在有点无意义。商店中的新细化功能将在传送到特定设备时从您的应用中删除不必要的内容,并且即使您的应用没有,libswiftCore.dylib也包含bitcode。在将您的应用程序下载到客户设备之前,会删除此bitcode。

尽管如此,我同意Firefox iOS Devs,我在App Store遇到了同样的问题。