teléfono saber procesador cómo como cambiar arquitectura ios xcode swift linker upgrade

ios - procesador - como saber si mi android es de 32 o 64 bits



Error del enlazador de Xcode 6-Símbolos indefinidos para la arquitectura armv7 (10)

''Actualizado'' a xcode 6 y la aplicación swift no se construiría para el simulador, pero se construiría bien en un iPad: error de vinculador, símbolos no definidos para i386 para el simulador.

Limpiar la carpeta Biblioteca / Desarrollador / Xcode / DerivedData funcionó para mí.

Después de actualizar a Xcode 6 beta 7 (y ahora todavía con Xcode 6 GM) no puedo vincular mi aplicación Swift. Recibo errores como:

Símbolos no definidos para la arquitectura armv7: "_swift_stdlib_compareNSStringDeterministicUnicodeCollation", referenciado desde:

...

ld: símbolo (s) no encontrado para arquitectura armv7 clang: error: el comando del vinculador falló con el código de salida 1 (use -v para ver la invocación)

He visto otras publicaciones de SO que recomiendan eliminar la carpeta de Datos Derivados y / o usar la opción Limpiar Carpeta de Creación para superar este error, pero esa solución no ayudó en absoluto en mi caso. Nada ha cambiado en mi código o en los CocoaPods que estoy usando desde Xcode 6 beta 5, que es la última vez que funcionó.

¿Algunas ideas?

EDITAR:

Una publicación completa del registro de errores:

Símbolos no definidos para la arquitectura arm64: "_swift_stdlib_compareNSStringDeterministicUnicodeCollation", referenciados a partir de: TFC12MyProject21BarcodeViewController13captureOutputfS0_FTGSQCSo15AVCaptureOutput_24didOutputMetadataObjectsGSQGSaPSs9AnyObject___14fromConnectionGSQCSo19AVCaptureConnection__T_ en BarcodeViewController.o "__TFSs21_arrayConditionalCastU___FGSaQ__GSqGSaQ0_", referenciados a partir de: TFC12MyProject27SessionsTableViewController17viewWillDisappearfS0_FSbT_ en SessionsTableViewController.o "__TFSs15_arrayForceCastU___FGSaQ__GSaQ0", referenciados a partir de: __TFC12MyProject7RestApi12tokenMappingfS0_FT_CSo15RKEntityMapping en RestApi.o __TFC12MyProject28AttendeesTableViewControllerg24fetchedResultsControllerCSo26NSFetchedResultsController en AttendeesTableViewController.o __TFC12MyProject27SessionsTableViewControllerg24fetchedResultsControllerCSo26NSFetchedResultsController en SessionsTableViewController .o __TFC12MyProject21BarcodeViewController13startScanningfS0_FT_Sb en BarcodeViewCont roller.o "__TFSs26_forceBridgeFromObjectiveCU__FTPSs9AnyObject_MQ__Q_", hace referencia a partir de: __TFC12MyProject7RestApi12resetRestKitfS0_FT_T_ en RestApi.o __TFC12MyProject16BluetoothManager17_startAdvertisingfS0_FT_T_ en BluetoothManager.o __TFC12MyProject19LoginViewController32registerForKeyboardNotificationsfS0_FT_T_ en LoginViewController.o __TFC12MyProject19LoginViewController35deregisterFromKeyboardNotificationsfS0_FT_T_ en LoginViewController.o __TFC12MyProject19LoginViewController16callProcessLoginfS0_FT_T_ en LoginViewController.o __TFC12MyProject21CheckinViewController16enableBeaconModefS0_FT_T_ en CheckinViewController.o __TFC12MyProject21BarcodeViewController13startScanningfS0_FT_Sb en BarcodeViewController.o ... LD: símbolo (s) no encontrado para arquitectura arm64 clang: error: el comando del vinculador falló con el código de salida 1 (use -v para ver la invocación)


1) Me enfrento al mismo problema, pero simplemente borro las aplicaciones de los datos derivados de User/Library/Developer/Xcode/DerivedData y puedo ejecutar el código.

2) En su caso, se ejecutará eliminando la arquitectura armv7 de la configuración de compilación. Y asegúrese de que su compilador sea el Compilador predeterminado en Configuración de compilación.

Gracias, espero que esto sea útil para usted y para todos.


Esto parece deberse (para la mayoría) al vincular una biblioteca de terceros que no admite la arquitectura solicitada.


He actualizado en Yosemite, Xcode 6.1. He actualizado gema xcodeproj (0.19.4) y cocoapods (0.34.4).

He resuelto mi conflicto por:

Borrar la biblioteca / Desarrollador / Xcode / DerivedData folder

Reemplace en Destino -> Configuraciones de compilación -> Vinculación -> Otros indicadores de vinculador: $ (OTHER_LDFLAGS)

Check en Target -> Build Phases -> Copy Pods Resources: "$ {SRCROOT} / Pods / Target Support Files / Pods / Pods-resources.sh"


Lo que sucede aquí no tiene nada que ver con su ubicación de Datos Derivados.

Cuando se construye una aplicación Swift, pasa por varios pasos:

  • Escribir archivos auxiliares

  • Crear estructura de producto

  • Compilar fuente rápida para cada arquitectura

  • Copiar reglas de recursos plist

  • Copiar encabezado de aplicación de puente

  • Enlace contra las bibliotecas de tiempo de ejecución de Swift para cada arquitectura

  • Copiar módulo swift de aplicación para cada arquitectura.

  • Crea la aplicación binaria.

  • Copie la fase de compilación de los recursos.

  • Copie las bibliotecas estándar de Swift en la aplicación

  • Empaquetarlo

  • Firmarlo

