当导出包含Swift的项目的存档时,我们可以选择“剥离Swift符号”。虽然在只有一个虚拟Swift文件的项目中,我没有看到应用程序大小的任何差异,因此是最大剥离的完美案例。这到底是什么,它如何影响最终的应用程序大小(.ipa)?
P.S.:如Xcode 9 beta 6所示更新:实际上,我可以观察到轻微的ipa大小减少(3.4MB未压缩)时,在特定的设备变种(不是通用的变种虽然)
bf1o4zei1#
根据Xcode docs:新的Strip Swift符号(STRIP_SWIFT_SYMBOLS)build设置默认启用。它调整符号剥离的级别,以便当构建的链接产品被剥离时,所有Swift符号都被删除。这大大减少了Swift框架的大小。如果缺少Swift符号导致问题,例如使用dladdr()时,可以禁用此设置。要查看从已剥离的文件导出的符号,请使用xcrun dyldinfo -export而不是nm。(31306055)
STRIP_SWIFT_SYMBOLS
dladdr()
xcrun dyldinfo -export
nm
1条答案
按热度按时间bf1o4zei1#
根据Xcode docs:
新的Strip Swift符号(
STRIP_SWIFT_SYMBOLS
)build设置默认启用。它调整符号剥离的级别,以便当构建的链接产品被剥离时,所有Swift符号都被删除。这大大减少了Swift框架的大小。如果缺少Swift符号导致问题,例如使用dladdr()
时,可以禁用此设置。要查看从已剥离的文件导出的符号,请使用xcrun dyldinfo -export
而不是nm
。(31306055)