เป้าหมายการปรับใช้ iOS Simulator ถูกตั้งค่าเป็น 7.0 แต่ช่วงของเวอร์ชันเป้าหมายการปรับใช้ที่รองรับสำหรับแพลตฟอร์มนี้คือ 8.0 ถึง 12.1


170

ฉันได้รับข้อความเตือนด้านล่างนี้ใน Xcode 10.1 ของฉัน

เป้าหมายการปรับใช้ iOS Simulator ถูกตั้งค่าเป็น 7.0 แต่ช่วงของเวอร์ชันเป้าหมายการปรับใช้ที่รองรับสำหรับแพลตฟอร์มนี้คือ 8.0 ถึง 12.1

ระบบปฏิบัติการจำลองของฉันใน 12.1 Xcode 10.1

และฉันอัปเดตไฟล์พ็อดของฉัน

ใส่คำอธิบายภาพที่นี่

เป้าหมายการปรับใช้ของฉันคือ 9.0

ใส่คำอธิบายภาพที่นี่

ในเป้าหมายของฉัน

ใส่คำอธิบายภาพที่นี่


โปรดตรวจสอบเป้าหมายใน user-images.githubusercontent.com/5786033/…แก้ไข: ในกรอบ
Vinaykrishnan

@ Vinaykrishnan ฉันตรวจสอบแล้วว่าเป็น 9.0
iOS

4
พวกนี้มีปัญหาเดียวกันตรวจสอบเรื่องนี้อาจจะช่วยให้คุณgithub.com/flutter/flutter/issues/22123และgithub.com/CocoaPods/CocoaPods/issues/8069 เปิดของคุณXcodeและมีFileด้านซ้ายบนถัดจากไอคอน Apple จากนั้นเปิดWorkspace Settingsและเปลี่ยนระบบบิลด์เป็น "Legacy Build System" และถ้าคุณยังไม่ได้ลองใช้stackoverflow.com/a/52552878/2323806
Vinaykrishnan

คำตอบ:


237

คุณสามารถตั้งค่า podfile ให้จับคู่เป้าหมายการปรับใช้ของ podfiles ทั้งหมดกับเป้าหมายการปรับใช้โปรเจ็กต์ปัจจุบันของคุณโดยอัตโนมัติดังนี้:

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' โดยอัตโนมัติในบรรทัดที่สี่ ... เพื่อที่จะนำเป้าหมายการปรับใช้จากโครงการหลักของคุณ?
Fattie

9
จะเกิดอะไรขึ้นถ้าคุณมีเบ็ดติดตั้งโพสต์อื่นอยู่แล้ว? ฉันได้รับข้อผิดพลาดที่ระบุว่าไม่รองรับการติดตั้งโพสต์หลายรายการ
George Salamanca

ดูเหมือนจะไม่ได้ผลหากเป้าหมายการปรับใช้ขั้นต่ำของพ็อดสูงกว่าที่บังคับใช้อยู่แล้ว ดังนั้นเราจึงต้องคำนึงถึงมูลค่าดั้งเดิมด้วย
Grigory Entin

1
@GeorgeSalamanca คุณสามารถใส่ลงในบล็อก post_install เดียวกันได้
Simon Hansen

5
@Fattie ฉันเชื่อว่าคุณทำได้config.build_settings.delete 'IPHONEOS_DEPLOYMENT_TARGET'
rmp251

97

ปัญหาอยู่ในการปรับใช้ไฟล์พ็อดของคุณเป้าหมายเวอร์ชัน iOS ที่ไม่ได้อยู่ในเวอร์ชัน iOS เป้าหมายการปรับใช้โปรเจ็กต์ของคุณดังนั้นคุณต้องเปลี่ยนเวอร์ชัน iOS สำหรับการปรับใช้สำหรับพ็อดของคุณรวมถึงสิ่งที่สูงกว่า 8.0 เพื่อเปิดพื้นที่ทำงานโครงการของคุณและดำเนินการดังนี้:

1- คลิกที่ฝัก

