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

标签 ios xcode symbolicatecrash symbolicate

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

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

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

最佳答案

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

  1. MyApp.crash
  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"

使用方法:

  1. /usr/local/bin/中创建文件symbolicate
  2. 把上面的代码放到symbolicate文件中
  3. 使用 chmod 777 symbolicate 设置执行权限
  4. 使用适当的参数从您所在位置的任何地方运行

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

关于ios - 如何使用 .xcarchive 文件符号化崩溃日志?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26675537/

相关文章:

ios - 通过shell脚本plist buddy从plist读取数组

ios - iOS 13 和 Xcode 11 的布局问题

iphone - symbolicatecrash 不喜欢我的 dSYM 文件

ios - Xcode 44生成的dsym文件中没有UUID

ios - Swift - 迭代字典数组

ios - 在 Swift 中使用 NSDate 组件

ios - EKCalendar 没有出现在 calendar.app 中

iPhone 应用程序简单计算器 - objective-c 错误

ios - Symbolicate iOS 开发版 Crashlog

ios - 更改我的 NSString 中特定字符的字体系列