Símbolos indefinidos para la architecture x86_64 en Xcode 6.1

De repente, Xcode me lanzó este error en el momento de la comstackción:

Undefined symbols for architecture x86_64: "_OBJC_CLASS_$_Format", referenced from: objc-class-ref in WOExerciseListViewController.o ld: symbol(s) not found for architecture x86_64 clang: error: linker command failed with exit code 1 (use -v to see invocation) 

Después de investigar un poco, puedo entender que una biblioteca que estoy usando no es compatible con la versión de 64 bits. Pero esto es muy extraño ya que he estado trabajando con las mismas bibliotecas durante al menos una semana sin tener un solo problema de comstackción durante ese tiempo. Las dos bibliotecas están compuestas por varias clases, y cuando las eliminé de mi proyecto, tuve el mismo problema. Como nunca he creado bibliotecas, no tengo idea de cómo puedo saber si las que estoy usando son compatibles con 64 bits (?). También intenté los siguientes cambios para architectures en el panel de destino:

  • añadido $ (ARCHS_STANDARD_INCLUDING_64_BIT) a las Arquitecturas
  • construir architecture activa solamente -> establecer en ‘NO’
  • para ‘architectures válidas’ -> configurado para armar64, armv7 y armv7s
  • eliminó la carpeta DerivedData y su contenido, limpió y compiló de nuevo

Pero ninguno de estos cambios funciona. Por favor, alguien tiene una pista sobre esto? Gracias

Aparentemente, su clase “Formato” está involucrada en el problema. Verifique su statement de esta clase, especialmente si lo hizo dentro de otra clase, probablemente haya olvidado la @implementation o algo similar.

Compruebe si ese archivo está incluido en Fases de comstackción -> Fuentes comstackdas

Asegúrese de que WOExerciseListViewController es un miembro de destino; eso funcionó para mí!

enter image description here

Sí, creo que la biblioteca que está utilizando no es compatible con la versión de 64 bits, pero puede resolver el problema:

Simplemente vaya a Configuración de comstackción> Arquitecturas y reemplace $(ARCHS_STANDARD) en $(ARCHS_STANDARD_32_BIT)

Para que tu xcode construya tu proyecto con la versión compatible de 32 bits.

Acabo de tener este error cuando abrí un proyecto (bastante) viejo, creado en Xcode 4 ~ ish, en Xcode 6.4. Mientras que los Frameworks vinculados eran visibles en la barra lateral del Proyecto, pasé por alto que no existían bibliotecas vinculadas en la pestaña Fases de Build Target . Una vez que lo arreglé, compiló bien.

Simplemente no estaba vinculando las bibliotecas en la sección “Enlace binario con bibliotecas”.

Resolví el mismo problema yendo a Xcode Build Settings y en Architectures, cambié la architecture estándar de Xcode 6.1.1 a: –

$ (ARCHS_STANDARD_32_BIT)

Resultó que olvidé escribir mi parte @implementation .

El mismo error cuando copié / pegué una clase y olvidé cambiarle el nombre en el archivo .m.

Resolví el problema borrando la referencia al archivo y volviéndolo a agregar en el proyecto. En mi caso, funciona.

Acabo de tener exactamente el mismo error, y lo resolví reiniciando xcode.

Para mí, el problema ocurrió después de una actualización svn, el archivo en cuestión se agregó a la carpeta de proyectos, pero nunca apareció en xcode (9.3.1) – hasta que lo reinicié.

esta configuración funcionó para mí:

  • Arquitecturas = $ (ARCHS_STANDARD_32_BIT)
  • Crear architecture activa solamente: SÍ
  • Arquitecturas válidas armv6 armv7 armv7s arm64

Elimine $(ARCHS_STANDARD) y agregue $(ARCHS_STANDARD_32_BIT) .

enter image description here