如何防止重复包含SwiftSupport库

24

当我们将我们的应用程序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文件中提取的内容。

有人以前见过这个吗?我在苹果开发者论坛上问了两次,但没有回复。


我也遇到了这个问题,有更新吗? - Bruce
没有。仍在寻找答案。 - Stefan Arentz
我们也遇到了这个问题。我们正在调查 - 如果我们得到任何解决方案,我会发布我的更新... - orschaef
你能提供你在苹果开发者论坛上的问题链接吗?我们这些有苹果开发者账号的人至少可以看到它们。谢谢。 - chrish
从watchOS4开始,大小增加了25MB,因此现在手表应用程序的大小限制为75MB,而不是旧的50MB。https://dev59.com/-aDia4cB1Zd3GeqPH7bX#46347141 - Tejas Ardeshna
显示剩余2条评论
2个回答

7
很不幸,对于Apple Watch来说,IPA文件大小仍然很重要,因为如果大小超过了50MB的限制(包括所有冗余内容),它将抛出验证错误。
幸运的是,将“嵌入式内容包含Swift”设置为“NO”可以减少16.5MB的Apple Watch大小,从而通过验证。
注意:我的整个应用程序都是用Swift编写的,带有基于Swift的嵌入式框架。但代码在WatchKit扩展中,而不是应用程序!
我已经在论坛上询问了这个解决方案是否合适,但还没有回复...另外,我已经将此构建提交到iTunes Connect,并且已经处理了30分钟了(叹气)。如果我使用这种方法遇到问题,我会在这里回复或删除答案。
您可以在下面的截图中看到WatchKit应用程序在新的存档中缺少Frameworks文件夹,减少了16.5MB。

enter image description here


从watchOS4开始,大小增加了25MB,因此现在手表应用程序的大小限制为75MB,而不是旧的50MB。https://dev59.com/-aDia4cB1Zd3GeqPH7bX#46347141 - Tejas Ardeshna

1
根据苹果技术支持关于将应用移植到Swift 2/iOS9后的IPA文件大小的说法:
现在,libswiftCore.dylib在您的IPA中的大小以及IPA总体大小有些毫无意义。商店中的新瘦身功能将在向特定设备传递时从您的应用中删除不必要的内容,即使您的应用程序没有包含bitcode,libswiftCore.dylib也包含它。此bitcode会在将您的应用下载到客户设备之前被删除。
尽管如此,我同意Firefox iOS开发人员的观点,并且在App Store上遇到了相同的问题。

那很好,但是为什么他们仍然对上传的二进制文件有这荒谬的50 MB限制呢?难道他们不能在处理过程中检查IPA的最终大小吗? - devios1
从watchOS4开始,大小增加了25MB,因此现在手表应用程序的大小限制为75MB,而不是旧的50MB。https://dev59.com/-aDia4cB1Zd3GeqPH7bX#46347141 - Tejas Ardeshna

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接