【问题标题】:IPA File Structure - SupportSwift & SymbolsIPA 文件结构 - SupportSwift 和符号
【发布时间】:2016-11-20 09:18:28
【问题描述】:

解压“.ipa”文件时,输出为:Payload 包含应用程序的目录。但是,有时输出是:PayloadSwiftSupportSymbols 目录。

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

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

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

我找不到任何有用的参考来描述我在寻找什么。

【问题讨论】:

  • 有趣,一个库有两个示例,奇怪的是它们的大小不同:)
  • @Vanya 请检查我的回答

标签: ios swift xcode ipa


【解决方案1】:

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

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

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

Symbols 目录由导出对话框上的复选框管理:

从 Xcode 7 开始,还支持exportOptionsPlist,带有用于命令行构建的符号导出选项,更多详细信息here

第二部分更有趣:

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

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

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

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

【讨论】:

    【解决方案2】:

    作为sage444 的回答,请对您的回答进行一些解释。我观察到的几点。

    Symbols:你需要这个文件夹来象征你的崩溃日志。

    SwiftSupport: 虽然你有两个 dylib 副本,一个在 Payload 中,另一个在框架中。但是,当您将其上传到 iTunesConnect 时,可下载应用程序的大小会小于 ipa 文件的大小。 iTunesConnect 管理您的重复项目 (dylib)。

    更多信息可以查看this answer

    【讨论】:

      猜你喜欢
      • 2015-01-08
      • 2017-05-10
      • 2021-09-16
      • 1970-01-01
      • 1970-01-01
      • 2021-11-14
      • 2015-05-31
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多