चेतावनी "मैपिंग आर्म आर्म 64 से x86_64" का क्या अर्थ है?


95

मेरे ढांचे को Xcode 10 बीटा (10L176w) में स्थानांतरित करने के बाद मुझे चेतावनी मिलनी शुरू हुई:

मानचित्रण आर्किटेक्चर arm64 से x86_64 तक। सुनिश्चित करें कि यह लक्ष्य आर्किटेक्चर और मान्य आर्किटेक्चर बिल्ड सेटिंग्स iOS सिम्युलेटर प्लेटफॉर्म के लिए सही तरीके से कॉन्फ़िगर किया गया है।

... तथा:

मानचित्रण वास्तुकला armv7 से i386 तक। सुनिश्चित करें कि यह लक्ष्य आर्किटेक्चर और मान्य आर्किटेक्चर बिल्ड सेटिंग्स iOS सिम्युलेटर प्लेटफॉर्म के लिए सही तरीके से कॉन्फ़िगर किया गया है।

इन चेतावनियों के बावजूद बिल्ड और यूनिट परीक्षण सभी पास ठीक हैं। मैं स्विफ्ट 4.2 का उपयोग कर रहा हूं।

फिर भी, इन चेतावनियों के बारे में क्या है?


मैं इसे देख रहा हूँ जब सेटिंग केवल 64 बिट का उपयोग करने की कोशिश कर रहा है ARCHS = $(ARCHS_STANDARD_64_BIT)औरVALID_ARCHS = $(inherited) x86_64 i386
Kdawgwilk

जवाबों:


101

बिल्ड सेटिंग्स पर जाएं और नीचे दिखाए अनुसार करें

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


5
मैं पुष्टि करता हूं, यह मेरे लिए काम करता है - मुझे नहीं पता कि क्यों, लेकिन उन सेटिंग्स को प्रोजेक्ट और लक्ष्य बिल्ड सेटिंग्स दोनों पर बोल्ड में हाइलाइट किया गया था। फिर मुझे ऊपर बताए अनुसार हटा दिया गया (दोनों स्थानों पर!), और इसने बोल्ड हाइलाइट हटा दिया (डिफॉल्ट्स में वापस आ गया, जाहिर है), और चेतावनियाँ निकल
गईं

23
बस स्पष्ट करने के लिए, यह परियोजना और लक्ष्य दोनों पर होना चाहिए।
पलमी

2
अच्छा जवाब, मैं इस समाधान के लिए प्रस्ताव है।
हीदर सती

8
जब मैंने इसे डिलीट कर दिया, तो रिज़ॉल्यूशन में कुछ भी नहीं दिखा और मुझे मिलाThere are no valid architectures to compile for because the VALID_ARCHS build setting is an empty list
क्रिस्टल

2
लगता है अब और काम नहीं करेगा। मुझे एक ही समस्या हो रही है क्रिस्टल Xcode 11 बीटा 6 के साथ रिपोर्ट कर रहा है। @ जॉन का जवाब मेरे लिए काम करता है
Fabian Streitel

69

मैं इन चेतावनियों को अपने वैलिड आर्किटेक्चर की सेटिंग में बदलकर चुप करा पा रहा था $(ARCHS_STANDARD)जिससे मेरी आर्किटेक्चर सेटिंग भी मेल खाती है ।

अजीब तरह से, यह armv7 arm64(डिफ़ॉल्ट सेटिंग की तुलना में armv7 armv7s arm64) के रूप में प्रदर्शित होता है , लेकिन इसे उस मूल्य पर मैन्युअल रूप से सेट करना अभी भी चेतावनी का कारण बना। यह निश्चित नहीं है कि इसका क्या महत्व है, लेकिन मैंने अभी तक अपने परीक्षण में कोई समस्या नहीं देखी है।


2
इस सेटिंग ने मेरे लिए iOS और macOS दोनों को लक्षित करने वाले "सार्वभौमिक" ढांचे के लिए काम किया।
जॉन

1
यही मेरा समाधान था। मैं प्रोजेक्ट और टारगेट्स में मान्य आर्किटेक्चर: $ (ARCHS_STANDARD) सेट करता हूं। धन्यवाद।
CGN

2
@CGN आपने प्रोजेक्ट में कैसे सेट किया है? मैं लक्ष्य के लिए सफलतापूर्वक सेट।
एरूम

@ विदेश: नीचे 2 स्क्रीनशॉट देखें
CGN

27

आपके पास निश्चित रूप से लक्ष्य के लिए या इसके प्रोजेक्ट के लिए वैध रूप से निर्माण की वैधता वाले VALID_ARCHS ("वैध आर्किटेक्चर") हैं। यह एक बिल्ड सेटिंग है जिसका मूल्य आपको स्वतः प्राप्त होना चाहिए कि आप किस रन डेस्टिनेशन पर आधारित हैं। जब आप यह पता लगा लें कि यह ओवरराइड कहां से आ रहा है (ओवरराइड होने पर बिल्ड सेटिंग बोल्ड में प्रदर्शित होगी), इसे चुनें और इसे डिफ़ॉल्ट मूल्य पर पुनर्स्थापित करने के लिए डिलीट की को हिट करें।


