如何在终端上从 xcarchive 导出 dsym 文件

Posted

技术标签:

【中文标题】如何在终端上从 xcarchive 导出 dsym 文件【英文标题】:How to export dsym file from xcarchive on terminal 【发布时间】:2019-01-23 07:22:30 【问题描述】:

我正在 Jenkins 上获取存档和 IPA。我想在构建后将我的 dsym 上传到 Fabric。如您所知,xcodebuild 在 xcarchive/dSYMs 文件夹中生成 dsym。

我如何获得存档:

/usr/bin/xcodebuild -quiet -workspace My_Project.xcworkspace -scheme My_Project_Test -sdk iphoneos -configuration Release archive -archivePath CONFIGURATION_BUILD_DIR=$WORKSPACE/build/My_Project_Test.xcarchive

我如何获得 IPA:

/usr/bin/xcodebuild -exportArchive -archivePath CONFIGURATION_BUILD_DIR=$WORKSPACE/build/My_Project_Test.xcarchive -exportOptionsPlist My_Project/Resources/Test/Test_ExportOptions.plist -exportPath CONFIGURATION_BUILD_DIR=$WORKSPACE/build

获取 dsym 的示例代码(目前不工作):

ditto -c -k --keepParent -rsrc "$WORKSPACE/build/My_Project_Test.app.dSYM" $WORKSPACE/build/My_project_Test-$PRODUCT_VERSION-$PRODUCT_VERSION-dSYM.zip

上传代码:

$WORKSPACE/Pods/Fabric/upload-symbols -a xxxxxxxxxxxx -p ios -- build/My_Project_Test.app.dSYM

我的问题是如何使用同上代码或相同代码从 xcarchive 导出 dsym 文件。

【问题讨论】:

您可以使用 Fastlane 让您的整个 CI/CD 工作更轻松。 【参考方案1】:

我发现我们可以直接访问xcarchive文件。这样下面的代码就可以压缩 dsym 文件了。

ditto -c -k --keepParent -rsrc "$WORKSPACE/build/My_Project_Test.xcarchive/dSYMs/My_Project_Test.app.dSYM" $WORKSPACE/build/My_Project_Test-$PRODUCT_VERSION-$PRODUCT_VERSION-dSYM.zip

【讨论】:

这是完美的。如果您不想要输出的 zip,请省略 -c -k。如果您想要存档中的所有 dSYM,请从源路径中删除 /My_Project_Test.app.dSYM

以上是关于如何在终端上从 xcarchive 导出 dsym 文件的主要内容,如果未能解决你的问题,请参考以下文章

Crash以及报错总结

.crash 文件解析

.archive 和 .xcarchive xcode 之间的区别?

如何在 iOS 10 上从 Xcode 安装应用程序?

如何在 Mac 上从 Chrome 导出证书?

如何在 MAMP 安装上从终端运行 mysql 命令?