对于当前 Xcode 版本(高于 12),当我存档一个应用程序以供发布时,是否删除了 pods 中未使用的代码?

For current Xcode version (higher than 12), when I archive an app for release, does the unused code in pods removed?

如今,iOS 开发人员使用大量第三方来加快开发速度。我对 Xcode 存档过程有疑问。

当Xcode存档一个应用程序发布时,当我选择优化最小和最快时,无用的代码不会在ipa文件中?或者无用的代码也存档在ipa中?

对于Android Studio,这个程序可能叫做最小化? Xcode 是否会为发布 ipa 自动执行此操作?

谢谢

我不确定 Android 中是否使用了“最小化”一词,对吗 code shrinking or tree shaking?其他术语包括死代码消除和代码剥离。

要回答这个问题,似乎都没有完成: 我在一个目标中添加了一个依赖项(Swift 包,特别是 SQLite.swift) Xcode 项目,应用程序的大小(归档时/使用发布构建配置)从 4.3MB 增加到 6.6MB。


不幸的是,这是我不太关心的事情,你的问题很好。我希望其他人的回答更好。

Xcode 中没有构建设置,它删除了 ipaunused/useless 代码

此外,您使用的编译器设置

最快,最小 [-Os] 解决了这个问题:编译器执行所有通常不会增加代码大小的优化。这是传送代码的首选选项,因为它使您的可执行文件占用的内存更小。

这只会帮助减少应用程序的内存占用,不会删除未使用的代码

要仔细查看,如果您使用的是动态框架,您可以检查 .ipa 的内容,您会在其中看到一个名为 Framework 的文件夹,您会发现所有 pods 作为 .framework 并且您甚至可以看到里面的文件和资源

所以回答你的问题 Xcode 是否会自动为发布 ipa 执行此操作? -> 否