İOS Simulator dağıtım hedefleri 7.0 olarak ayarlanmıştır, ancak bu platform için desteklenen dağıtım hedefi sürümü 8.0 ila 12.1 arasındadır.


152

Xcode 10.1'imde aşağıdaki uyarı mesajını alıyorum.

İOS Simulator dağıtım hedefleri 7.0 olarak ayarlanmıştır, ancak bu platform için desteklenen dağıtım hedefi sürümü 8.0 ila 12.1 arasındadır.

12.1 Xcode 10.1'deki simülatör işletim sistemim

Ve pod dosyamı güncelledim.

görüntü açıklamasını buraya girin

Dağıtım hedefim 9.0

görüntü açıklamasını buraya girin

Benim hedefimde

görüntü açıklamasını buraya girin


Lütfen user-images.githubusercontent.com/5786033/… adresindeki hedefi doğrulayın , Düzenle:
Çerçevede

@ Vinaykrishnan, 9.0 olduğunu kontrol ettim
iOS

4
Bu adam aynı sorunu yaşadı , bunun size yardımcı olabileceğini kontrol edin, github.com/flutter/flutter/issues/22123 ve github.com/CocoaPods/CocoaPods/issues/8069 . Kendinizi açın Xcodeve FileApple simgesinin yanında sol üstte bulun , ardından Workspace Settingsyapı sistemini açın ve `Eski Yapı Sistemi` olarak değiştirin. Ve henüz bunu denemediyseniz stackoverflow.com/a/52552878/2323806
Vinaykrishnan

Yanıtlar:


205

Pod dosyanızı, tüm pod dosyalarının dağıtım hedefini mevcut proje dağıtım hedefinizle otomatik olarak şu şekilde eşleştirecek şekilde ayarlayabilirsiniz:

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

harika cevap için teşekkürler! Meraklı - dördüncü satırdaki '9.0'ı otomatikleştirmek mümkün olabilir mi ... böylece dağıtım hedefini ana projenizden alır mı ??
Şişko

8
Ya zaten başka bir yükleme sonrası kancanız varsa? Birden çok gönderi yüklemesinin desteklenmediğini belirten bir hata alıyorum
George Salamanca

Bir kapsülün minimum dağıtım hedefi zaten zorunlu olandan daha yüksekse, bu işe yaramıyor gibi görünüyor. Bu nedenle, orijinal değeri hesaba katmamız gerekir.
Grigory Entin

1
@GeorgeSalamanca, aynı post_install bloğunu koyabilirsiniz
Simon Hansen

4
@Fattie Yapabileceğine inanıyorumconfig.build_settings.delete 'IPHONEOS_DEPLOYMENT_TARGET'
rmp251

88

Sorun, pod dosyalarınızın dağıtım hedefi iOS Sürümünde, proje dağıtım hedefiniz iOS Sürümünde değildir, bu nedenle, proje çalışma alanınızı açmak ve bunu yapmak için bölmelerinizin iOS dağıtım sürümünü 8.0'dan daha yüksek bir sürümle değiştirmeniz gerekir:

1- Bölmelere tıklayın.

2- Her projeyi ve hedefi seçin ve yapı ayarlarına tıklayın.

3- Dağıtım bölümü altında, iOS Dağıtım Hedefi sürümünü 8.0'dan daha büyük bir değere değiştirin (aynı proje sürümünü denemek daha iyidir).

4- Bölmelerinizdeki diğer her proje için bunu tekrarlayın ve ardından uygulamayı çalıştırın.

detaylar için fotoğrafa bakın görüntü açıklamasını buraya girin


45
Kapsüller projesi otomatik olarak oluşturulur. Onunla uğraşmamalısın.
Mihai Damian

2
Kapsülü karıştırmadım (insan tarafından yapıldığı için bunu yaparken hiçbir sorun bulamadım ..) sadece iOS'un kabul edilebilir olan hedeflenmesi gereken sürümünü değiştirdim. ve bu, sizi kendi proje iOS sürümünüzü düşürmeye zorlayan, kabul edilen çözümden daha iyi bir çözümdür.
Ahmed El-Bermawy

