使用 Application Loader 上传调试符号

Using Application Loader to upload debug symbols

我正在从命令行构建和打包 mac 商店应用程序。这会生成我使用 dsymutil 从应用程序中的二进制文件中提取的 .dSYM 文件,然后我们对 .app 进行代码签名,然后使用 productbuild 将其打包。

将此 .pkg 传递给我们的团队,它安装成功,并被 Application Loader 的预检查接受,并出现在 iTunes 连接构建列表中。

问题是 itunes connect 'Includes Symbols' 中的构建细节是 'No'。

使用 Application Loader 似乎没有任何选项可以上传 .dSYM 调试符号。

所以,关于我们如何将构建上传到 iTunes Connect 的任何想法 'Includes Symbols' 是 'Yes'?


查看 xcode,它似乎创建了一个 .pkg 文件,其中包含一个名为 'Symbolication' 的文件夹,这似乎表明它是 productbuild 的责任,而不是 Application Loader 的责任。

XCode 为它所做的每个构建和存档发布日志,通过检查这些我们可以看到它使用 'symbols' 工具从 dSYM 输出中提取符号,然后将这些与 productbuild 打包使用(未记录的)--symbolication 标志。

日志文件名为:

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