IOS सिम्युलेटर परिनियोजन लक्ष्य 7.0 पर सेट है, लेकिन इस प्लेटफ़ॉर्म के लिए समर्थित परिनियोजन लक्ष्य संस्करण की सीमा 8.0 से 12.1 है


169

मुझे अपने Xcode 10.1 में यह चेतावनी संदेश नीचे मिल रहा है।

IOS सिम्युलेटर परिनियोजन लक्ष्य 7.0 पर सेट है, लेकिन इस प्लेटफ़ॉर्म के लिए समर्थित परिनियोजन लक्ष्य संस्करण की सीमा 8.0 से 12.1 है।

मेरा सिम्युलेटर ओएस 12.1 Xcode 10.1 में

और मैंने अपनी पॉड फ़ाइल अपडेट की।

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

मेरा तैनाती लक्ष्य 9.0 है

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

मेरे टारगेट में

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


कृपया उपयोगकर्ता-images.githubusercontent.com/5786033/… में लक्ष्य को सत्यापित करें, संपादित करें: रूपरेखा में
विनयकृष्णन

@ Vinaykrishnan, मैं जाँच की यह 9.0 है
आईओएस

4
इस लोगों के पास एक ही मुद्दा था कि यह आपकी मदद कर सकता है, github.com/flutter/flutter/issues/22123 और github.com/CocoaPods/CocoaPods/issues/8069 । अपने को खोलें Xcodeऔर FileApple आइकन के बगल में ऊपरी-बाएँ है, फिर Workspace Settingsबिल्ड सिस्टम को खोलें और `लिगेसी बिल्ड सिस्टम` में बदलें। और अगर आपने यह अभी तक नहीं किया है stackoverflow.com/a/52552878/2323806
विनयकृष्णन

जवाबों:


235

आप अपने पॉडफाइल को अपने वर्तमान प्रोजेक्ट परिनियोजन लक्ष्य जैसे सभी पॉडफ़ाइल्स के परिनियोजन लक्ष्य से स्वचालित रूप से मिलान करने के लिए सेटअप कर सकते हैं:

post_install do |pi|
    pi.pods_project.targets.each do |t|
      t.build_configurations.each do |config|
        config.build_settings['IPHONEOS_DEPLOYMENT_TARGET'] = '9.0'
      end
    end
end

महान जवाब के लिए धन्यवाद! जिज्ञासु - क्या चार लाइन पर '9.0' को स्वचालित करना संभव होगा ... ताकि यह आपके मुख्य भाग से तैनाती का लक्ष्य ले सके?
फेटी

9
क्या होगा यदि आपके पास पहले से ही एक और पोस्ट इंस्टॉल हुक है? मुझे यह
जॉर्ज सलामांका

यदि फली का न्यूनतम परिनियोजन लक्ष्य पहले से लागू एक से अधिक है, तो यह काम नहीं करता है। इसलिए हमें मूल मूल्य को ध्यान में रखना होगा।
ग्रिगोरी एंटिन

1
@GeorgeSalamanca, आप एक ही post_install ब्लॉक में डाल सकते हैं
साइमन हैन्सन

5
@ फैटी मेरा मानना ​​है कि आप बस कर सकते हैंconfig.build_settings.delete 'IPHONEOS_DEPLOYMENT_TARGET'
rmp251

97

समस्या आपके पॉड फ़ाइल्स परिनियोजन टारगेट iOS संस्करण में है, न कि आपके प्रोजेक्ट परिनियोजन टारगेट iOS वर्ज़न में, इसलिए आपको अपने पॉड्स के लिए परिनियोजन iOS वर्ज़न को बदलने की आवश्यकता है, साथ ही 8.0 से अधिक कुछ भी करने के लिए ऐसा करने के लिए अपना प्रोजेक्ट कार्यस्थान खोलें और ऐसा करें:

1- फली पर क्लिक करें।

2- प्रत्येक प्रोजेक्ट और लक्ष्य का चयन करें और बिल्ड सेटिंग्स पर क्लिक करें।

3- परिनियोजन अनुभाग के तहत iOS परिनियोजन लक्ष्य संस्करण को 8.0 से अधिक किसी भी चीज़ में बदलें (उसी प्रोजेक्ट संस्करण को आज़माने के लिए बेहतर)।

4- अपने पॉड्स में हर दूसरे प्रोजेक्ट के लिए इसे दोहराएं फिर ऐप चलाएं।

विवरण के लिए फोटो देखें यहाँ छवि विवरण दर्ज करें


