दिलचस्प पोस्ट
जावा कचरा कलेक्टर – यह कब एकत्र करता है? एंड्रॉइड लॉलीपॉप टूलबार: स्क्रॉल करते समय उपकरण पट्टी को छुपाने / दिखाने के लिए कैसे? शब्द और अवधारणा के अर्थ को समझना – आरएआईआई (संसाधन अधिग्रहण प्रारंभ है) JSONException: java.lang.String प्रकार का मान JSONObject में परिवर्तित नहीं किया जा सकता है विधानसभा विधानसभा, विधानसभा के बीच अंतर क्या है विधानसभा और विधानसभाविवरण संस्करण? जुड़ा हुआ नोड के ग्राफ़ का प्रतिनिधित्व करने वाले पेड़ को कैसे खींचना है? बड़े स्थानिक स्तरों पर ए * एल्गोरिथ्म को गति कैसे करें? दो वर्षों में महीने के आखिरी दिन का अनुक्रम जनरेट करें कैसे TensorFlow में एक Tensor वस्तु के मूल्य को मुद्रित करने के लिए? क्यों एक सही शैल लिपि एक लिपटे / तुंटित / भ्रष्ट त्रुटि संदेश देगी? एंड्रॉइड में कॉल कैसे रोकें क्रोम: पृष्ठभूमि टैब में समय समाप्ति / अंतराल निलंबित? यूनिकोड में चीनी अक्षरों के लिए पूरी रेंज क्या है? Codeigniter त्रुटि संदेशों के बजाय रिक्त पृष्ठ प्रदर्शित करता है नए तत्वों को जोड़ने के लिए क्या उप-वर्गीकृत किया जा सकता है?

Xcode 5.1 – के लिए संकलित करने के लिए कोई आर्किटेक्चर (ONLY_ACTIVE_ARCH = हाँ, सक्रिय arch = x86_64, VALID_ARCHS = i386)

Xcode 5.1 में अद्यतन करने के बाद, मैं अब 64-बिट सिम्युलेटर के लिए मेरा प्रोजेक्ट नहीं बना सकता, इस त्रुटि को प्राप्त कर रहा है:

No architectures to compile for (ONLY_ACTIVE_ARCH=YES, active arch=x86_64, VALID_ARCHS=i386). 

ये मेरी लक्षित बिल्ड सेटिंग हैं:

Xcode लक्ष्य बिल्ड सेटिंग्स

मैंने "सक्रिय सक्रियण बनाएँ" बदलने की कोशिश की, साथ ही साथ "मान्य आर्किटेक्चर" में "i386" जोड़ना दुर्भाग्य से न तो काम किया। किसी भी सुझाव के लिए धन्यवाद!

वेब के समाधान से एकत्रित समाधान "Xcode 5.1 – के लिए संकलित करने के लिए कोई आर्किटेक्चर (ONLY_ACTIVE_ARCH = हाँ, सक्रिय arch = x86_64, VALID_ARCHS = i386)"

XCode 5.1 में अपग्रेड करने के बाद मेरे पास एक ही त्रुटि संदेश था। क्या आप कोकोपोड्स का प्रयोग कर रहे हैं? यदि हां, तो इस समस्या को ठीक करना चाहिए:

  1. Xcode के दाएं फलक में कार्यस्थान से "पॉड्स" प्रोजेक्ट को हटा दें और Xcode बंद करें।
  2. "पॉड्स" प्रोजेक्ट को पुनः बनाने के लिए कमांड लाइन से "पॉड इंस्टॉल" चलाएं।
  3. Xcode को फिर से खोलें और सुनिश्चित करें कि "केवल सक्रिय आर्किटेक्चर बनाएँ" को "पॉड्स" प्रोजेक्ट और अपनी स्वयं की परियोजना दोनों की बिल्ड सेटिंग्स में "नहीं" पर सेट किया गया है।
  4. स्वच्छ और निर्माण

आपको क्या करने की आवश्यकता है केवल ONLY_ACTIVE_ARCH को NO (कम से कम मेरे लिए काम करता है) सेट कर ONLY_ACTIVE_ARCH है। नीचे इसके लिए एक स्क्रीनशॉट है:


संपादित करें:

जहाँ तक मुझे पता है ( यदि कुछ गलत है, तो कृपया इसे बताएं), यदि आपने ONLY_ACTIVE_ARCH को YES सेट किया है, तो इसका मतलब है कि Xcode केवल सक्रिय आर्किटेक्चर के लिए बनाएगा (जो उस डिवाइस को संदर्भ देता है जो वर्तमान में एक्सोड में सक्रिय है)। लगता है कि Xcode की डिफ़ॉल्ट सेटिंग को YES डीबग सेट किया गया है, इसलिए यह अन्य आर्किटेक्चर के लिए बायनेरिज़ का निर्माण नहीं करेगा, जब आप केवल अपने मैक से जुड़े विशेष डिवाइस के लिए बनाना चाहते हैं।

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

  • एआरएमवी 8 / एआरएम 64: iPhone 6 , iPhone 5s , iPad Air , Retina iPad Mini
  • एआरएमवी iPhone 5 एस: iPhone 5 , iPhone 5c , iPad 4
  • एआरएम 7: iPhone 3GS , iPhone 4 , iPhone 4S , iPod 3G/4G/5G , iPad , iPad 2 , iPad 3 , iPad Mini
  • एआरएमवी 6: iPhone , iPhone 3G , iPod 1G/2G

