我正在从命令行构建和打包一个mac商店应用程序。这导致了我使用dsymutil从应用程序中的二进制文件中提取的.dSYM文件,然后我们对.app进行代码签名,然后使用productbuild对其进行打包。
将此.pkg传递给我们的团队,它成功安装,并被Application Loader的预检查接受,它出现在itunes连接构建列表中。
问题是,在itunes中的构建详细信息中,connect的"Includes Symbols"为"No"。
使用应用程序加载器,似乎没有任何上传.dSYM调试符号的选项。
所以,关于如何将构建上传到iTunes Connect的任何想法"包含符号"是"是"吗?
看看xcode,它似乎创建了一个.pkg文件,里面有一个名为"Symbolication"的文件夹,这似乎表明它是productbuild的责任,而不是Application Loader的责任。
XCode发布每个构建的日志并存档,通过检查这些日志,我们可以看到它使用"symbol"工具从dSYM输出中提取符号,然后使用(未记录的)--symbolization标志将这些符号打包到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 中看到Sybolization文件夹
pkgutil --expand myapp.pkg myapp.pkg.expanded