52
पॉड्स प्रोजेक्ट ऑटो जनरेटेड है। आपको इससे खिलवाड़ नहीं करना चाहिए।
मिहाई डेमियन

2
मैंने फली के साथ खिलवाड़ नहीं किया (हालाँकि मुझे ऐसा करने में कोई समस्या नहीं हुई क्योंकि यह मानव द्वारा बनाई गई है ..) मैंने बस iOS के संस्करण को बदल दिया है कि इसे लक्षित किया जाना चाहिए जो स्वीकार्य है। और यह स्वीकार किए जाते हैं की तुलना में बेहतर समाधान है जो आपको अपने स्वयं के प्रोजेक्ट आईओएस संस्करण को कम करने के लिए मजबूर कर रहा है।
अहमद अल-बरमावी

6
मैं यह नहीं कह रहा हूं कि स्वीकृत समाधान बेहतर है, बस यह कि उत्पन्न फ़ाइलों को संपादित करना बुरा अभ्यास है। Cocoapods द्वारा उत्पन्न किसी भी फ़ाइल को मैन्युअल रूप से संपादित नहीं किया जाना चाहिए क्योंकि यह भविष्य में अधिलेखित हो सकती है। यदि आपको आउटपुट पसंद नहीं है तो आप पोस्ट_ इंस्टॉलेशन के माध्यम से पोडफाइल से समायोजन कर सकते हैं। ये फ़ाइलें आपके रेपो पर भी प्रतिबद्ध नहीं होनी चाहिए।
मिहाई डैमियन


1
आप उनमें से सभी का चयन कर सकते हैं और एक बार में बदल सकते हैं
रामी अल्लौस

47

ताओ-न्हन गुयेन के उत्तर पर जोर देते हुए, हर पॉड के लिए निर्धारित मूल मान का लेखा-जोखा, इसे समायोजित करते हुए केवल 8.0 से अधिक नहीं होने पर ... निम्नलिखित को पॉडफाइल में जोड़ें:

post_install do |installer|
  installer.pods_project.targets.each do |target|
    target.build_configurations.each do |config|
      if Gem::Version.new('8.0') > Gem::Version.new(config.build_settings['IPHONEOS_DEPLOYMENT_TARGET'])
        config.build_settings['IPHONEOS_DEPLOYMENT_TARGET'] = '8.0'
      end
    end
  end
end

1
यह एक नए बनाए गए प्रतिक्रिया देशी ऐप के लिए 100s xcode चेतावनियों को निर्धारित करता है
baskInminmin

बहुत अच्छा ग्रिगोरी
ताओ-न्हें गुयेन

इसने मेरे लिए काम किया।
a_lovelace

42

पॉड पोस्ट इंस्टॉल में एक तैनाती लक्ष्य को निर्दिष्ट करने के बजाय, आप पॉड परिनियोजन लक्ष्य को हटा सकते हैं, जिसके कारण तैनाती लक्ष्य पॉडफ़ाइल प्लेटफ़ॉर्म से विरासत में मिला है।

जगह लेने के लिए आपको पॉड इंस्टॉल चलाने की आवश्यकता हो सकती है।

platform :ios, '12.0'

  post_install do |installer|
    installer.pods_project.targets.each do |target|
      target.build_configurations.each do |config|
        config.build_settings.delete 'IPHONEOS_DEPLOYMENT_TARGET'
      end
    end
  end

40

यदि आप Xcode 12 के साथ CocoaPods का उपयोग कर रहे हैं, तो आपने शायद यह त्रुटि देखी है:

The iOS Simulator deployment target 'IPHONEOS_DEPLOYMENT_TARGET' is set to 8.0, but the range of supported deployment target versions is 9.0 to 14.

यह इसलिए हो रहा है क्योंकि iOS 8 के लिए समर्थन को हटा दिया गया है, लेकिन फली के लिए न्यूनतम तैनाती लक्ष्य iOS 8 है।

जब तक यह तय नहीं हो जाता, आप अपने पॉडफाइल में निम्नलिखित जोड़ सकते हैं:

post_install do |installer|
  installer.pods_project.targets.each do |target|
    target.build_configurations.each do |config|
      config.build_settings.delete 'IPHONEOS_DEPLOYMENT_TARGET'
    end
  end
end

यह आपके प्रोजेक्ट के सभी पॉड्स से परिनियोजन लक्ष्य को हटा देगा और उन्हें प्रोजेक्ट / कार्यक्षेत्र परिनियोजन लक्ष्य को वारिफ़ाइल के शीर्ष पर निर्दिष्ट करने की अनुमति देता है।


क्या ऐसा करना सुरक्षित है?
क्यूब्लैक्स

