2012-09-28 27 views
9

Tengo una aplicación ARC () que crea una biblioteca estática (también ARC). La aplicación va a lanzar bien, pero cuando se lleva a cabo la acción que lee o escribe a un @property en la biblioteca estática de la aplicación va a chocar con este error:ARC App Se bloquea al acceder a @property formulario ARC static lib

dyld: lazy symbol binding failed: Symbol not found: _objc_setProperty_nonatomic 
 Referenced from: /var/mobile/Applications/0E7ADBB4-FFE5-4CEB-B418-8A35A92E99D4/MyApp.app/MyApp 
 Expected in: /usr/lib/libobjc.A.dylib 

dyld: Symbol not found: _objc_setProperty_nonatomic 
 Referenced from: /var/mobile/Applications/0E7ADBB4-FFE5-4CEB-B418-8A35A92E99D4/MyApp.app/MyApp 
 Expected in: /usr/lib/libobjc.A.dylib 

Todos los consejos se ha tratado de vincular las bibliotecas no-ARC a las aplicaciones ARC (o viceversa). Pero estos son ambos ARC.

Respuesta

32

de la aplicación Base SDK se fijó en iOS 6 y iOS Deployment Target se fijó a iOS 5.0 sin embargo para la biblioteca estática tanto el Base SDK & iOS Deployment Target se establecieron para iOS 6.

Asegurarse de que el Base SDK & iOS Deployment Target emparejado en la aplicación y la biblioteca resolvió este problema.

+1

Un buen punto sobre hacer que todas las piezas coincidan. A menos que planee admitir las características de iOS 6 cuando estén disponibles (y asumir los grandes dolores de prueba, y se requiere un código de detección de características adicional), también recomiendo configurar el Base SDK y el iOS Deployment Target para lo mismo (iOS 5 en este caso). A pesar de la declaración oficial de Apple de que siempre debe vincularse con el último SDK, el equipo de Xcode en la WWDC estuvo de acuerdo en que ese enfoque es muy frágil porque el compilador no le da advertencias cuando utiliza funciones no compatibles de forma incorrecta. –

+0

super - una de mis muchas librerías estáticas tenía este problema - lo arreglé ahora - gracias. – Ramesh

+0

¿Cómo se cambia el 'Base SDK' y' iOS Deployment Target' para la biblioteca estática? – fredley