解压缩“.ipa”文件时,输出为: Payload 目录,其中包含该应用程序。但是,有时输出为: Payload , SwiftSupport 和 Symbols 目录。
另外,我注意到 SwiftSupport 包含.dylib
个文件,我认为它们已经存在于应用程序中(右键单击 - > show package contents - > frameworks) ,所以:
我找不到任何有用的参考来描述我正在寻找的东西。
答案 0 :(得分:3)
生成SwiftSupport和Symbols目录的条件是什么?
SwiftSupport
文件夹由目标的构建设置
ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES
管理
从Xcode 7开始,对于命令行构建,还支持带有符号导出选项的exportOptionsPlist
,更多详细信息here
应用程序即使不存在也应该正常工作,生成它们的目的是什么?
回答我在...中找到的这个问题的苹果文档:
始终将Swift标准库嵌入目标产品中,即使目标不包含任何Swift代码也是如此。例如,如果目标是嵌入包含Swift的其他产品,或者如果它是一个不包含Swift但正在测试产品的测试目标,则应启用此功能。此设置仅适用于包装产品,而不适用于独立的二进制产品。
因此,即使不直接使用swift,应用程序的.ipa也可以包含带有库的文件夹
答案 1 :(得分:1)
正如sage444的回答,你的答案给出了一些解释。我观察到的几点很少。
Symbols
:您需要此文件夹来表示崩溃日志。
SwiftSupport
:虽然您在Payload中有两个dylib副本,而在框架中有其他副本。但是当您将其上传到iTunesConnect时,可下载应用的大小将小于您的ipa文件的大小。 iTunesConnect管理您的重复项目(dylibs)。
有关详细信息,请查看this answer