तो " क्यों NO ONLY_ACTIVE_ARCH को NO " काम करता है? क्योंकि उपकरण अभी भी आपके द्वारा जोड़े गए सभी आर्किटेक्चर (बिल्डर को पास) के लिए बनाया गया बाइनरी चला सकता है, लेकिन कुछ प्रदर्शन खो देंगे यह सिर्फ एक त्वरित समाधान है, लेकिन सर्वोत्तम नहीं है


नोट : आपके द्वारा जोड़े गए अधिक आर्किटेक्चर, बड़ी द्विआधारी उत्पन्न हो जाएगी इसलिए आपकी परियोजना के लिए सही आर्किटेक्चर चुनना अच्छा है। 😉

लक्ष्य के valid architectures के लिए arm64 जोड़ें ऐसा लगता है कि यह सिम्युलेटर मान्य आर्किटेक्चर के लिए x86-64 आर्किटेक्चर को भी जोड़ता है।

यदि आप कोकोपोड्स का प्रयोग कर रहे हैं, तो सबसे अधिक संभावना यह समस्या है क्योंकि आपकी पॉड प्रोजेक्ट बिल्ड सेट एक्टिव आर्किटेक्चर के लिए सेट है केवल डिबग के लिए हाँ पर सेट है

समाधान सरल है इसे नंबर पर बदलें

इसी तरह, आपके आवेदन परियोजना के लिए नंबर पर बदलें।

मेरे पास इसी तरह का मुद्दा था इसे "आर्किटेक्चर" को " $ (ARCHS_STANDARD_32_BIT) " को बिल्डर सेटिंग्स फॉर प्रोजेक्ट में बदलकर हल किया गया।

अब, आपको मानक आर्किटेक्चर (armv7, arm64) – $ (ARCHS_STANDARD) का चयन करना होगा क्योंकि सेब ने 64-बिट वास्तुकला पर ऐप्स बनाने की सिफारिश की है। क्लिक करें: एप्पल दस्तावेज़

जोड़ें: आर्किटेक्चर: $ (ARCHS_STANDARD_INCLUDING_64_BIT)

मान्य आर्किटेक्चर: आर्म 64 armv7 armv7s

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

"Pod install" होने से बचने के लिए हर बार डिबग के लिए डीबग के लिए only_active_arch रीसेट करें, आप अपनी पॉड फाइल में निम्नलिखित को जोड़ सकते हैं

 # Append to your Podfile post_install do |installer_representation| installer_representation.project.targets.each do |target| target.build_configurations.each do |config| config.build_settings['ONLY_ACTIVE_ARCH'] = 'NO' end end end 

सिर्फ वैध आर्किटेक्चर में arm64 जोड़ें। I आशा है कि यह आपके लिए काम करेगा।

मेरी समस्या यह थी कि पॉड प्रोजेक्ट ओएस एक्स को लक्षित कर रहा था, इसके बावजूद मेरी पॉडफ़ाइल platform :ios । मैं cocoapods 0.35.0.rc2 का उपयोग कर रहा हूँ।

इसे ठीक करने के लिए, प्रोजेक्ट नेविगेटर में पॉड प्रोजेक्ट का चयन करें, और जांचें कि पॉडस प्रोजैक्ट नोड (ध्यान दें, पॉड का लक्ष्य नहीं है) आईओएस को लक्षित कर रहा है यही है, आर्किटेक्चर बिल्ड सेटिंग्स होना चाहिए:

  • आर्किटेक्चर: $(ARCHS_STANDARD)
  • बेस एसडीके: iOS 8.1
  • समर्थित प्लेटफार्म: iOS
  • मान्य आर्किटेक्चर: $(ARCHS_STANDARD)

मैं भी सभी आर्किटेक्चर का निर्माण करना चाहता था, इसलिए मैंने निम्नलिखित को पॉडफ़ाइल में जोड़ा:

 post_install do | installer | installer.project.build_configurations.each do |config| config.build_settings['ONLY_ACTIVE_ARCH'] = 'NO' end end 

मुझे Valid Architectures लिए निम्न i386 और x86_64 जोड़ना पड़ा। मैं Xcode 7.2 चला रहा हूं और आईओएस 8 + को लक्षित करता हूं। मेरे पास पहले से ही armv7 , armv7s और arm64 था और वह 6.4 में Xcode में काम कर रहा था।

