ios - एक्सकोड 5.1-किसी भी आर्किटेक्चर के लिए संकलित करने के लिए(ONLY_ACTIVE_ARCH=हाँ, सक्रिय आर्क=x86_64, VALID_ARCHS=i386)




xcode xcode5.1 (12)

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

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

ये मेरी लक्ष्य निर्माण सेटिंग्स हैं:

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


"पॉड इंस्टॉल" होने से बचने के लिए प्रत्येक बार चलाए जाने पर डीबग के लिए केवल_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

Acrhiecture में - कभी-कभी 6.0 और 7.0 का समर्थन करने के लिए, हम arm64 exlude

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


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


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

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

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


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

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


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


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

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


मेरी समस्या यह थी कि Pods परियोजना platform :ios होने के बावजूद, Pods प्रोजेक्ट ओएस एक्स को लक्षित कर रहा 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

मैंने @ Kjuly के उत्तर और विशिष्ट पंक्ति का उपयोग करके इस समस्या को हल किया:

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

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

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

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

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


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

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

इसी प्रकार, अपने आवेदन प्रोजेक्ट के लिए नंबर पर बदलें।


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





xcode5.1