ios - apple developer connect
Obtención de información del archivo de informe de error.ips (2)
He probado mi aplicación en iPhone 5 y 4s. Y luego envié mi aplicación al probador, tiene 5s iPhone. Todo estuvo bien. Después de un tiempo, cuando agregué algunas funciones a la aplicación, le envié otra versión, pero ahora dice que se bloquea al iniciarse. En mis dispositivos todo está bien. Le pedí que me enviara informes de accidentes. Aquí está el archivo .ips:
{"bundleID”:"name.my-app","app_name”:”my-app","bug_type":"109","name”:”my-app","os_version":"iPhone OS 7.1 (11D167)","version":"1.0 (1.0)"}
Incident Identifier: 3916. . .194
CrashReporter Key: 58fd. . .7399
Hardware Model: iPhone6,2
Process: my-app [277]
Path: /var/mobile/Applications/0AB0. . .B5B/my-app.app/my-app
Identifier: name.my-app
Version: 1.0 (1.0)
Code Type: ARM-64 (Native)
Parent Process: launchd [1]
Date/Time: 2014-03-27 02:10:39.959 +0400
OS Version: iOS 7.1 (11D167)
Report Version: 104
Exception Type: EXC_CRASH (SIGABRT)
Exception Codes: 0x0000000000000000, 0x0000000000000000
Triggered by Thread: 24
Last Exception Backtrace:
(0x1893e2950 0x1958e81fc 0x1893e2890 0x1000f09a0 0x195ec0014 0x195ebffd4 0x195ec64a8 0x195ec24c0 0x195ec70f4 0x195ec74fc 0x1960556bc 0x19605554c)
Thread 0:
0 libsystem_kernel.dylib 0x0000000195fbdca0 0x195fbc000 + 7328
1 CoreFoundation 0x00000001893a2570 0x1892d8000 + 828784
2 CoreFoundation 0x00000001893a0764 0x1892d8000 + 821092
3 CoreFoundation 0x00000001892e16cc 0x1892d8000 + 38604
4 GraphicsServices 0x000000018efc5c08 0x18efb8000 + 56328
5 UIKit 0x000000018c412fd8 0x18c398000 + 503768
6 my-app 0x00000001000f1ae8 0x1000dc000 + 88808
7 libdyld.dylib 0x0000000195edba9c 0x195ed8000 + 15004
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Thread 24 Crashed:
0 libsystem_kernel.dylib 0x0000000195fd658c 0x195fbc000 + 107916
1 libsystem_c.dylib 0x0000000195f6a804 0x195f08000 + 403460
2 libc++abi.dylib 0x0000000195190990 0x195190000 + 2448
3 libc++abi.dylib 0x00000001951adc28 0x195190000 + 121896
4 libobjc.A.dylib 0x00000001958e84d0 0x1958e0000 + 34000
5 libc++abi.dylib 0x00000001951ab164 0x195190000 + 110948
6 libc++abi.dylib 0x00000001951aaa7c 0x195190000 + 109180
7 libobjc.A.dylib 0x00000001958e8314 0x1958e0000 + 33556
8 CoreFoundation 0x00000001893e288c 0x1892d8000 + 1091724
9 my-app 0x00000001000f099c 0x1000dc000 + 84380
10 libdispatch.dylib 0x0000000195ec0010 0x195ebc000 + 16400
11 libdispatch.dylib 0x0000000195ebffd0 0x195ebc000 + 16336
12 libdispatch.dylib 0x0000000195ec64a4 0x195ebc000 + 42148
13 libdispatch.dylib 0x0000000195ec24bc 0x195ebc000 + 25788
14 libdispatch.dylib 0x0000000195ec70f0 0x195ebc000 + 45296
15 libdispatch.dylib 0x0000000195ec74f8 0x195ebc000 + 46328
16 libsystem_pthread.dylib 0x00000001960556b8 0x196054000 + 5816
17 libsystem_pthread.dylib 0x0000000196055548 0x196054000 + 5448
Thread 25:
0 libsystem_kernel.dylib 0x0000000195fd6e74 0x195fbc000 + 110196
1 libsystem_pthread.dylib 0x0000000196055548 0x196054000 + 5448
Thread 26:
0 libsystem_kernel.dylib 0x0000000195fd6e74 0x195fbc000 + 110196
1 libsystem_pthread.dylib 0x0000000196055548 0x196054000 + 5448
Thread 24 crashed with ARM Thread State (64-bit):
x0: 0x0000000000000000 x1: 0x0000000000000000 x2: 0x0000000000000000 x3: 0x00000001035de7b8
x4: 0x0000000000002060 x5: 0x00000001035de870 x6: 0x000000000000006e x7: 0x0000000000000640
x8: 0x000000000c000000 x9: 0x0000000004000000 x10: 0x0000000098d956f7 x11: 0x0000000000000300
x12: 0x0000000000000000 x13: 0x0000000000000000 x14: 0x0000000000000000 x15: 0x0000000195f83dcb
x16: 0x0000000000000148 x17: 0x00c8d95a0138084d x18: 0x0000000000000000 x19: 0x0000000000000006
x20: 0x00000001035e0000 x21: 0x000000017013b5d8 x22: 0x000000017013b600 x23: 0x000000015d610870
x24: 0x00000001963068e8 x25: 0x0000000100100000 x26: 0x0000000198d87c40 x27: 0x000000017026c2c0
x28: 0x000000000000000a fp: 0x00000001035de7f0 lr: 0x000000019605916c
sp: 0x00000001035de7d0 pc: 0x0000000195fd658c cpsr: 0x00000000
Binary Images:
0x1000dc000 - 0x1000f7fff my-app arm64 <d6f1f532dfbc36c497acefc4aa2c7f2f> /var/mobile/Applications/0AB088E7-6425-4287-9C4B-1EEF37E7DB5B/my-app.app/my-app
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
0x19606c000 - 0x19608ffff libxpc.dylib arm64 <7077afbad955309d8cb9965960c781f3> /usr/lib/system/libxpc.dylib
Estaba leyendo muchas preguntas similares aquí, y me dicen que debo simbolizar ese .ips a través de la terminal. Pero no funciona. atos
comando atos
devuelve que no se puede leer my-app.app, xcrun atos
devuelve la misma dirección de memoria que estoy especificando.
xcrun atos -arch arm64 -o ''my-app.app'' 0x196054000 + 5448
0x196054000
+
5448
No estoy seguro, debo especificar ese número +, pero no funciona sin él también.
Gracias de antemano, agradecería cualquier ayuda.
ACTUALIZAR:
Lo he descubierto. Algo mal con NSFileManager, está actuando de manera diferente en 64 bits y 32 bits
[fileManager fileExistsAtPath:pathToCacheDir isDirectory:&isDirectory];
isDirectory
devuelve NO, aunque pathToCacheDir es un directorio válido, por eso obtuve una excepción. Pero la pregunta sigue siendo válida, ¿cómo puedo obtener algunos informes más comprensibles de los evaluadores?
Acabo de recibir un montón de archivos .ips
de un usuario de Windows y también me preguntaba qué hacer con ellos. Al .crash
nombre a .crash
Xcode estaba feliz de importarlos (ir al Organizador, a los Registros de dispositivos de biblioteca e Importar) y simbolizarlos.
edición: cuando escribí originalmente esta respuesta, fue con Xcode 6 en mente. Las versiones más nuevas de Xcode (7+ creo) han movido las cosas. Según Apple :
Xcode intentará automáticamente simbolizar todos los informes de fallas que encuentra. Todo lo que necesita hacer para la simbolización es agregar el informe de bloqueo al Organizador de Xcode.
- Conecta un dispositivo iOS a tu Mac
- Elija "Dispositivos" en el menú "Ventana"
- Debajo de la sección "DISPOSITIVOS" en la columna izquierda, elija un dispositivo
- Haga clic en el botón "Ver registros de dispositivos" en la sección "Información del dispositivo" en el panel de la derecha
- Arrastre su informe de bloqueo a la columna izquierda del panel presentado
- Xcode simbolizará automáticamente el informe de bloqueo y mostrará los resultados
Al usar atos, la primera dirección de las imágenes binarias debe especificarse y el comando debe ejecutarse desde el directorio donde se encuentran .app y .dsym.
El siguiente comando funcionará: atos -o [my-app.app/my-app] -arch [por ejemplo, armv7] -l [primera dirección de la sección de imagen binaria del archivo ips] [todas las direcciones de la última excepción backtrace]
y en tu caso:
atos -o my-app.app/my-app -arch arm-64 -l 0x1000dc000 0x1893e2950 0x1958e81fc 0x1893e2890 0x1000f09a0 0x195ec0014 0x195ebffd4 0x195ec64a8 0x195ec24c0 0x195ec70f4 0x195ec74fc 0x1960556bc 0x19605554c