2012-08-30 14 views
6

Estoy usando Resty en todas partes de mi proyecto, pero ahora ya que tengo que subir imágenes al servidor, intento agregar otra estructura llamada RestKit para manejar la carga de archivos. Pero cuando he realizado, se ha obtenido un error:iOS - 2 símbolos duplicados para la arquitectura armv7

duplicate symbol _NewBase64Decode in: 
    /Users/iforests/Library/Developer/Xcode/DerivedData/Owlch-gnysrakcbhsgkubbjjjfbahlocqi/Build/Products/Debug-iphoneos/libRestKit.a(NSData+Base64.o) 
    /Users/iforests/Documents/iOSworkspace/Owlch/LRResty.framework/LRResty(NSData+Base64.o) 
ld: 2 duplicate symbols for architecture armv7 
clang: error: linker command failed with exit code 1 (use -v to see invocation) 

¿Hay alguna manera de resolver este problema sin quitar LRResty (ya que mañana es el último día de este proyecto). ¡Muchas gracias a todos!

+0

Para el beneficio de los demás: Tuve este error después de eliminar algunas clases que ya no necesitaba. Tuve que hacer una limpieza antes de poder compilar nuevamente. – Eric

+0

Pruebe esto: http://stackoverflow.com/a/42089897/3024579 – Alok

Respuesta

4

Elimine estos archivos de la fuente de Resty.

LRResty/Classes/Categories/NSData+Base64.h LRResty/Classes/Categories/NSData+Base64.m

Eso se encargará del problema de enlace.

Si deja de funcionar debido a eso, cambiar el nombre de los archivos y la categoría de NSData + Base 64 en el código Resty y luego en cualquier lugar del resty importaciones de código "NSData + Base64.h", cambie la importación a cualquier cosa que cambie el nombre de la categoría

1

El problema es que ambas bibliotecas están definiendo el mismo método: NewBase64Decode.

De modo que podría modificar el código fuente de cualquier biblioteca y cambiar el nombre del método por algo más parecido a "RKNewBase64Decode". ¡Recuerde realizar cambios en el archivo * .m siempre que se invoque el método NewBase64Decode!

4

También se me ocurrió el mismo error. En general, este tipo de error se produce debido a clases duplicadas y xibs en la carpeta del proyecto. Por ejemplo en mi proyecto tuve estas clases dos veces ServiceRequest.h/.m. Deshazte de los duplicados y estarás listo.

1

Además, he observado que si ha importado estúpidamente un .m, elimine la importación.

4

Sólo tuvimos este problema al importar una nueva biblioteca en un proyecto existente (viejo) - resulta que el problema era la bandera enlazador -all_load que era (por cualquier razón) todavía establecido en las "configuración de generación - Vinculación - Otros Enlazador Flags "en Xcode.

Después de quitar esta bandera todo fue bien.

0

Esto se me ocurrió al importar un marco que contenía una clase con el mismo nombre exacto que había en el proyecto.

Cuestiones relacionadas