2012-09-28 3 views
9

Ich habe eine ARC () App, die eine statische Bibliothek (auch ARC) erstellt. Die App startet gut, aber wenn das eine Aktion ausgeführt wird, liest oder schreibt auf eine @property in der statischen Bibliothek wird die App mit diesem Fehler abstürzen:ARC App stürzt beim Zugriff auf @property ab ARC statische 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 

die alle Ratschläge über die Verknüpfung nicht-ARC-Bibliotheken wurde zu ARC Apps (oder umgekehrt). Aber das sind beide ARK.

Antwort

32

Die Base SDK App wurde auf iOS 6 und iOS Deployment Target wurde auf iOS 5.0 jedoch für die statische Bibliothek sowohl die Base SDK & iOS Deployment Target wurden auf iOS gesetzt 6.

sicher machen die Base SDK & iOS Deployment Target in der App angepasst und Bibliothek löste dieses Problem.

+1

Guter Punkt über die Übereinstimmung aller Teile. Sofern Sie nicht vorhaben, iOS 6-Funktionen zu unterstützen (und die großen Testprobleme und zusätzlichen Feature-Erkennungscode zu berücksichtigen), empfehle ich außerdem, Base SDK und iOS Deployment Target auf dasselbe zu setzen (in diesem Fall iOS 5). Trotz der offiziellen Aussage von Apple, dass Sie immer mit dem neuesten SDK verlinken sollten, stimmte das Xcode-Team bei WWDC zu, dass dieser Ansatz sehr fragil ist, da der Compiler keine Warnungen gibt, wenn Sie nicht unterstützte Funktionen falsch verwenden. –

+0

super - eine meiner vielen statischen Bibliotheken hatte dieses Problem - jetzt behoben - danke. – Ramesh

+0

Wie ändern Sie das "Base SDK" und das "iOS Deployment Target" für die statische Bibliothek? – fredley