Directorio de artículos
1. Utilice simbólicocrash para analizar el archivo .ips:
symbolicatecrash
Es una herramienta de análisis de registros Xcode
incorporada.crash
Paso 1. Busque symbolicatecrash
y abra Terminal
la ejecución:
find /Applications/Xcode.app -name symbolicatecrash -type f
Después de un tiempo, se generará la ruta, luego copie la ruta, haga clic con el botón derecho en Finder -> Ir a la carpeta -> Pegar -> Entrar, la encontrará y la copiará para usarla más symbolicatecrash
adelante symbolicatecrash
.
Paso 2. Coloque los archivos y ./symbolicatecrash
en la misma carpetacrash
dSYM
Paso 3. Ejecute el comando de análisis
./symbolicatecrash 《crash文件绝对路径》 《拖入xx.app.dSYM里的xx文件》 > log.crash 回车
Se puede informar un error:
Error 1: Resolución: reintentar después Error: "DEVELOPER_DIR" is not defined at /Users/yourname/Downloads/crash/symbolicatecrash line 69.
de la ejecuciónexport DEVELOPER_DIR=/Applications/Xcode.app/Contents/Developer
Error 2: No crash report version in /xxx.crash at ./symbolicatecrash line 1365.
Motivo: Apple lo abandonó en Xcode 13.3 symbolicatecrash
Solución: Si necesita usarlo, debe .ips
convertirlo al formato anterior. Puede utilizar AppleCrashScripts para la conversión.Pasos
:
- Descargue
AppleCrashScripts
el proyecto e ingrese al directorio del proyecto. - Copie
.ips
el archivo aAppleCrashScripts-master
la carpeta: - implementar:
swift convertFromJSON.swift -i xxx.ips -o log.crash
El log.crash
archivo generado es el archivo de formato antiguo, que luego ./symbolicatecrash
se puede analizar.
2. Utilice CrashSymbolicator.py para analizar archivos ips
Paso 1. Encuentra CrashSymbolicator.py
el archivo,
find /Applications/Xcode.app -name CrashSymbolicator.py -type f
resultado:
/Applications/Xcode.app/Contents/SharedFrameworks/CoreSymbolicationDT.framework/Versions/A/Resources/CrashSymbolicator.py
Paso 2. Analiza el archivo usando CrashSymbolicator.py
y.dSYM
.ips
python3 《CrashSymbolicator.p文件路径》 -d xxx.dSYM -p xxx.ips
Los resultados de la ejecución se mostrarán directamente en terminal
él y podrá copiarlos y guardarlos si es necesario.
Paso 3. Análisis
...
"queue": "com.apple.main-thread",
"frames": [
{
"imageOffset": 117622764,
"imageIndex": 0,
"symbol": "__57-[QNBUALiveFeedCategoryChannelViewController viewDidLoad]_block_invoke",
"sourceFile": "QNBUALiveFeedCategoryChannelViewController.m",
"sourceLine": 80,
"symbolLocation": 32
},
...
]
...
Se encontró el código que estaba ejecutando el hilo principal en el momento del fallo y invoke
se encontró uno vacío block
.
3. Utilice atos para analizar archivos bloqueados
Formato de comando:
atos -arch <BinaryArchitecture> -o <PathToDSYMFile>/Contents/Resources/DWARF/<BinaryName> -l <LoadAddress> <AddressesToSymbolicate>
Es decir: atos [-o dSYM] -l loadAddress Address1 Address2 Address3
operación:
atos -arch arm64 -o 《拖入xxx.app.dSYM里的xxx文件》 -l 《基地址》《偏移后的地址》
Consejos: xxx es el nombre del proyecto
如1:
atos -arch arm64 -o ~/xxx.app.dSYM/Contents/Resources/DWARF/xxx 0x10b3e47ec 0x1043b8000
atos -arch arm64 -o ~/xxx.app.dSYM/Contents/Resources/DWARF/xxx 0x104885ec0 0x1043b8000
-[TTAttributedLabel encodeWithCoder:] (in xxx) (TTAttributedLabel.m:1534)
-[QNBUAPosterVerticalPaddingPicViewModel posterBackgroundOperation] (in xxx) (QNBUAPosterVerticalPaddingPicViewModel.m:115)
4. Ayuda
4.1 Adquisición de archivos .ips
- Dispositivo -> Configuración -> Privacidad y seguridad -> Análisis y mejora -> Analizar datos -> (correspondiente al nombre de la aplicación + punto de tiempo)
- El registro de fallos de TestFlight se puede obtener en iTunes Connect
iTunes Connect -> Manage Your Applications -> 对应app -> View Detail -> Crash Reports
(simbolizado) - Xcode -> Ventana -> Origanizer -> Adquisición de fallos (debe iniciar sesión en la cuenta de desarrollador)
requiere que el usuario lo comparta para obtener su registro de fallos.
La información sobre fallos proporcionada por el funcionario no es en tiempo real y Solo puedes ver la información sobre el fallo de hace dos días. Necesitas intentar usar herramientas de terceros.
4.2 Adquisición de archivos .crash
Conecte el dispositivo a la computadora XCode -> Windows -> Dispositivo y simulador -> Ver registros del dispositivo -> (correspondiente al nombre de la aplicación + punto de tiempo) -> haga clic derecho en Exportar registro
4.3 Obtener archivos .dSYM y .app
.dSYM
Es un archivo de transferencia para información de mapeo de direcciones de funciones hexadecimales. La depuración se incluirá symbols
en este archivo, symbols
es decir, nombre de clase, nombre de función, etc.
- Al empaquetar, cada versión y archivo
Archives
oficial debe guardarse para usarlos en la localización de problemas en línea.dSYM
app
Ventana -> Organizador -> Archivos -> Haga clic derecho (paquete requerido) -> Mostrar en Finder -> Haga clic derecho en .xcarchive para mostrar el contenido del paquete
Consejos: Archives
La ruta del archivo del paquete es:~/Library/Developer/Xcode/Archives
- adquisición en modo de depuración
Modifique la configuración: Xcode -> Targets -> Build Setting
2.1: Debug Infomation Format -> DWARF -> DWARF with dSYM File
2.2: Puede generar archivos Generate Debug Symbols -> YES
compilando en una máquina real.En la carpeta del proyecto, haga clic derecho -> -> y podrá encontrarlo..dSYM
.app
Products
xxx.app 文件
Show in Finder
4.4 Utilice dwarfdump para consultar uuid
Consulta .dSYM
, uuid
asegúrese de que sea coherente con .ips
o .crash
archivouuid
dwarfdump -u <dSYM所在文件路径>
5. Consejos
- Consejos 1: Apple desaprobó el simbólicocrash en Xcode13.3, use atos en su lugar
- Consejos 2: Algunos
app
tienen muchosdSYM
archivos y todos los archivos deben copiarsedSYM
a la misma carpeta que el archivo que se va a analizar. - Consejos 3: el archivo
simulator
no se generarácrash
- Consejos4:
XCode
Configure eldSYM
archivo generado y ejecútelo en la máquina real. El archivoapp
generado.ips
se simbolizará automáticamente.
6. Resumen
CrashSymbolicator.py
Los resultados del análisis se muestran en la Terminal y no se mantiene el formato de pila original.atos
La eficiencia es muy baja y debe resolverse por dirección.symbolicatecrash
Está en desuso, pero el archivo aún se puede utilizar después de la conversión, analizará todo el archivo y conservará el formato de pila original (recomendado).
Descripción:
Agregar nombres de símbolos identificables a un informe de fallos
Diagnóstico de problemas mediante informes de fallos y registros de dispositivos
Adquisición de informes de fallos y registros de diagnóstico
Comprensión de fallos y registros de fallos
Análisis de un informe de fallos
Depuración de iOS Fallo mágico
de iOS 分析攻略
Formato de información de depuración
Es difícil describir este artículo sin incorporar las opiniones subjetivas del autor. Si tiene alguna pregunta sobre el contenido del artículo, puede presentar diferentes opiniones para discutir en el área de comentarios.