2- เลือกแต่ละโครงการและกำหนดเป้าหมายแล้วคลิกที่การตั้งค่าการสร้าง

3- ภายใต้ส่วนการปรับใช้ให้เปลี่ยนเวอร์ชันเป้าหมายการปรับใช้ iOS เป็นอะไรก็ได้ที่มากกว่า 8.0 (ควรลองรุ่นโครงการเดียวกัน)

4- ทำซ้ำสิ่งนี้สำหรับทุกโครงการในพ็อดของคุณจากนั้นเรียกใช้แอพ

ดูภาพเพื่อดูรายละเอียด ใส่คำอธิบายภาพที่นี่


52
โครงการ Pods ถูกสร้างขึ้นโดยอัตโนมัติ คุณไม่ควรไปยุ่งกับมัน
Mihai Damian

2
ฉันไม่ได้ยุ่งกับพ็อด (แม้ว่าฉันจะไม่พบปัญหาในการทำเช่นนั้นเพราะมันสร้างโดยมนุษย์ .. ) ฉันเพิ่งเปลี่ยนเวอร์ชันของ iOS ที่ควรกำหนดเป้าหมายซึ่งเป็นที่ยอมรับได้ และนี่เป็นทางออกที่ดีกว่าวิธีที่ยอมรับซึ่งบังคับให้คุณลดเวอร์ชัน iOS ของโครงการของคุณเอง
Ahmed El-Bermawy

6
ฉันไม่ได้บอกว่าโซลูชันที่ยอมรับนั้นดีกว่าเพียงแต่ว่าการแก้ไขไฟล์ที่สร้างขึ้นนั้นเป็นการปฏิบัติที่ไม่ดี ไฟล์ใด ๆ ที่สร้างโดย Cocoapods ไม่ควรแก้ไขด้วยตนเองเนื่องจากอาจถูกเขียนทับในอนาคต หากคุณไม่ชอบผลลัพธ์คุณสามารถทำการปรับเปลี่ยนจาก Podfile ผ่าน post_install ไฟล์เหล่านี้ไม่ควรผูกมัดกับ repo ของคุณด้วยซ้ำ
Mihai Damian

1
@ มูฮัมมัดต้องได้รับคำตอบจากผู้พัฒนา POD ด้วยตัวเองอย่างไรก็ตามสำหรับฉันฉันจะไม่ทิ้งคำเตือนใด ๆ สำหรับโครงการของฉันด้วยการเปิดตัว
Ahmed El-Bermawy

1
คุณสามารถเลือกทั้งหมดและเปลี่ยนได้ในครั้งเดียว
Rami Alloush

47

ทำซ้ำคำตอบจาก Tao-Nhan Nguyen โดยบันทึกค่าเดิมที่ตั้งไว้สำหรับทุกพ็อดโดยจะปรับค่านี้ก็ต่อเมื่อไม่เกิน 8.0 ... เพิ่มสิ่งต่อไปนี้ใน Podfile:

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
สิ่งนี้แก้ไขคำเตือน xcode กว่า 100 วินาทีสำหรับแอปตอบสนองที่สร้างขึ้นใหม่
baskInEminence

Grigory ที่ดีมาก
Tao-Nhan Nguyen

สิ่งนี้ได้ผลสำหรับฉัน
a_lovelace

42

แทนที่จะระบุเป้าหมายการปรับใช้ใน pod post install คุณสามารถลบเป้าหมายการปรับใช้ pod ซึ่งทำให้เป้าหมายการนำไปใช้งานได้รับการสืบทอดจากแพลตฟอร์ม podfile

คุณอาจต้องเรียกใช้การติดตั้งพ็อดเพื่อให้เอฟเฟกต์เกิดขึ้น

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

หากคุณใช้ CocoaPods กับ Xcode 12 คุณอาจเห็นข้อผิดพลาดนี้:

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

จนกว่าจะได้รับการแก้ไขคุณสามารถเพิ่มสิ่งต่อไปนี้ใน Podfile ของคุณ:

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

