【问题标题】:How to prevent SwiftSupport libraries to be included twice如何防止 SwiftSupport 库被包含两次
【发布时间】:2015-06-02 17:31:32
【问题描述】:

当我们将应用程序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 Developer Forums 上问了两次,没有任何回应。

【问题讨论】:

  • 我也遇到了这个问题,有更新了吗?
  • 不。仍在寻找答案。
  • 我们也遇到了这个问题。我们正在调查它 - 如果我们有任何解决方案,我会发布我的更新......
  • 您能否在 Apple 开发者论坛上提供您的问题的链接?我们这些拥有 Apple Developer 帐户的人至少可以看到它们。谢谢。
  • 一年过去了,我偶然发现了同样的问题,试图将 Swift 支持添加到我们现有的庞大 iOS 项目中,并看到库被包含两次,在 Apple 论坛中留言 forums.developer.apple.com/thread/16339(我认为这是操作打开的原始线程)

标签: ios swift


【解决方案1】:

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

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

注意:我的整个应用程序都是用 Swift 编写的,并带有基于 Swift 的嵌入式框架。但代码在 WatchKit 扩展中,而不是应用程序中!

我已经在论坛上问过这个解决方案是否合适,还没有回复.. 另外,我已经将此构建提交给 iTunes Connect,现在已经处理了 30 分钟(叹气)。如果我遇到这种方法的问题,将在此处发布,或者删除答案。

您可以在下面的屏幕截图中看到 WatchKit 应用如何在较新的存档中缺少 Frameworks 文件夹,从而删除了 16.5 MB

【讨论】:

【解决方案2】:

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

如今,您的 IPA 中 libswiftCore.dylib 的大小以及您的 IPA 的总体大小已经毫无意义。商店中的新细化功能将在交付到特定设备时从您的应用程序中删除不必要的内容,即使您的应用程序没有,libswiftCore.dylib 也包含位码。在您的应用下载到客户设备之前,该位码已被移除。

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

【讨论】:

  • 那太好了,为什么他们对上传的二进制文件仍然有这个荒谬的 50 MB 限制?他们不能进行此处理并检查 IPA 的最终大小吗?
  • 从 watchOS4 大小增加了 25MB,所以现在手表应用大小限制为 75MB,而不是旧的 50MB stackoverflow.com/a/46347141/3759429
猜你喜欢
  • 1970-01-01
  • 2020-04-06
  • 1970-01-01
  • 1970-01-01
  • 2012-06-08
  • 1970-01-01
  • 2013-10-25
  • 1970-01-01
  • 2019-06-04
相关资源
最近更新 更多