如何使用.xcarchive文件符号化崩溃日志?

Kri*_*uts 5 xcode symbolicate symbolicatecrash ios

我在从.xcarchive提取dsym文件来象征崩溃日志时遇到问题。我知道.xcarchive包含.app文件和.dsym文件。通常,您应该能够右键单击xcarchive文件并选择“ Show Package Contents”(链接)。但是,“显示包装内容”对我不显示。

我还尝试通过使用symbolicatecrashxcarchive文件并将其赋予xcarchive文件(链接)来手动表示崩溃日志。但是,它仍然会返回未符号化的崩溃日志。

有人知道这里会发生什么吗?任何帮助表示赞赏,谢谢!

Saz*_*han 1

我准备了一个带有两个参数的脚本,

  1. 我的应用程序崩溃
  2. MyApp.xcarchive

并优雅地输出MyApp_symbolicated.crash

脚本:

#!/bin/bash

if [ "$#" -ne 2 ]; then
        echo "Argument missing [symbolicate @logLocation @xcarchiveLocation]"
        exit 0
fi

if test -e "$1"; then
    echo "$1 exists"
else
    echo "$1 does not exist!"
    exit 1
fi

if test -e "$2"; then
    echo "$2 exists"
else
    echo "$2 does not exist!"
    exit 1
fi

parentdir=`pwd`
export DEVELOPER_DIR=`xcode-select -p`
PATH=$PATH:$DEVELOPER_DIR
echo $PATH
cd $DEVELOPER_DIR
cd ../SharedFrameworks/
commanddir=`pwd`
command=$commanddir/`find . -name symbolicatecrash`
cd $parentdir
crashlog="$1"
archive="$2"
outputdir=`dirname "$crashlog"`
nfile=$(echo $1 | rev | cut -f 2- -d '.' | rev)
outputfile="$nfile"_symbolicated.crash
echo $nfile
desymfile="$archive"/dSYMs/*.dSYM
$command -v "$crashlog" "$desymfile" > "$outputfile"
Run Code Online (Sandbox Code Playgroud)

如何使用:

  1. symbolicate在中创建一个文件/usr/local/bin/
  2. 将以上代码放入符号文件中
  3. 设置执行权限chmod 777 symbolicate
  4. 使用正确的参数从您所在位置的任何地方运行

输出将在崩溃文件的同一目录中生成。