Xcode中的"剥离Swift符号"实际上做了什么?

ati*_*oSE 17 xcode ios app-thinning

导出包含Swift的项目的存档时,我们可以选择"去除Swift符号".虽然在一个只有一个虚拟Swift文件的项目中,我没有看到应用程序大小的任何差异,因此是最大剥离的完美案例.

这是做什么的,它如何影响最终的应用程序大小(.ipa)?

在此输入图像描述

PS:如Xcode 9 beta 6所示

更新:实际上,我在观察特定设备变体时可以观察到轻微的ipa尺寸减小(3.4 MB未压缩)(尽管不是通用变体)

Man*_*uel 8

根据Xcode文档:

STRIP_SWIFT_SYMBOLS默认情况下启用新的Strip Swift Symbols()构建设置.它调整符号剥离的级别,以便在删除构建的链接产品时,删除所有Swift符号.这大大减少了Swift框架的大小.如果缺少Swift符号会导致问题,例如使用时 dladdr(),可以禁用此设置.要从已剥离的文件中查看导出的符号,请使用xcrun dyldinfo -export而不是nm.(31306055)

  • 二进制文件上的“nm -g -U”产生与​​“xcrun dyldinfo -export”类似的结果 (2认同)