2012-02-19 20 views
10

Acabo de actualizar Xcode a la versión 4.3 a través de Mac App Store la semana pasada, y descubrí que ya no puedo depurar en dispositivos con iOS 3.x. Tengo el iPhone 3G con iOS 3.1.3 y un iPad de primera generación con iOS 3.2.Xcode 4.3 y depuración en dispositivos iOS 3.x

En ambos dispositivos, parece que Xcode 4.3 instala la aplicación e intenta iniciarla. La aplicación muestra la pantalla de bienvenida pero nunca completa el inicio. No hay mensajes de error o mensajes de ningún tipo en la ventana de salida del depurador. Mi única pista es cuando presiono el botón de pausa, puedo ver que el dispositivo/Xcode está atascado en la siguiente función: addimagesToAllImages que parece estar relacionado con el DYLD de Apple.

La depuración funciona bien en dispositivos iOS 5 y funcionó en la instalación anterior de Xcode 4.2. He reiniciado mi Mac, iOS 3.x dispositivos sin ningún cambio en el comportamiento, incluida la limpieza de todos los caché (s).

¿Alguien tiene alguna idea de lo que está pasando? Gracias por la ayuda.

+0

Parece que XCode 4.3 fuerza al compilador a LLVM 3.1 y al depurador de lldb que no es compatible con iOS 3. ¿Ha comprobado que el proyecto todavía se está compilando con LLVM GCC? – bontoJR

+0

Gracias Junior B. Cambié la opción de compilación "Compilador para C/C++/Objective-C" a "LLVM GCC 4.2" y todavía veo el mismo problema. ¿Hay alguna otra configuración que deba cambiar para obtener xcode usando GCC y/o el depurador GDB? –

+1

Ok, lo descubrí con la pista de Junior B sobre el depurador. Fui a "Administrar Esquemas" y seleccioné el Esquema en el que estoy trabajando y pulsé "Editar". En la sección "Ejecutar", cambié el depurador de LLDB a GDB. Ahora la depuración en los dispositivos iOS 3.xy 5.x funciona bien. Además, dejé el compilador en la configuración preferida de xcode 4.3 de LLVM 3.1. –

Respuesta

13

Ok, lo descubrí con la pista de Junior B sobre el depurador. Fui a "Administrar Esquemas" y seleccioné el Esquema en el que estoy trabajando y pulsé "Editar". Debajo de la sección "Ejecutar" cambié el Depurador de LLVM a GDB. Ahora la depuración en los dispositivos iOS 3.xy 5.x funciona bien. Además, dejé el compilador en la configuración preferida de xcode de LLVM 3.1.

Esperemos que esto ayude a alguien más que acepte la configuración recomendada por el asesor de actualización de xcode y sus errores de depuración iOS 3.x.

+0

Increíble: desperdicié un día en esta búsqueda de mi código para descubrir dónde había hecho algo mal. Me estoy cansando de tener que hacer un seguimiento de todos estos pequeños problemas: se supone que las computadoras deben hacer esto por ti. Seguramente Apple podría haber puesto un cheque y haber aparecido una alerta si compila a un dispositivo ios3 advirtiendo que gdb era necesario. Gracias Wesley por la solución. – amergin

1

¿Ha instalado el componente "iOS 3.0 - 3.2.2 Device Debugging Support"?

En la barra de menú, elija Xcode> Preferencias ..., luego en la ventana Preferencias, elija Descargas> Componentes. Busque la línea para el soporte de iOS 3.0 y haga clic en el botón Instalar.

+0

Hola Rob, gracias por la respuesta. Sí, iOS 3.0 - 3.2.2 Soporte de depuración de dispositivos está instalado. Solo por patear, instalé 4.0 Device Debugging Support también sin cambios en el comportamiento. –

-2

Hai mydear Amigos,

I am having one simple solution as follows: 

"Xcode -> Preferencias -> Depurador -> comprobar la consola Borrado automático de depuración" resultados borra la consola cada vez que se ejecuta la aplicación sólo

0

cambiar de LLDB a GDB no fue suficiente para mí cuando tuve el mismo problema. Como tenía un compromiso de trabajo anterior en git, descubrí qué cambios en la configuración del proyecto de Xcode permitían en mi caso el error. De este modo pude resolver el problema mediante la eliminación de todas las apariciones de la siguiente línea de mi PROJECT.xcodeproj $/project.pbxproj

GCC_THUMB_SUPPORT = NO; 

Además, yo invertí el valor de

LastUpgradeCheck = 0430; 

de nuevo a

LastUpgradeCheck = 0420; 

Como tengo mis esquemas configurados para ser 'Compartidos', estos ajustes también se almacenan en el directorio del proyecto (subdirectorio 'xcshareddata' en el directorio del proyecto .xcodeproj), y así también cambia v isible en git. Otro cambio que invertí fueron la eliminación de estas dos líneas en '$ PROJECT.xcodeproj/xcshareddata/xcschemes/$ PROJECT.xcscheme':

LastUpgradeVersion = "0430" 
ignoresPersistentStateOnLaunch = "NO" 

otro cambio en el archivo .xcsheme eran que los valores de 'selectedDebuggerIdentifier' y ' selected LauncherIdentifier 'finalizó con' .GDB 'en lugar de'.LLDB ', pero en realidad es lo mismo que obtendrás siguiendo la respuesta aceptada de Wesley.

Esos cambios resolvieron para mí el problema, y ​​pude depurar de nuevo en mi iPhone Classic ejecutándose en iOS 3.1.3.

Sin embargo, recomiendo encarecidamente el uso de un sistema de control de versiones como Git (o al menos una copia de seguridad local) antes de aplicar estas modificaciones con su editor de texto favorito.

Cuestiones relacionadas