x86_64 the showing react only normal myapp for following failed errors emulator duplicate commands app all _objc_class_ _cdvlogger ios objective-c xcode linker-errors

ios - the - showing all errors only ld 2 duplicate symbols for architecture x86_64



Símbolos duplicados para arquitectura arm64 (20)

A partir de los errores, parece que FacebookSDK.framework ya incluye las clases Bolts.framework. Intente eliminar los Bolts.framework adicionales del proyecto.

Cuando intento ejecutar mi proyecto Xcode, falla con un error que indica que tengo símbolos duplicados. Busqué en línea dónde encontrar estos duplicados pero no he tenido suerte:

Alguna idea de cómo solucionar este problema?


A partir de los errores, parecería que cualquier clase aparece varias veces. Busque y elimine las clases que funcionará.

Estoy creando el archivo AppDelegate.h y .m creando varias veces. Entonces, este error ocurrirá. Finalmente, encuentre y elimine esas clases, está funcionando bien para mí.


Al actualizar a Xcode 8, recibí un mensaje para actualizar a la configuración recomendada. Acepté y todo fue actualizado. Empecé a tener problemas de tiempo de compilación:

Símbolo duplicado para XXXX Símbolo duplicado para XXXX Símbolo duplicado para XXXX

Un total de 143 errores. Fue a Target-> Build settings -> No Common Blocks -> Configúrelo en NO. Esto resolvió el problema. El problema era que los proyectos integrados tenían bloques de código en común y, por lo tanto, no podían compilarlo. La explicación se puede encontrar aquí .


Al usar Xcode 8, la opción "Actualizar proyecto a la configuración recomendada" se activó ''No hay bloques comunes'' para mi proyecto.

Al volver a apagarlo, todo se solucionó.


Bueno, algunas veces al usar SDK como FB o Bibliotecas como Vuforia o GoogleAnalytics, agregar proyectos de muestra puede causar el problema de que ya están incluyendo Frameworks y así, por lo que debe asegurarse de no repetir los símbolos que agregue manualmente mientras ya están incluido en muestras


Debajo de Patch funciona para mí .. :)

Step 1: Go to TARGETS -> Build Settings -> No Common Blocks -> No Step 2: Go to TARGETS -> Build Settings -> enable testability -> No

¡Establecerlo de nuevo en NO resolvió el problema!


El problema para mí fue que había incluido manualmente un marco pero luego también incluí ese mismo marco en CocoaPods sin saber que lo hice. Una vez que eliminé uno u otro, el problema desapareció


En mi caso la razón fue demasiado estúpida:

Tenía un archivo Constant.h donde tenía definidas macros. Pensé en hacer NSString allí. e hizo esto:

NSString const *kGreenColor = @"#00C34E";

esto causó el problema de Duplicar Símbolos para Arquitectura arm64 y el comando Linker falló con el código de salida 1. Eliminar la línea constante NSString funcionó para mí.


Este error ocurre cuando Linker intenta vincular los archivos obj. Algunas razones que podría pensar para este error son:

  1. La función / clase duplicada se define en dos lugares / archivos diferentes en el proyecto y se suponía que solo uno de ellos compilaría para cualquier variación del comando de compilación. Pero de alguna manera ambos archivos se compilaron en su proyecto. Por lo tanto, debe verificar sus condiciones if-else u otras dependencias que agreguen archivos src a la lista de archivos que deben compilarse y eliminen el archivo innecesario para su comando de compilación particular.

  2. La función / clase duplicada se define accidentalmente en dos lugares / archivos diferentes en el proyecto. Eliminar la definición incorrecta.

  3. Limpie su directorio OBJ antes de volver a compilar, podría haber algunos archivos obj antiguos de sus compilaciones anteriores que podrían estar causando este conflicto.

PD: no soy un experto, pero así es como resolví este problema cuando lo enfrenté. :)


He estropeado mis pods al degradar un pod y he logrado resolver el problema con símbolos duplicados para arquitectura arm64 quitando los pods e instalándolos nuevamente con:

pod deintegrate pod install


Otra solución es:

Seleccione Proyecto -> Destino -> Fase de compilación -> Compilar fuente -> busque el archivo que se menciona en la tercera línea de último error (en su caso BFAppLinkReturnToRefererView.o ).

Luego verá 1 o 2 archivos en el resultado de búsqueda.

Retire uno de ellos y compile nuevamente . Debería volver a compilarse ahora porque solo queda un archivo y no hay más conflictos para la compilación.

Si eso no funciona, el archivo probablemente tenga errores y debe eliminarlos todos y luego volver a compilarlos. Debería funcionar de nuevo.


Para mí fue que importé un archivo como un .m no un .h por error



Para mí, creé un método llamado sampleMethod en ViewController_A y creé el mismo método en ViewController_B también, me causó este error, luego cambié el nombre del método en ViewController_B a secondSampleMethod . Se solucionó el error.

Parece una buena característica para reducir el código y no duplicar el mismo código en muchos lugares.

Intenté cambiar los bloques No comunes de Sí a No y luego habilité la capacidad de prueba de Sí a No. No funcionó. Verifiqué archivos duplicados también en las fases de compilación, pero no hay archivos duplicados.


Para mí, el problema era el estilo de creación de const, que funcionó bien hasta este iOS8. Tenía algunas líneas como:

int const kView_LayoutCount = 3;

en mi archivo .h. Seis líneas como resultaron en 636 archivos de enlace una vez que los bloques comunes se establecieron en NO. (14k + si es SÍ) Se movieron las líneas a .m después de quitar .h de la declaración de valor y la compilación fue buena.

Espero que esto ayude a otros!


Recibí este problema porque estaba perezosamente definiendo una variable en mi .m fuera de un método, luego en otro archivo .m estaba definiendo otra variable con el mismo nombre fuera de un método. Esto estaba causando un problema duplicado de nombre de variable global.


Recientemente tuve este error cuando tuve estos dos marcadores en una clase Swift:

@objcMembers @objc(MySwiftClass)

Eliminarlos eliminó el error.


Si se está mudando a Xcode 7 u 8 y está abriendo un proyecto realmente antiguo, he encontrado este problema:

en SomeConstFile.h

NSString * const kAConstant;

en SomeConstFile.m

NSString *const kAConstant = @"a constant";

Las versiones anteriores del compilador suponían que la definición en el archivo de encabezado era externa y, por lo tanto, incluir SomeConstFile.h por todos lados estaba bien.

Ahora debe declarar explícitamente estos consts como externos:

en SomeConstFile.h

extern NSString * const kAConstant;


para resolver este problema, vaya a Fases de compilación y busque archivos duplicados como (facebookSDK, unityads) y elimine (archivo de extensión .o) y luego vuelva a compilar.


revise su archivo de inclusión, tuve este problema porque accidentalmente # importé "filename.m" en lugar de "filename.h", la autocorrección (tabulación) puso una "m", no "h".