ios5 - ¿Cuál es la causa de dyld`dyld_fatal_error, una API incompatible en iOS?
ios4 crash (7)
Corrí a este problema tratando de reproducir este proyecto usando Xcode4.3.2 con SDK iOS5.1. El problema era que la plantilla de proyecto estándar en Xcode4.3.2 configura para iOS5, que tiene algunas características que las versiones anteriores de iOS no son compatibles. En mi caso, el Framework GLKit estaba siendo retirado y no era compatible con mi iPhone3G con iOS4.2. El error que estaba obteniendo era como el tuyo:
dyld`dyld_fatal_error:
0x2fe01080: trap
0x2fe01084: mov r0, r0
Tras una revisión más detallada de la Salida de la consola, puede ver qué causa la falla de la aplicación:
dyld: Library not loaded: /System/Library/Frameworks/GLKit.framework/GLKit
Referenced from: /var/mobile/Applications/A60A53B1-F87D-467D-BB0B-82C603049202/HiJackInTheBox.app/HiJackInTheBox
Reason: image not found
(lldb)
El error significaba que el framework GLKit no se encontraba en el residente de iOS en el destino donde se instaló la aplicación. El marco se estaba incorporando a la construcción en Proyecto-> Fases de construcción-> LinkBinaryWithLibraries.
Para corregir el problema, necesitaba eliminar el marco GLKit y todos los códigos que hacen referencia a él. Luego, la compilación tuvo éxito y se ejecutó en el dispositivo de destino. ¡Espero que esto ayude!
Moveré parte de mis proyectos a iOS 5 / ARC. Uno de los proyectos más antiguos (iOS 4.2, armv6 para soporte iPod Touch 2g) me está dando:
dyld`dyld_fatal_error:
0x8feb1070: int3
0x8feb1071: nop
Justo después de la imagen de lanzamiento pero antes de ir a main. Debe ser algún código / lib actualizado a iOS 5, pero ¿cuál? ¿Es posible usar un método mejor que adivinar?
Tuve el mismo problema con mi proyecto xCode 4.3 (basado en cocos3d) cuando probé en un iPhone 3GS con iOS 4.2.
Ve a la configuración de tu proyecto y actualiza:
Objetivo (s) | Resumen | Marcos vinculados y bibliotecas | GLKit.framework a Opcional
(en lugar de Requerido ) y luego prueba de nuevo.
Después de hacer este cambio todo parece estar bien para mí ahora.
¡Buena suerte!
Parece que su objetivo principal es vincular a XCTest.framework pero falló.
1) Vaya a Configuración del proyecto -> 2) Vaya al destino principal de su aplicación -> otras banderas enlazadoras 3) elimine ''-framework XCTest'' 4) asegúrese de que el campo ''otras banderas enlazadoras'' para su objetivo de prueba aún contenga ''-framework XCTest ''
2) compruebe Images.xcassets, y otros recursos, en el inspector de archivos (panel derecho), mire ''membresía objetivo'', marque si selecciona el objetivo Tests.
3) intente buscar XCTest en su proyecto y vea lo que ha configurado.
O
Intenta eliminar las pruebas
Tuve el mismo problema y esto sucede cuando estaba ejecutando la aplicación en mi iPhone 6s, y estaba funcionando antes ...
Simplemente vaya a Producto -> Limpiar y vuelva a ejecutarlo de nuevo ...
Espero que esto ayude.
Si está utilizando Cartago, es posible que haya olvidado agregar un marco a "Copiar marcos" Ir a objetivo -> Fases de compilación -> Copiar marcos -> Agregar el marco a la lista.
Tengo el mismo problema con Reachability.framework. Funcionó bien para iPhone 5, pero mientras ejecuta el mismo código para iPhone 7S Plus, muestra el error.
La solución para este problema es: 1. Vaya a General -> Binarios incrustados. 2. Agregue el mismo marco (en mi caso Reachability.framework) 3. Luego, agregue libc ++. Tbd en Linked Frameworks and Libraries.
Espero que funcione para ti.
Si va a la salida de la consola , verá un error que indica qué marco falta en el dispositivo y está causando el problema (como grundyoso dijo en su respuesta).
Para solucionarlo, puede ir a la pestaña General del objetivo y agregar el marco faltante en la sección Binarios incrustados .
Esto copiará el marco a la aplicación para que nunca se pierda en ningún dispositivo.