2015-09-18 10 views
12

मैं कुछ समय से अपने आईओएस ऐप में ड्रॉपबॉक्स कोर एपीआई का उपयोग कर रहा हूं।एक्सकोड 7 + ड्रॉपबॉक्स कोर एपीआई: बस बिटकोड अक्षम करें?

ld: '.../Frameworks/Dropbox/iOS/DropboxSDK.framework/DropboxSDK' does not contain bitcode. 
You must rebuild it with bitcode enabled (Xcode setting ENABLE_BITCODE), obtain an updated 
library from the vendor, or disable bitcode for this target. 

मुझे पता है कि Bitcode है और क्या यह के लिए अच्छा है: जब मैं अपने प्रोजेक्ट को संकलित करने की कोशिश Xcode से 7 अद्यतन करने के बाद मैं निम्न त्रुटि प्राप्त किया। लक्ष्य सेटिंग में Enable Bitcode विकल्प No पर बस सेटिंग को हल करके हल किया जा सकता है। इसके बाद सबकुछ बिना किसी त्रुटि के संकलित करता है और ऐप बिना किसी समस्या के चलाता है।

अब तक इतना अच्छा है, लेकिन क्या यह "सही" समाधान है? मैंने एसडीके के एक अद्यतन संस्करण के लिए ड्रॉपबॉक्स पेज की जांच की, लेकिन मैं पहले से ही नवीनतम संस्करण का उपयोग कर रहा हूं।

इस परियोजना में ऐप विजेट, वॉच एक्सटेंशन इत्यादि के लिए कुछ अन्य लक्ष्य शामिल हैं जो ड्रॉपबॉक्स एसडीके का उपयोग नहीं करते हैं। Enable Bitcode के लिए क्या विकल्प यहां उपयोग किया जाना चाहिए? क्या है (किसी कारण से) सभी लक्ष्यों के लिए एक ही मूल्य (No मेरे मामले में बेहतर) का उपयोग करें? क्या मुख्य ऐप लक्ष्य बिटकोड का उपयोग नहीं करता है, तो यह घड़ी और विजेट लक्ष्यों के लिए बिटकोड सक्षम करने के लिए कोई समझ में आता है?

यहां सबसे अच्छा अभ्यास क्या है?

+0

यह [1] [1] व्यापक रूप से इसी तरह के प्रश्न में किया गया है। [1]: http: // stackoverflow।कॉम/प्रश्न/30722606/क्या-करता-सक्षम-बिटकोड-डू-इन-एक्सकोड -7 – Carl

+0

@ करल धन्यवाद, लेकिन आपके द्वारा लिंक किए गए प्रश्न/उत्तर में मूल रूप से वर्णन किया गया है कि बिटकोड क्या है और इसके लिए इसका क्या उपयोग किया जाता है। यहां मेरे प्रश्न के साथ लगभग कुछ भी नहीं है। जैसा कि मैंने कहा, मुझे अच्छी तरह से पता है कि बिटकोड क्या है और यह विकल्प एक्सकोड 7 में क्यों सक्षम है। जैसा कि मैंने कहा था कि मुझे पता है कि इस विकल्प को कैसे अक्षम किया जाए और ऐसा करने के बाद, सबकुछ ठीक काम करता है। प्रश्न यह है: क्या यह सही समाधान है? –

+0

मैं कहूंगा कि जब भी आप ड्रॉपबॉक्स की लाइब्रेरी से लिंक कर रहे हों तो आपके पास सबसे अच्छा समाधान उपलब्ध होगा। आप ऐप्पल को ऐप ऑप्टिमाइज़ेशन के उप-समूह को लागू करने से रोक रहे हैं जो एक उपवास लोडिंग ऐप (उदाहरण के लिए) प्रदान कर सकता है लेकिन इसकी आवश्यकता है। अगर ऐप्पल बिटकोड को अनिवार्य बनाता है तो यह केवल "गलत" समाधान बन जाएगा, लेकिन कोई उम्मीद करेगा कि ड्रॉपबॉक्स प्रतिक्रिया में एक अद्यतन लाइब्रेरी का जवाब देगा। – Carl

उत्तर

2

के बाद से मैं इस सवाल का मैं बस विकल्प लक्ष्य Build Settings में No को Enable Bitcode तैयार किया, जबकि विजेट और एप्पल घड़ी लक्ष्यों में Yes का उपयोग कर पूछा। यह ठीक काम करता था और मुझे कोई समस्या या सीमाएं नहीं मिलीं।

अब मैंने ऐप स्टोर में अपने ऐप का एक नया संस्करण जारी करने का प्रयास किया और मैंने ऐप्पल को ऐप फ़ाइल अपलोड करते समय चेक बॉक्स Include Bitcode देखा। जब इस चेक बॉक्स सक्षम किया गया है मैं निम्न त्रुटि प्राप्त:

Invalid Match-O Format. The Match-O bundle "MyApp.app/PlugIns/MyApp WatchKit Extension.appex" isn't consistent with the Match-O in the main bundle.

The main bundle Match-O contains armv7(machine code) and arm64(machine code), while the nested bundle Match-O contains armv7(bitcode and machine code) and arm64(bitcode and machine code).

Varify that all of the targets for a platform have a consistent value for the ENABLE_BITCODE build setting.

मुझे पता नहीं क्यों यह अब एक समस्या है, जबकि अन्य सभी संस्करण मैं पिछले वर्ष के दौरान अपलोड किसी भी समस्या के बिना पारित कर दिया है। हालांकि समस्या को Include Bitcode चेक बॉक्स अन-चेक करके आसानी से हल किया जा सकता है। अपलोड को तब बिना किसी समस्या के स्वीकार किया जाता है।

लेकिन एक बेहतर समाधान है: जैसा कि ग्रेग ने बताया, ड्रॉपबॉक्स ने आखिरकार एसडीके के बिटकोड सक्षम संस्करण को जारी किया!

डाउनलोड new SDK 1.3.14, अपनी परियोजना में शामिल है और सभी लक्ष्यों के लिए Yes करने के लिए ENABLE_BITCODE निर्धारित करते हैं, और आप कर रहे हैं। कम से कम जब तक ऐप्पल को आपके रिलीज़ वर्कफ़्लो को परेशान करने का कोई नया तरीका नहीं मिलता है :-)

5

ऐसा लगता है कि उन्होंने एक बिटकोड समर्थित API जारी नहीं किया है। आधिकारिक ड्रॉपबॉक्स मंचों पर Here is the link to the thread जिसमें ड्रॉपबॉक्स से एक सहायक व्यक्ति शामिल है जो इस संदर्भ में अन्य डेवलपर्स प्रश्नों का उत्तर देता है।

यहाँ ड्रॉपबॉक्स समर्थन व्यक्ति से प्रासंगिक प्रतिक्रिया है:

Oh, great! We haven't released an update to the iOS Core SDK with bitcode, but if you need bitcode support for the Core SDK, you can add the source directly, since it's open source. There's a thread about this for the Core SDK here: https://www.dropboxforum.com/hc/en-us/community/posts/204352929-Need-Bitcode-Framework

+1

संदर्भ के लिए, अब ड्रॉपकोड आईओएस कोर एसडीके की एक नई रिलीज बिटकोड के साथ बनाई गई है: https://www.dropbox.com/developers-v1/core/sdks/ios – Greg

संबंधित मुद्दे