Red de conocimiento informático - Aprendizaje de programación - ¿Qué hacer si hay errores de compilación de iOS?

¿Qué hacer si hay errores de compilación de iOS?

1. Al compilar el iPad real, elegí Architetures: Standard(armv6) BaseSDK: iPhoneDevice3.2 TargetDeviceFamily: iPad.

Si se produce el siguiente error durante la compilación:

Command / Developer/Platforms/iPhoneOS.platform/Developer/usr/bin/gcc-4.2 falló con el código de salida 1

Modifique ComplieForThumb en el área GCC4.2 CodeGeneral para que sea incompatible.

Con el certificado de desarrollador y la clave privada, puedes depurar directamente en tu teléfono con jailbreak.

2. Enlace de compilación, "_OBJC_CLASS_$_xxx", citado en: Es posible que necesite volver a crear un archivo de clase.

Alternativa: seleccione el nombre del proyecto y seleccione o vuelva a seleccionar el archivo en la columna Destino (que se muestra como un círculo) en la lista detallada. Agréguelo al objetivo.

3. Se informa un error de que "captureCount" no está declarado en este ámbito en SDK4.0 y versiones posteriores al usar RegexKitLite, que es la razón para usarlo en archivos que no son .m.

4. Sin SDK con nombre o ruta.

Cuando abrí el código fuente desde Internet, este error a menudo ocurría durante la ejecución y no había ninguna opción de destino de implementación de iOS durante la implementación.

Pruebe los elementos de menú Proyecto/Editar destino activo/ y Establecer SDK activo, y cambie entre Configuración activa.

5.

5.Los errores EXEC_BAD_ACCESS, EXC_BAD_INSTRUCTION significan que la aplicación tiene un problema de administración de memoria.

Los fallos relacionados con la memoria suelen ser difíciles de encontrar en el código fuente porque es posible que el diablo haya hecho algo malo al principio del programa. Si un fragmento de código problemático altera la estructura de la memoria, es posible que el efecto mariposa no aparezca hasta mucho más tarde, siempre en un lugar diferente. Entonces, si el tipo de puntero cambia en el improbable caso de que suceda, lo más probable es que se deba a que la estructura de la memoria se estropeó debido a una llamada de puntero salvaje.

Corregir algunas advertencias puede evitar ciertos errores de memoria. El triángulo amarillo a la izquierda cerca del número de línea apunta a una advertencia de compilación. Si hace clic en el triángulo amarillo, Xcode puede mostrar una sugerencia de "corrección".

Los bloqueos de EXC_BAD_ACCESS, a diferencia de SIGABRT, no muestran un mensaje de error explícito. Sin embargo, podemos usar una herramienta de depuración que puede mostrar mensajes: ¡Zombies! Abra el editor de escenarios para este proyecto, seleccione la opción Ejecutar y luego seleccione la pestaña Diagnóstico. Marque la opción Habilitar objetos zombies. Cuando la herramienta zombie está habilitada, la memoria del objeto no se limpiará incluso si se libera el objeto. Por tanto, este recuerdo quedará marcado como recuerdo "inmortal". Si intenta utilizar esa memoria más tarde, la aplicación se dará cuenta de su error y generará un error de "mensaje enviado a una instancia no asignada" y finalizará la aplicación.

Agregue la variable de entorno NSZombieEnabled al proyecto y configúrela como habilitada, de modo que cuando aparezca EXC_BAD_ACCESS, la consola XCode imprima la descripción del problema. El método de configuración es: haga doble clic en Ejecutables debajo del módulo ejecutable. , y en la ventana emergente de Variables que se configurarán en el entorno, agregue NSZombieEnabled y configúrelo en SÍ, haga clic en la casilla de verificación para habilitar esta variable.

Puedes agregar MallocStackLogging para habilitar el registro de malloc y obtener más consejos que te ayuden a localizar el problema.

En la ventana gdb, escriba (formato: shell? malloc_history lt; idgt; ? lt; Addressgt;) ? malloc_history lt; ; idgt; Comandos de Shell como ?lt;addressgt;

Estas variables de entorno solo deben configurarse cuando se requiere depurar memoria.

Nota: Los objetos zombies no siempre deben estar habilitados, ya que la herramienta nunca liberará la memoria, solo los marcará como inmortal y eventualmente te quedarás sin memoria en algún momento porque no se asignó ninguna memoria. se reutiliza. Por lo tanto, debe habilitar los objetos zombies sólo cuando solucione errores relacionados con la memoria y desactivarlos en cualquier otro momento.

En xcode4, para editar variables de entorno, vaya al menú Productos/Editar esquema..., primero seleccione la configuración deseada en la barra lateral izquierda (es posible que desee "Ejecutar"), luego haga clic en Haga clic en Pestaña "Parámetros".

6. Al ejecutar el programa de iPhone, aparecerá una ventana que muestra "El programa no se pudo ejecutar y el archivo de descripción preestablecido ha caducado". Como solución alternativa, en Xcode, window-gt; Orgnazier -gt; your iphone -gt; elimina el perfil anterior del programa con un *. Luego ejecute el programa desde Xcode.

7. Error de firma de código: la identidad no coincide con ningún par de certificado/clave privada válido en el llavero predeterminado

Firme el código en get info\build del proyecto y cambie el destino. identidad a la identidad de firma del código y cambie la identidad de firma del código en el proyecto y el destino a vacío

8. Impresión de depuración

CFShow(coreFoundationThingy) imprimirá la descripción de coreFoundationThingy en la consola. El resultado es el siguiente {value = w: 1186.000000 h: 687.000000 type = kAXValueCGSizeType}

Si NSLog() imprime algo como NSCFType, intente CFShow().

9. El compilador informa que el comando /Developer/Platforms/iPhoneSimulator.platform/Developer/usr/bin/clang falló con un código de salida de 1. Cambie la versión del compilador C/C a gcc4. 2

10.Esta clase no es compatible con la codificación de valores clave para el viewController clave

Es posible que el controlador de vista generado se elimine después de crear el proyecto basado en vistas, pero en . xib Todavía hay una referencia a él, simplemente elimínelo con eliminar en IB.

11. Ya existe un archivo de configuración previa llamado "embedded.mobileprovision" en esta computadora. ¿Quieres reemplazarlo?

/s/blog_6907b67f0100o2vw.html

12. Los tiempos reales de depuración de la máquina no pudieron cargar *.app

/CBE6B7E7_1989/blog/item/ 9649f49f805f05aec8eaf466.html

http://www.shouyanwang.org/thread-462-1-1.html

13. ¿Recuerda establecerlo en cero al liberar al delegado?

Un nodo no debe contener referencias a nodos que no le pertenecen.

14. Simulador

Después de actualizar xcode a 4.3.1, descubrí que el simulador del iPad ya no tiene un botón de inicio. Command Shift H puede lograr un efecto similar a hacer clic en el botón de inicio.