IPA文件结构 - SupportSwift和符号

Ahm*_*d F 9 xcode ios ipa swift

解压缩".ipa"文件时,输出为:包含应用程序的Payload目录.但是,有时输出是:Payload,SwiftSupportSymbols目录.

  • 生成SwiftSupportSymbols目录的条件是什么?

另外,我注意到SwiftSupport包含.dylib文件,我假设它们已经存在于应用程序中(右键单击 - >显示包内容 - >框架),因此:

  • 应用程序即使不存在也应该正常工作,生成它们的目的是什么?

我找不到任何有用的参考来描述我正在寻找的东西.

sag*_*444 4

使用存档器后,我找到了您所有问题的答案。

生成 SwiftSupport 和 Symbols 目录的条件是什么?

SwiftSupportALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES文件夹由目标的构建设置中的选项管理

Symbols目录由导出对话框上的复选框管理: 在此输入图像描述

自 Xcode 7 起,还支持exportOptionsPlist命令行构建的符号导出选项,更多详细信息请参见此处

第二部分更有趣:

即使它们不存在,应用程序也应该正常工作,生成它们的目的是什么?

我在...苹果的文档中找到了这个问题的答案:

始终将 Swift 标准库嵌入到目标产品中,即使目标不包含任何 Swift 代码。例如,如果目标嵌入了包含 Swift 的其他产品,或者它是不包含 Swift 但正在测试包含 Swift 的产品的测试目标,则应启用此功能。此设置仅适用于包装产品,不适用于独立的二进制产品。

因此,即使不直接使用 swift,应用程序的 .ipa 也可以包含此文件夹和库