2011-12-07 17 views
6

मुझे फेसबुक के एसडीके के साथ सभी प्रकार की बिल्ड त्रुटियां मिल रही हैं क्योंकि मेरा ऐप एआरसी का उपयोग करता है। मैं इस से बचने के लिए संकलक से फेसबुक फ़ाइलों को हटाने की कोशिश करता हूं, लेकिन जब मैं Facebook.एम फ़ाइल को हटाता हूं तो मुझे ऐप्पल मैच-ओ त्रुटि मिलती है। अगर मैं इसे वापस संकलित स्रोतों में डालता हूं, तो मुझे एआरसी त्रुटियां मिलती हैं।आईफोन एआरसी और फेसबुक एसडीके

कोई भी इसमें भाग लेता है?

+0

आपने इस मुद्दे को कैसे दूर किया? मैंने -nono-objc-arc जोड़ने का प्रयास किया लेकिन मुझे अभी भी एक त्रुटि हुई है http://stackoverflow.com/questions/8701780/using-non-arc-code-in-an-arc-enabled-project-adding-facebook – Illep

उत्तर

9

क्या आप उन्हें कंपाइलर ध्वज -fno-objc-arc के साथ आर्क से बहिष्कृत करते हैं? आप एक जवाब here

5

देख सकते हैं और यह कारण है कि नकल से किसी साझा लाइब्रेरी वितरण और फ़ाइलों को चिपकाने बुरा है। एक लाइब्रेरी को अपनी खुद की एक्सकोड परियोजनाओं के रूप में एक स्थिर लाइब्रेरी लक्ष्य के साथ वितरित किया जाना चाहिए, ताकि आपकी परियोजनाओं की निर्माण सेटिंग और आपके द्वारा उपयोग की जाने वाली पुस्तकालयों में एक या दूसरे को पेंच नहीं किया जा सके।

फ़ाइल फेसबुक एसडीके यहाँ के लिए एक बग: https://github.com/facebook/facebook-ios-sdk/issues

और मतलब समय में फेसबुक एसडीके में कार्यान्वयन फ़ाइलों को -fno-objc-arc झंडा जोड़ें। आप इसे कर सकते हैं;

  1. टैब
  2. संकलित सूत्रों का कहना है धारा के तहत प्रत्येक फ़ाइल के लिए जोड़े के चरण के निर्माण के लिए अपने आवेदन लक्ष्य का चयन करें
  3. जाओ।
+0

जो कि प्रत्येक के लिए बहुत कुछ है। यदि आप एकाधिक फाइलों का चयन करते हैं और एंटर दबाते हैं तो आप उन सभी पर -fno-objc-arc सेट कर सकते हैं। –

0

वास्तव में फेसबुक आईओएस एसडीके एआरसी के साथ संगत बनाने के लिए बहुत कम बदलाव हैं। मैंने अपने कोड में बदलाव किए हैं, लेकिन, मुझे नहीं पता कि इसे वापस समुदाय को कौन भेजना है, कोई संकेतक?

यहाँ एक पोस्ट मैं कैसे Xcode 4.2 पर आसान तरीका एआरसी के साथ इसका इस्तेमाल करने की व्याख्या करने के लिए किया जाता है: http://nabtech.wordpress.com/2012/02/02/facebook-ios-sdk-and-arc/

+0

क्या आपके लिए फेसबुक आईओएस एसडीके के अपने संस्करण को ईमेल करना संभव होगा, मैं दिनों के लिए इसी तरह के मुद्दे से अटक गया हूं। [email protected] – Illep

+1

मुझे वास्तव में एक और तरीका मिला जो मैंने यहां पोस्ट किया था। जब एसडीके समेत, इसे प्रोजेक्ट फ़ाइल के साथ शामिल करें लेकिन लक्ष्य में जोड़ने की जांच न करें। फिर आप प्रोजेक्ट को एसडीके को स्थिर लाइब्रेरी के रूप में जोड़ते हैं। इस तरह आप एआरसी के बिना एसडीके संकलित कर सकते हैं लेकिन बिना किसी समस्या के आपके कोड को। – nabulaer

2

नया SDK स्पष्ट रूप से बॉक्स से बाहर एआरसी का समर्थन नहीं करता है, लेकिन वहाँ एक खोल शेयरों पर आधारित है एक स्थिर पुस्तकालय बनाने के लिए जिसका उपयोग आपके एआरसी परियोजना के भीतर किया जा सकता है। बस अपने स्थानीय Git रेपो पर जाएँ और चलाने

% ~/facebook-ios-sdk/scripts/build_facebook_ios_sdk_static_lib.sh 

यह/lib/फेसबुक-ios-एसडीके फ़ोल्डर के अंतर्गत स्थिर पुस्तकालय का निर्माण करेगा (उदाहरण के लिए ~/फेसबुक-ios-sdk/lib/फेसबुक-ios-sdk)। फिर आप आईओएस फेसबुक एसडीके स्थिर पुस्तकालय को शामिल करने के लिए ऐप एक्सकोड प्रोजेक्ट में फेसबुक-आईओएस-एसडीके फ़ोल्डर खींच सकते हैं।

+0

सहायक एआरसी का वर्णन फेसबुक के अपने एसडीके पृष्ठ पर किया गया है: http://developers.facebook.com/docs/mobile/ios/build/ – djskinner