如何防止SwiftSupport库被包含两次

Ste*_*ntz 22 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
Run Code Online (Sandbox Code Playgroud)

这来自.ipa使用Release配置文件构建并为App Store Distribution导出的文件.

谁看过这个吗?我在Apple开发者论坛上问过两次没有回复.

Maz*_*yod 5

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

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

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

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

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

在此输入图像描述


lor*_*isi 1

根据 Apple 技术支持关于迁移到 Swift 2/iOS9 后的 IPA 大小

IPA 中 libswiftCore.dylib 的大小以及一般 IPA 的大小现在有些没有意义。商店中的新细化功能将在交付到特定设备时从您的应用程序中删除不必要的内容,并且 libswiftCore.dylib 包含位码,即使您的应用程序不包含位码。在您的应用程序下载到客户设备之前,此位码将被删除。

尽管如此,我同意 Firefox iOS 开发人员的观点,并且我在 App Store 上遇到了同样的问题。