उपयोग करें installer.pods_project&.targets&.each do |target|यदि आपने incremental_installationसही पर सेट किया है।
जोस

यह सबसे अच्छा समाधान है
लीना ब्रू

15

यदि कोई भी देशी प्रतिक्रिया से यहां आया है, तो बस / बिल्ड फ़ोल्डर हटाएं और टाइप करें react-native run ios


यह /buildफ़ोल्डर कहाँ स्थित है, सहकर्मी?
एरिक एस्कोडोडो

./project-root/ios/build
kitsune

वह निर्देशिका मेरे लिए मौजूद नहीं थी, लेकिन मैं बस भाग गया cd ios && pod install && cd ..और यह फिर से काम करना शुरू कर दिया।
जिमबली

यार तुम आदमी हो!
निकी कोफ्ल्डेल

10

मैं इस समस्या का समाधान, मैं बदल निर्माण प्रणाली के लिए Legacy Build SystemसेNew Build System

Xcode v10 + में, फ़ाइल> प्रोजेक्ट सेटिंग्स चुनें

पिछले Xcode में, फ़ाइल> कार्यक्षेत्र सेटिंग चुनें

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

सिस्टम को बदलें बिल्ड Legacy Build Systemसे New Build System-> संपन्न क्लिक करें।

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


1
यह मेरे लिए उपयुक्त समाधान नहीं है, क्योंकि नई बिल्ड सिस्टम (डिफ़ॉल्ट) के लिए स्विफ्टयूआई पूर्वावलोकन उत्पन्न करना आवश्यक है :(
रिक सैंटोस

3
यह वास्तविक समाधान नहीं है।
स्माइलबोट

पुराने सिस्टम पर वापस
लौटना

6

इन चरणों का प्रयास करें:

  1. अपना Podfile.lock हटाएं
  2. अपने पॉडफाइल को हटाएं
  3. प्रोजेक्ट बनाएं
  4. फायरबेस से इनिशियलाइज़ेशन कोड जोड़ें
  5. cd /ios
  6. pod install
  7. प्रोजेक्ट चलाएं

मेरे लिए यही काम था।


3

हम सभी फली लक्ष्य के लिए परियोजना परिनियोजन लक्ष्य लागू कर सकते हैं। अपने पॉडफाइल के अंत में इस कोड ब्लॉक को जोड़कर हल किया गया:

post_install do |installer|
  fix_deployment_target(installer)
end

def fix_deployment_target(installer)
  return if !installer
  project = installer.pods_project
  project_deployment_target = project.build_configurations.first.build_settings['IPHONEOS_DEPLOYMENT_TARGET']

  puts "Make sure all pods deployment target is #{project_deployment_target.green}"
  project.targets.each do |target|
    puts "  #{target.name}".blue
    target.build_configurations.each do |config|
      old_target = config.build_settings['IPHONEOS_DEPLOYMENT_TARGET']
      new_target = project_deployment_target
      next if old_target == new_target
      puts "    #{config.name}: #{old_target.yellow} -> #{new_target.green}"
      config.build_settings['IPHONEOS_DEPLOYMENT_TARGET'] = new_target
    end
  end
end

परिणाम लॉग:

फली तैनाती लक्ष्य संस्करण चेतावनी को ठीक करें


अच्छा! रंगीन लॉग बहुत उपयोगी है
Asaf Pinhassi

1

यदि आपके पास से आ रहे हैं react-nativeऔर इस त्रुटि का सामना कर रहे हैं तो बस ऐसा करें

  1. ओपन Podfile(आपकी परियोजना> ios> पॉडफाइल)
  2. नीचे के रूप में पॉडफाइल में फ़्लिपर फ़ंक्शंस पर टिप्पणी करें
#use_flipper!
 #post_install do |installer|
   #flipper_post_install(installer)
 #end
  1. IOSफ़ोल्डर के अंदर टर्मिनल में यह कमांड दर्ज करेंpod install

हाँ, यह आशा है कि यह आप के लिए काम करता है


0

इस मुद्दे वाले कॉर्डोवा डेवलपर्स के लिए

सेट करने का प्रयास करें

<preference name="deployment-target" value="8.0" />

confix.xml में


-3

मेरे मामले में मैंने दोनों का उपयोग किया है npm installऔर yarn installयही कारण है कि मुझे यह मुद्दा मिला इसलिए इसे हल करने के लिए मैंने पैकेज-लॉक हटा दिया है। जेसन और नोड_मॉड्यूल्स और फिर मैंने किया

yarn install
cd ios
pod install

यह मेरे लिए काम किया

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