1
मैं भी इस त्रुटि को देखता हूं। मैंने सेटिंग्स को ओवरराइड नहीं किया है VALID_ARCHS। इसमें arm64डिबग और रिलीज़ दोनों शामिल हैं ।
funkenstrahlen

10
यह Xcode 10 में एक बग प्रतीत होता है। फिर भी डिफ़ॉल्ट सेटिंग्स के साथ होता है
Kdawgwilk

5
यह लेकिन अभी भी Xcode 10 के रिलीज संस्करण के साथ दिखाई दे रहा है। किसी को भी इस पर कोई अद्यतन है?
प्लाविसे

1
me2, मैं सिर्फ इस बारे में
गुगली कर रहा

2
मुझे अपनी सभी उप परियोजनाओं और लक्ष्यों पर जाने और VALID_ARCHSइसे डिफ़ॉल्ट रूप से सेट करने के लिए हटाने और फिर साफ करने और फिर से खोलने / बंद करने के लिए फिर से पूरी तरह से काम करने के लिए मेरे लिए चाहिए
manman

16

चेतावनी की रिपोर्ट करने वाले लक्ष्य के लिए, "मान्य आर्किटेक्चर" सेटिंग को इसमें बदलें:

$(VALID_ARCHS)
x86_64

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


यकीन के लिए सबसे अच्छा जवाब!
Supertecnoboff

8

अन्य उत्तरों के समान, मैं $(VALID_ARCHS)(मान्य आर्किटेक्चर) को बदलकर चेतावनी को हटाने में सक्षम था $(ARCHS_STANDARD)। वहां से, मैंने सभी व्युत्पन्न डेटा को मंजूरी दे दी और Xcode 10.0 को फिर से शुरू किया। इससे चेतावनी पूरी तरह से चली गई। मान्य आर्किटेक्चर से सबकुछ हटा देने से बस एक अलग चेतावनी दिखाई देती है ("कोई वैध आर्किटेक्चर नहीं मिला")।


1

समाधान सरल है: मान्य आर्किटेक्चर में x86_64 के साथ केवल arm64 को बदलें

मेरी परियोजना में इसी तरह की समस्या और निम्नलिखित तीन चेतावनियाँ थीं: इसी तरह की समस्या थी और मेरी परियोजना में निम्नलिखित चेतावनी थी

मूल रूप से मेरे मान्य आर्कटक्चर थे माई ** वैलिड आर्किटेकचर ** मूल रूप से थे

की जगह:

  • i386 के साथ armv7,
  • i386 के साथ armv7s,
  • और, x86_64 के साथ arm64

(जैसा कि चेतावनी में उल्लेख किया गया है) मेरा समाधान था। मान्य वास्तुकला सेटिंग में परिणाम था:

I386 के साथ armv7 की जगह, i386 के साथ armv7, और, x86_64 के साथ arm64 के रूप में चेतावनी में उल्लिखित मेरा समाधान था

प्रतिस्थापन के बाद ऊपर मेरी तीन चेतावनी गायब हो गई।

आर्किटेक्चर के बारे में अधिक गहन जानकारी यहां पाई जा सकती है: https://docs.elementscompiler.com/Platforms/Cocoa/CpuArchitectures/

मुझे लगता है कि Xcode में इस चेतावनी का सूत्रीकरण थोड़ा भ्रम है।


1

यदि आप स्पंदन में समस्या का सामना कर रहे हैं:

  1. पॉडफाइल, पॉडफाइल.लॉक, पॉड्स फोल्डर, रनर.न्यूवर्कवर्कस्पेस, फ्लटर.फ्रेमवर्क को डिलीट करें।

  2. भागो flutter clean

  3. भागो flutter build ios

0

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


वर्तमान Xcode पर यह विकल्प मौजूद नहीं है।
JBarros35

@ lambdapool आप कौन सा विकल्प नहीं देख रहे हैं? क्या यह "मान्य आर्किटेक्चर" / "VALID_ARCHS" है?
जौलीफुल

0

मुझे यह हल करने का सबसे आसान तरीका मिला कि मैं अपने टेक्स्ट एडिटर में प्रोजेक्ट को खोलूं, फिर सभी VALID_ARCHSलाइनों को खोजकर हटा दूं ।


0

मेरे द्वारा भी यही समस्या का सामना किया जा रहा है। रिज़ॉल्यूशन के लिए, मैंने अभी मानक से लेगेसी तक बिल्ड सिस्टम को बदल दिया है और इस मुद्दे को हल किया है।


0

मैंने अपनी रूपरेखा बनाते हुए उसी चेतावनी को देखा है। कुछ समय के बाद इन मान्य आर्किटेक्चर वैल्यू में डिवाइसों के प्रकार के आधार पर भिन्नता होती है, भले ही बिल्ड सेटिंग्स में मूल्यों की परवाह किए बिना।

Real devices-> arm64 
Simulator devices ->x86-64

-2

अगर आपकी [निर्माण सेटिंग्स] armv7 armv7s arm64 है, तो कृपया armv7s हटाएं। चेतावनी रद्द कर दी जाएगी।


यह सिर्फ armv7 के बारे में नहीं है, यह एक सामान्य मुद्दा है और आपका सुझाव आगे देखने के लिए नहीं है
amok
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.