การดำเนินการนี้จะลบเป้าหมายการปรับใช้ออกจากพ็อดทั้งหมดในโปรเจ็กต์ของคุณและอนุญาตให้สืบทอดเป้าหมายการปรับใช้โปรเจ็กต์ / พื้นที่ทำงานที่ระบุไว้ที่ด้านบนของ Podfile


ปลอดภัยไหมที่จะทำ
Cublax

ใช้installer.pods_project&.targets&.each do |target|ถ้าคุณincremental_installationตั้งค่าเป็นจริง
José

นี่คือทางออกที่ดีที่สุด
Lena Bru

15

หากใครมาที่นี่จาก react native issue ให้ลบโฟลเดอร์ / build แล้วพิมพ์ react-native run ios


/buildโฟลเดอร์นี้อยู่ที่ไหนเพื่อนร่วมงาน?
Erik Escobedo

./project-root/ios/build
kitsune

ไดเรกทอรีนั้นไม่มีอยู่สำหรับฉัน แต่ฉันเพิ่งเรียกใช้cd ios && pod install && cd ..และเริ่มทำงานอีกครั้ง
Jimbali

เพื่อนคุณคือผู้ชาย!
Nicky Kouffeld

10

ฉันแก้ไขปัญหานี้แล้วฉันเปลี่ยนระบบบิลด์เป็นLegacy Build SystemจากNew Build System

ใน Xcode v10 + เลือกไฟล์> การตั้งค่าโครงการ

ใน Xcode ก่อนหน้าให้เลือกไฟล์> การตั้งค่าพื้นที่ทำงาน

ใส่คำอธิบายภาพที่นี่

เปลี่ยนระบบสร้างเป็นLegacy Build SystemจากNew Build System-> คลิกเสร็จสิ้น

ใส่คำอธิบายภาพที่นี่


1
นี่ไม่ใช่วิธีแก้ปัญหาที่เหมาะสมสำหรับฉันอีกต่อไปเนื่องจากจำเป็นต้องใช้ New Build System (ค่าเริ่มต้น) เพื่อสร้างตัวอย่าง SwiftUI :(
Ric Santos

3
นี่ไม่ใช่วิธีแก้ปัญหาที่แท้จริง
smileBot

การย้อนกลับไปใช้ระบบเก่าไม่ใช่การแก้ไข
FaultyJuggler

6

ลองทำตามขั้นตอนเหล่านี้:

  1. ลบ Podfile.lock ของคุณ
  2. ลบ Podfile ของคุณ
  3. สร้างโครงการ
  4. เพิ่มรหัสเริ่มต้นจาก firebase
  5. cd /ios
  6. pod install
  7. เรียกใช้โครงการ

นี่คือสิ่งที่ได้ผลสำหรับฉัน


3

เราสามารถใช้เป้าหมายการปรับใช้โครงการกับเป้าหมายพ็อดทั้งหมด แก้ไขได้โดยการเพิ่มบล็อกโค้ดด้านล่างนี้เพื่อสิ้นสุด Podfile ของคุณ:

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> Podfile)
  2. แสดงความคิดเห็นฟลิปเปอร์ฟังก์ชั่นใน podfile ดังต่อไปนี้
#use_flipper!
 #post_install do |installer|
   #flipper_post_install(installer)
 #end
  1. ในเทอร์มินัลภายในIOSโฟลเดอร์ให้ป้อนคำสั่งนี้pod install

ใช่หวังว่ามันจะเหมาะกับคุณ


0

สำหรับนักพัฒนา Cordova ที่มีปัญหานี้

ลองตั้งค่า

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

ใน confix.xml


-3

ในกรณีของฉันฉันใช้ทั้งสองอย่างnpm installและyarn installนั่นคือเหตุผลที่ฉันได้รับปัญหานี้ดังนั้นเพื่อแก้ปัญหานี้ฉันได้ลบ package-lock.json และ node_modules แล้วฉันก็ทำ

yarn install
cd ios
pod install

มันได้ผลสำหรับฉัน

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.