मैं Xcode 7.2 में सिम्युलेटर के लिए कमांड लाइन बिल्ड के साथ एक समस्या के कारण इस प्रश्न पर पहुंचा। यदि किसी और को एक ही मुद्दे के साथ यहां मिल जाता है, तो मैं उस समाधान को साझा करूंगा जो मैंने पाया:

जाहिरा तौर पर Xcode 7.2 में एक बग है जो कि सिम्युलेटर के लिए बनाने की कोशिश करते समय xcodebuild को विफल कर देता है। समाधान विकल्प "-निष्करण" को निर्दिष्ट करना है, जैसे:

 xcodebuild -project TestBuildCmd.xcodeproj -scheme TestBuildCmd -sdk iphonesimulator -destination 'platform=iOS Simulator,name=iPhone 6' build 

अद्यतन करें

उपरोक्त उदाहरण के आदेश केवल 6 iPhone के लिए ग्राफिक्स सहित एक द्विपदीय का निर्माण होगा। अगर द्विआधारी दूसरे सिमुलेटर पर चलते हैं, तो आईफोन 6 ग्राफिक्स प्लेटफ़ॉर्म से बढ़ाया जाता है। एक बेहतर समाधान जिसमें सभी प्लेटफ़ॉर्म के लिए सभी ग्राफ़िक्स शामिल हैं, PLATFORM_NAME=iphonesimulator पैरामीटर को निर्दिष्ट करना है, उदाहरण के लिए:

 xcodebuild -project TestBuildCmd.xcodeproj -scheme TestBuildCmd -sdk iphonesimulator -arch i386 PLATFORM_NAME=iphonesimulator build 

एक्सकोड 5.1 पर आईपैड पर अपना ऐप चलाते समय मुझे एक ही समस्या का सामना करना पड़ा। यह 'मान्य आर्किटेक्चर' से armv7s को निकालने और 'सक्रिय सक्रिय आर्किटेक्चर' केवल मूल्य के लिए सेट करके हल किया गया। ये दोनों फ़ील्ड आपके ऐप-> लक्ष्य-> बिल्ड सेटिंग्स-> आर्किटेक्चर में मिल सकते हैं।

सभी पिछले आर्किटेक्चर को हटाने का प्रयास करें (यानी ARCHS_STANDARD सेटिंग को निकालना) उसी समय के रूप में आप i386 आर्किटेक्चर में जोड़ें। यह सक्रिय आर्किटेक्चर को i386 में बदलना चाहिए। जब मैंने डिफ़ॉल्ट रूप से armv7 के निर्माण की कोशिश की तो मुझे एक समान समस्या का सामना करना पड़ा, लेकिन यह arm64 के लिए बनाने की कोशिश कर रहा था। मैंने ARCHS_STANDARD को ARCHS_STANDARD_32_BIT में बदल दिया, और इसने चयनित सक्रिय आर्किटेक्चर को बदल दिया।

Acrheecture में – कभी-कभी 6.0 और 7.0 का समर्थन करने के लिए, हम arm64 का विस्तार करते हैं

आर्किटेक्चर में -> एक्रिचाटेक्चर – मानक वास्तुकला का चयन करें arm64 armv7 armv7s मान्य acrchitecture में बस नीचे उपयोगकर्ता arm64 armv7 armv7s शामिल है। यह मेरे लिए काम किया

मैंने Kjuly के जवाब और विशिष्ट पंक्ति का उपयोग करते हुए इस समस्या का समाधान किया:

"इसका कारण बनना असफल हो सकता है, यह परियोजना आपके द्वारा जुड़ा हुआ डिवाइस के आर्किटेक्चर का समर्थन नहीं करता है।"

एक्सकोड लोड होने पर आईपैड एयर के लिए यह स्वचालित रूप से मेरा iPad ऐप सेट कर दिया

यहां छवि विवरण दर्ज करें

इससे निर्भरता विश्लेषण त्रुटि हुई है

डिवाइस प्रकार को बदलने से तुरंत समस्या हल हो गई:

यहां छवि विवरण दर्ज करें

मैं यह नहीं जानता कि यह काम क्यों करता है लेकिन यह बहुत जल्दी जवाब है जो मुझे पृष्ठभूमि में बहुत सारी नग्नता से बचा था और तुरन्त ऐप को परीक्षण करने के लिए काम करता था। मैंने कभी नहीं सोचा होगा कि यह एक चीज हो सकती है और ऐसा कुछ बहुत आसान हो सकता है, लेकिन इस मामले में यह किया।

मैंने पाया कि हाथों से वास्तुकला नाम दर्ज करना आवश्यक था:

यहां छवि विवरण दर्ज करें

मैं नहीं जानता कि यह क्यों आवश्यक था, यानी ये मान Xcode से ही इन विरासतों को क्यों नहीं मिला। लेकिन जैसे ही मैंने यह किया, समस्या दूर चली गई।

मान्य आर्किटेक्चर में: प्रत्येक एंट्री (रिहाई, डिबग) का चयन करें और बैकस्पेस का निर्माण और दबाएं। यह काम करना चाहिए