如何使用.xcarchive文件来表示崩溃日志?

时间:2014-10-31 13:11:45

标签: ios xcode symbolicatecrash symbolicate

我在从.xcarchive中提取dsym文件以符号化崩溃日志时遇到问题。我知道.xcarchive包含.app文件和.dsym文件。通常,您应该能够右键单击xcarchive文件并选择“显示包内容”(link)。但是“显示包装内容”不会显示给我。

我还尝试使用symbolicatecrash手动对崩溃日志进行符号化,并为其提供xcarchive文件(link)。但是,它仍会返回未符号化的崩溃日志。

有谁知道这里会发生什么?感谢您的任何帮助,谢谢!

2 个答案:

答案 0 :(得分:1)

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

  1. MyApp.crash
  2. MyApp.xcarchive
  3. 优雅地输出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"
    

    如何使用:

    1. symbolicate
    2. 中创建文件/usr/local/bin/
    3. 将上述代码放在符号文件
    4. 使用chmod 777 symbolicate
    5. 设置执行权限
    6. 使用适当的参数从您所在的位置开始运行
    7. 输出将在崩溃文件的同一目录中生成。

答案 1 :(得分:0)

  1. 将iOS设备插入包含指定档案文件夹中存档的计算机。

  2. 在Xcode中打开设备窗口。

  3. 打开设备日志。

  4. 将崩溃报告拖放到设备的日志列表中。等到它被重新调整为止。