使用 Application Loader 上传调试符号

Posted

技术标签:

【中文标题】使用 Application Loader 上传调试符号【英文标题】:Using Application Loader to upload debug symbols 【发布时间】:2016-01-13 13:28:47 【问题描述】:

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

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

问题是在 iTunes 中的构建详细信息中连接“包含符号”为“否”。

使用应用程序加载器似乎没有任何选项可以上传 .dSYM 调试符号。

所以,关于我们如何将构建上传到 iTunes Connect 的任何想法 “包括符号”是“是”?


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

【问题讨论】:

【参考方案1】:

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

【讨论】:

我使用myapp.app.dSYM/Contents/Resources/Dwarf/*.dylib 来表示所有框架。但productbuild --symbolication 不会生成符号文件夹。有其他选择吗?

以上是关于使用 Application Loader 上传调试符号的主要内容,如果未能解决你的问题,请参考以下文章

无法使用 Application Loader 将 .ipa 上传到 iTunes

无法使用 Application Loader 将 .ipa 上传到 iTunes

使用 Application Loader 上传 Mac 应用程序

无法使用Application Loader上传iOS应用程序(ERROR ITMS-90023)

使用application loader上传app,且生成构建版本

使用Application Loader打包上传AppStore流程