2011-03-23 15 views
8

Estoy parcheando una aplicación de iOS 4.2 a 4.3 usando la nueva xcode4. ¡Sin cambios realizados, excepto configuración de iOS a 4.3, he creado los derechos y listo!Símbolos no definidos para la arquitectura armv6, Actualización a iOS 4.3

mensaje que recibo es:

Undefined symbols for architecture armv6:"function", referenced from: 

He intentado limpiar el proyecto, volver a instalar Xcode. Desinstalé también la versión demo de xcode4. También intenté configurar Optimized armv7.

Estaría muy feliz por algo de ayuda, estoy atascado. De Verdad.

¡Muchas gracias de antemano!

+0

¿De dónde se hizo referencia a 'function'? ¿Hay algo que se vea raro en el archivo al que se hace referencia? – sarnold

+0

Intente agregar el i386 en Arquitectura válida en Destinos y configuración de compilación de proyectos – Hanuman

+1

Incluya el texto completo del error. –

Respuesta

10

Para este tipo de error, esto es lo que normalmente veo:

Undefined symbols for architecture armv6: 
    "_OBJC_CLASS_$_MyCustomController", referenced from: 
     objc-class-ref in SomeOtherController.o 
ld: symbol(s) not found for architecture armv6 

Casi cada vez que veo este error es causado por personajes invisibles ocultos/en la declaración de importación en SomeOtherController.h o SomeOtherController.m. Por lo tanto, mirar a ambos su archivo .h y .m, encontrar la línea que tiene este aspecto:

#import "MyCustomController.h" 

Eliminar esta línea y vuelva a escribirla (no copiar/pegar - vas a pegar cualquier infractor la personaje oculto).

+3

También me encontré con este problema exacto cuando no estaba incluyendo algunos archivos en el objetivo de compilación específico. – raidfive

+3

@raidfive: ¡GRACIAS! Estaba teniendo este mismo problema, y ​​fue causado porque por alguna razón Xcode en su infinita sabiduría decidió no colocar los archivos .m para un par de clases en la sección de compilar fuentes de mi objetivo. Los agregó manualmente y compiló bien. –

+0

@Answerbot Gracias por su solución, pero no funciona para mí. Obtuve un error como este Símbolos indefinidos para la arquitectura armv6: "_OBJC_CLASS _ $ _ CLLocationManager", a la que se hace referencia desde: objc-class-ref en MyCLController.o .. Necesito resolverlo urgentemente .. También he eliminado ese archivo heder #import < CoreLocation/CoreLocation.h> .. – Vivek2012

8

Haga clic en el nombre de su proyecto en la ventana de navegación, elija el objetivo contra el que está construyendo, vaya a las fases de construcción, asegúrese de que el Xcode que le dice que falta está allí.

0

Tuve este problema y lo acabo de resolver. Fue un simple error tipográfico en el nombre de la función (se olvidó una letra) que causó el problema en mi caso.

12

Así es como llegué a este problema:

he añadido un .h, .m y la SEMILLA de otro proyecto arrastrándolos a mi proyecto navegador. Xcode no los agregó a Build Fases correctamente.

Mi solución para este problema:

enter image description here

  • Haga clic en el icono Proyecto
  • Ir al objetivo en el menú del navegador
  • Haga clic en la pestaña "Build Phases"
  • Agregue el archivo .m a "Compilar orígenes" (arrástrelo o utilice el botón +)
  • Añadir el archivo .xib o Storyboard "copiar recursos de paquete"
  • limpieza y construcción
1

que tenía el mismo problema en Xcode5 para iOS7 con el SDK TestFlight. Mi problema era que 'Build Active Architecture Only' estaba configurado para Depurar solamente.

Puede encontrar la configuración en 'YourProject' -> 'Configuraciones de compilación' -> 'Arquitecturas' Establezca la opción 'Liberar' en 'Sí'.

Esto resolvió mi problema - ¡Espero que te ayude también! :)

0

Tuve el mismo problema en Xcode5 para iOS7 con TestFlight SDK. Mi problema era que 'Build Active Architecture Only' estaba configurado para Depurar solamente.

Puede encontrar la configuración en 'YourProject' -> 'Configuración de compilación' -> 'Arquitecturas' Configure la opción 'Depurar' en 'architecure arm7 arms7s'.

Esto resolvió mi problema - ¡Espero que te ayude también! :)

0

tuve un problema similar apareciendo en marcha de repente todo - más específicamente, que estaba recibiendo Undefined symbols for architecture armv6: "_OBJC_CLASS_$_CLLocationManager", referenced from: objc-class-ref in MyCLController.o

Nota que había CoreLocation.framework que aparece en mis marcos (en Xcode' Proyecto de navegación izquierda, bajo los marcos carpeta); y anteriormente tenía geolocalización funcionando bien.

Me deshice del problema volviendo a instalar CoreLocation.framework.

Si no está seguro de cómo hacer que en Xcode:
* haga clic en su proyecto en Xcode dejó de barra de navegación
* Ir en la pestaña General de la configuración del proyecto
* Vaya hacia abajo - se le la lista de los marcos instalados bajo Linked Frameworks and Libraries
* Haga clic en el icono para añadir el + CoreLocation.framework

0

en mi caso, yo estaba haciendo esto en un viewcontroller.m

#import <MediaPlayer/MediaPlayer.h> 

Sin hacer enlace binario con bibliotecas con MediaPlayer.framework. Después de agregarlo, compiló bien

Cuestiones relacionadas