¡Uf! Eso es mucho. Su compilación está fallando cuando se enlaza con las bibliotecas de tiempo de ejecución de Swift. Viven en Toolchains/XcodeDefault.xctoolchain/usr/lib/swift/iphoneos dentro del directorio de desarrolladores de Xcode. Específicamente, la biblioteca que no se está enlazando correctamente es libswiftCore.dylib . Si usa nm en esa biblioteca, puede ver que define su primer símbolo faltante:

quellish% nm /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/lib/swift/iphoneos/libswiftCore.dylib | grep compareNSStringDeterministicUnicodeCollation 00197c8c T _swift_stdlib_compareNSStringDeterministicUnicodeCollation 000000000018352c T _swift_stdlib_compareNSStringDeterministicUnicodeCollation

También puedes usar lipo para ver qué arquitecturas hay en el archivo:

quellish% xcrun lipo -info /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/lib/swift/iphoneos/libswiftCore.dylib Architectures in the fat file: /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/lib/swift/iphoneos/libswiftCore.dylib are: armv7 arm64

Contiene armv7 y arm64. No es la arquitectura de la biblioteca el problema.

La vinculación con la biblioteca estándar de Swift no está funcionando. Es posible que el control de origen o la migración de las versiones de Xcode hayan hecho que el archivo de su proyecto deje de lado parte del paso de vinculación, o simplemente no pueda encontrar las bibliotecas con las que se debe vincular. Los archivos de proyecto de Xcode son complejos y utilizan muchas referencias: es posible que una fusión, etc., haya provocado que una referencia crítica se separe del paso de vinculación. Sin un registro de compilación completo y una mirada a su máquina, puede que no sea posible decirlo.

Esta biblioteca, como puede suponer, no tiene nada que ver con la ubicación de los datos derivados del proyecto.

Desafortunadamente, la mejor manera de avanzar sería recrear el archivo del proyecto. Comparar el registro de compilación del proyecto roto con un proyecto veloz que sí se construye correctamente puede proporcionar algunas ideas, pero también puede ser una pérdida de tiempo: algo solucionable puede ser el problema, pero probablemente no.

Le animo a presentar un error e incluir el archivo de proyecto problemático con él.


Parece que hay un error en Xcode 6.0.1 que está causando que el vinculador elimine las dependencias en los archivos de proyecto existentes. He tenido este mismo problema en varios proyectos diferentes, nuevos y antiguos, desde la actualización 6.0.1.

El ''arreglo'' fácil es simplemente destruir todos sus ''Datos Derribados'' y todos los archivos de compilación (es decir, limpiar el proyecto manualmente) y luego reconstruir después de un reinicio nuevo de Xcode. Mágicamente, el enlazador ahora encuentra todas las arquitecturas / símbolos que faltan.

NOTA: He tenido varios bloqueos de v-table incompatibles causados ​​por este mismo error. El enlazador de C ++ parece estar generando enlaces incompletos, causando errores absurdos donde no se encuentran errores reales . Una vez más, simplemente reconstrúyalo desde un estado limpio y .. ta da ... ahórrese MUCHO dolor de cabeza y una pérdida de tiempo buscando un problema.


Resolví este problema después de intentar todo lo que se sugirió aquí sin suerte. Como alguien dijo antes, es un problema de SourceControl.

Falta uno de mis archivos de proyecto (el que se menciona en el mensaje de error) en el navegador del proyecto. Sin embargo, XCode aún tenía una referencia a él (estaba yendo a la definición de clase cuando seleccionaba "saltar a definición" desde la GUI de Xcode).

De hecho, el proyecto.pbxproj no lo estaba listando. Este fue probablemente un problema de Git. En cualquier caso, acabo de recrear el archivo en el mismo directorio en el que se ha recreado y listo.


Resolví mi problema al eliminar todos los datos en la carpeta ~/Library/Developer/Xcode/DerivedData . Leí sobre eso en otro hilo, ¡pero lo ignoré pensando que una limpieza incluía ese proceso!


Soy una gran apasionada de iOS Objective C, aunque llevo muchos años codificando en otros idiomas. Así que estoy acuchillando en la oscuridad la mayor parte del tiempo con el Objetivo C.

Comencé a tener este error, "Símbolos no definidos para la arquitectura armv7", directamente después de declarar algunas variables "globales" en mi archivo .h, como así:

extern NSString *globalNotes; extern NSString *globalUserCountry;

Entonces me estaba refiriendo a estas variables del archivo .m así:

globalNotes= @"Error (Marker 1010)"; globalUserCountry= @"No result";

EL ARREGLO - Para corregir esto, los cambié a las propiedades del objeto así:

@property(nonatomic, strong, readwrite) NSString *globalNotes; @property(nonatomic, strong, readwrite) NSString *globalUserCountry;

Y se refirió a ellos como tal:

self.globalNotes= @"Error (Marker 1010)"; self.globalUserCountry= @"No result";

Eso pareció arreglar mi problema.


Tuve un problema similar (un error del enlazador del marco de Apple). Resultó que el problema era que faltaba la biblioteca LocalAuthentication.framework. Me pregunto si tal vez necesite eliminar Foundation.framework de la pestaña Build Phase (en la sección Link Libraries) y luego volver a agregarlo. Tal vez eso resuelva el problema?