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

Emr*_*der 6 terminal ditto ios jenkins swift

我正在 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
Run Code Online (Sandbox Code Playgroud)

我如何获得 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
Run Code Online (Sandbox Code Playgroud)

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

ditto -c -k --keepParent -rsrc "${WORKSPACE}/build/My_Project_Test.app.dSYM" ${WORKSPACE}/build/My_project_Test-${PRODUCT_VERSION}-${PRODUCT_VERSION}-dSYM.zip
Run Code Online (Sandbox Code Playgroud)

上传代码:

$WORKSPACE/Pods/Fabric/upload-symbols -a xxxxxxxxxxxx -p ios -- build/My_Project_Test.app.dSYM
Run Code Online (Sandbox Code Playgroud)

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

Emr*_*der 7

我发现我们可以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
Run Code Online (Sandbox Code Playgroud)

  • 太棒了。如果您不需要输出的 zip,请省略“-c -k”。如果您想要存档中的所有 dSYM,请从源路径中删除“/My_Project_Test.app.dSYM”。 (3认同)