1

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

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

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

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

那么,关于我们如何将“包含符号”为“是”的构建上传到 iTunes Connect 的任何想法?


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

4

1 回答 1

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
于 2016-01-13T18:49:55.313 回答