【问题标题】:Using Application Loader to upload debug symbols使用 Application Loader 上传调试符号
【发布时间】: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。

【问题讨论】:

    标签: macos mac-app-store application-loader productbuild


    【解决方案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 不会生成符号文件夹。有其他选择吗?
    猜你喜欢
    • 1970-01-01
    • 2011-09-18
    • 1970-01-01
    • 2016-05-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多