2012-09-28 23 views
9

Statik bir kütüphane (ayrıca ARC) oluşturan bir ARC () uygulamasına sahibim. Uygulamanın ince başlatacak ancak bir eylem okur veya statik kütüphanede bir @ özellik yazıyor o yapıldığında uygulaması bu hata ile kilitlenmesine:ARC Uygulaması @property formuna erişirken çöküyor 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 

Tüm danışma olmayan ARC kütüphaneleri bağlama hakkında olmuştur ARC Apps'a (veya tersine). Ama bunlar hem ARC.

cevap

32

uygulaması en Base SDK iOS 6 ve iOS Deployment Target olarak ayarlandı ancak statik kütüphane için iOS 5.0 olarak ayarlandı hem Base SDK & iOS Deployment Target 6.

emin olma iOS'a kuruldu app eşleşti Base SDK & iOS Deployment Target ve Kütüphane bu sorunu çözdü.

+1

Tüm parçaları eşleştirmenin iyi tarafı. Kullanılabilir olduğunda iOS 6 özelliklerini desteklemediğiniz sürece (ve büyük test baş ağrısını ve ekstra özellik algılama kodunu kullanmanız gerekir), aynı zamanda Temel SDK ve iOS Dağıtım Hedefini de ayarlamamı öneririz (bu durumda iOS 5). Apple'ın en son SDK ile her zaman bağlantı kuracağına dair resmi açıklamasına rağmen, WWDC'deki Xcode ekibi, desteklenmeyen özellikleri yanlış kullandığınızda derleyici size uyarı vermediği için bu yaklaşımın çok kırılgan olduğunu kabul etti. –

+0

süper - birçok statik lib'mdan biri bu sorunu yaşadı - şimdi düzeltildi - teşekkürler. – Ramesh

+0

Statik kitaplık için “Temel SDK” ve “iOS Dağıtım Hedefi” ni nasıl değiştiriyorsunuz? – fredley