6
Kabul edilen çözümün daha iyi olduğunu söylemiyorum, sadece oluşturulan dosyaları düzenlemenin kötü bir uygulama olduğunu. Cocoapods tarafından oluşturulan hiçbir dosya, gelecekte üzerine yazılabileceği için manuel olarak düzenlenmemelidir. Çıktıyı beğenmezseniz, Podfile'dan post_install aracılığıyla ayarlamalar yapabilirsiniz. Bu dosyalar deponuza işlenmemelidir bile.
Mihai Damian

1
@Muhammad POD geliştiricisinin kendisinden cevaplanması gerekiyor, zaten benim için projem için sürümle herhangi bir uyarı bırakmam
Ahmed El-Bermawy

1
Hepsini seçebilir ve bir defada değiştirebilirsiniz
Rami Alloush

39

Öyle sadece bunu ayarlayarak, her kapsül için özgün değer kümesi muhasebe Tao-Nhan Nguyen gelen cevap üzerine yineleme değil 8.0'dan daha büyük ... Podfile için aşağıdaki ekleyin:

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
Bu, yeni oluşturulan bir react yerel uygulaması için
100'lerce

Very nice Grigory
Tao-Nhan Nguyen

1
Bu, mevcut kabul edilen / en iyi cevap olmalıdır.
Nick

33

Kapsül sonrası yüklemede bir dağıtım hedefi belirtmek yerine, dağıtım hedefinin pod dosyası platformundan miras alınmasına neden olan bölme dağıtım hedefini silebilirsiniz.

Efektin gerçekleşmesi için pod kurulumunu çalıştırmanız gerekebilir.

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

29

Xcode 12 ile CocoaPods kullanıyorsanız, muhtemelen şu hatayı görmüşsünüzdür:

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.

Bunun nedeni iOS 8 desteğinin kaldırılması, ancak bölme için minimum dağıtım hedefi iOS 8'dir.

Bu düzeltilene kadar aşağıdakileri Podfile'ınıza ekleyebilirsiniz:

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

Bu, dağıtım hedefini projenizdeki tüm bölmelerden kaldıracak ve Podfile'ın en üstünde belirtilen proje / çalışma alanı dağıtım hedefini devralmalarına izin verecektir.


bunu yapmak güvenli mi?
Cublax

1
@Cublax evet güvenli ve uygulanabilir bir çözüm :)
Prakhar Prakash Bhardwaj

Kullanın installer.pods_project&.targets&.each do |target|Eğer varsa incremental_installationtrue olarak ayarlanır.
José

bu en iyi çözüm
Lena Bru


10

Ben bu sorunu çözmüş, ben değiştim yapı sistemi için Legacy Build SystemgelenNew Build System

Xcode v10 + 'da Dosya> Proje Ayarları'nı seçin

Önceki Xcode'da, Dosya> Çalışma Alanı Ayarları'nı seçin.

görüntü açıklamasını buraya girin

Olarak değiştirin Yapı Sistemi Legacy Build Systemdan New Build System-> Bitti tıklayın.

görüntü açıklamasını buraya girin


1
SwiftUI önizlemelerini oluşturmak için Yeni Oluşturma Sistemi (Varsayılan) gerektiğinden, bu artık benim için uygun bir çözüm değil :(
Ric Santos

3
Bu gerçek bir çözüm değil.
smileBot

Eski sistemlere geri dönmek bir
çözüm

4

Şu adımları deneyin:

  1. Podfile.lock dosyanızı silin
  2. Pod dosyanızı silin
  3. Proje Oluştur
  4. Firebase'den başlatma kodunu ekleyin
  5. cd /ios
  6. pod install
  7. Projeyi çalıştır

Benim için işe yarayan buydu.


3

Proje dağıtım hedefini tüm pod hedeflerine uygulayabiliriz. Aşağıdaki kod bloğunu Podfile'nizin sonuna ekleyerek çözüldü:

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

Sonuç günlüğü:

bölmeleri dağıtım hedef sürüm uyarısını düzelt


Güzel! Renkli günlük çok kullanışlı
Asaf Pinhassi

-1

bu sorunu yaşayan cordova geliştiricileri için

ayarlamayı dene

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

confix.xml'de


-1

benim durumumda ikisini de kullandım npm installve yarn installbu yüzden bu sorunu çözdüm, bu yüzden bunu çözmek için package-lock.json ve node_modules'i kaldırdım ve sonra yaptım

yarn install
cd ios
pod install

benim için çalıştı

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.