XCode 为每个构建和归档发布日志,通过检查这些我们可以看到它使用“符号”工具从 dSYM 输出中提取符号,然后使用(未记录的) --symbolication 标志将这些与 productbuild 打包。
日志文件被称为:
IDEDistribution.critical.log
IDEDistribution.standard.log
IDEDistribution.verbose.log
在 /var/folders/ 中以“xcdistributionlogs”结尾的目录中
所以你想做这样的事情:
dsymutil myapp.app/Contents/MacOS/myapp -o myapp.app.dSYM
# TargetSymbolFolder must exist prior to calling symbols
mkdir TargetSymbolFolder
# Args are lifted from the xcode logs
symbols -noTextInSOD -noDaemon -arch all -symbolsPackageDir TargetSymbolFolder myapp.app.dSYM/Contents/Resources/Dwarf/myapp
...other build steps, codesign and such
# symbolication is undocumented, again it is from xcode logs
productbuild --symbolication TargetSymbolFolder --component myapp.app /Applications myapp.pkg
如果您现在使用 pkgutil 打开创建的 .pkg,您可以在 pkg 中看到 Sybolication 文件夹
pkgutil --expand myapp.pkg myapp.pkg.expanded