2012-09-28 17 views
9

तक पहुंचने पर क्रैश हो गया है मेरे पास एक एआरसी () ऐप है जो एक स्थिर लाइब्रेरी (एआरसी) बनाता है। एप्लिकेशन ठीक शुभारंभ करेंगे, लेकिन जब एक कार्रवाई है कि पढ़ता है या स्थिर पुस्तकालय में एक @property को लिखते किया जाता है अनुप्रयोग इस त्रुटि के साथ दुर्घटना होगा:एआरसी ऐप @property फॉर्म एआरसी स्थिर 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 

सभी सलाह गैर एआरसी पुस्तकालयों को जोड़ने के बारे में किया गया है एआरसी ऐप्स (या इसके विपरीत) के लिए। लेकिन ये दोनों एआरसी हैं।

उत्तर

32

एप्लिकेशन की Base SDK iOS 6 और iOS Deployment Target स्थापित किया गया था लेकिन स्थिर पुस्तकालय के लिए आईओएस 5.0 करने के लिए स्थापित किया गया था दोनों Base SDK & iOS Deployment Target आईओएस के लिए स्थापित किए गए 6.

यकीन है कि बनाना Base SDK & iOS Deployment Target अनुप्रयोग में मेल खाते हैं और पुस्तकालय ने इस समस्या को हल किया।

+1

सभी भागों को मैच बनाने के बारे में अच्छा बिंदु। जब तक आप उपलब्ध होने पर आईओएस 6 सुविधाओं का समर्थन करने की योजना नहीं बनाते (और बड़े परीक्षण सिरदर्द पर लेते हैं, और अतिरिक्त फीचर-डिटेक्शन कोड आवश्यक है), मैं भी उसी चीज (आईओएस 5) में बेस एसडीके और आईओएस परिनियोजन लक्ष्य निर्धारित करने की सलाह देता हूं। ऐप्पल के आधिकारिक बयान के बावजूद कि आपको हमेशा नवीनतम एसडीके के खिलाफ लिंक करना चाहिए, डब्ल्यूडब्ल्यूडीसी में एक्सकोड टीम ने सहमति व्यक्त की कि वह दृष्टिकोण बहुत नाजुक है क्योंकि जब आप असमर्थित सुविधाओं का गलत इस्तेमाल करते हैं तो संकलक आपको कोई चेतावनी नहीं देता है। –

+0

सुपर - मेरे कई स्थिर libs में से एक यह मुद्दा था - इसे अभी तय करें - धन्यवाद। – Ramesh

+0

स्थिर पुस्तकालय के लिए आप 'बेस एसडीके' और 'आईओएस परिनियोजन लक्ष्य' कैसे बदलते हैं? – fredley