【问题标题】:Why is my Swift app archive so large?为什么我的 Swift 应用程序存档如此之大?
【发布时间】:2018-05-10 12:58:20
【问题描述】:

我在 2012 年用 Objective-C 编写了我的第一个 iOS 应用程序。它的总存档大小,包括应用程序文件、dSYMs 文件等,小于 1 MB。我最近用 Xcode 9 用 Swift 重写了它,它的存档大小现在是 160 MB。什么占用了所有空间?这不是我的代码,因为 Swift 代码与 Objective-C 代码非常相似,而且实际上要小很多。

我在另一个应用程序中使用 Google 地图,发现存档大小几乎是半 GB。我想也许是谷歌地图库占用了所有空间,直到我注意到我最近所有的 Swift 应用程序也都非常大。我的相关问题是:如果我启用了 Bitcode(根据需要),并且我的 .app 文件大小为 200 MB,那么用户的 iPhone 上实际下载了多少?

【问题讨论】:

    标签: ios swift archive


    【解决方案1】:

    每个 Swift 应用程序都有静态链接的 Swift 运行时。原因是他们还没有实现稳定的 ABI,所以使用不同版本的编译器编译的 Swift 应用程序不能共享相同的运行时。

    【讨论】:

    • 哎呀。如果这是真的,那就太荒谬了。为什么应用程序不能只包含它需要运行的运行时而不携带它不使用的代码?
    • @KenM 可能是因为它确实需要该代码是我的猜测。
    • 还是这样。
    • 我不敢相信情况仍然如此。我记得 前我想我希望他们能尽快解决这个问题。伙计,还记得你什么时候可以将 C++ 应用程序编译成几百 KB 的可执行文件吗?不管发生了什么苹果……
    • @devios1 Swift 5 稳定了 ABI,这将极大地改善事情,并且很快就会发布。
    【解决方案2】:

    Apple 仅在 iOS 12.2+ 和 Swift 5 中执行此操作。Here's Release Notes。由于 iOS 12.2 档案不包含 swift 库。

    【讨论】:

      猜你喜欢
      • 2019-10-05
      • 2022-09-26
      • 2020-01-27
      • 1970-01-01
      • 2021-08-30
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多