Otrzymuję poniższy komunikat ostrzegawczy w moim Xcode 10.1.
Cele wdrożenia symulatora systemu iOS są ustawione na 7,0, ale zakres obsługiwanej wersji docelowej wdrożenia dla tej platformy to od 8,0 do 12,1.
Mój symulator działa w wersji 12.1 Xcode 10.1
Zaktualizowałem plik pod.
Mój cel wdrożenia to 9.0
W moim celu
Xcode
awFile
lewym górnym rogu obok ikony Apple, a następnie otwórzWorkspace Settings
i zmień system kompilacji na „Legacy Build System”. A jeśli jeszcze tego nie wypróbowałeś, stackoverflow.com/a/52552878/2323806Odpowiedzi:
Możesz skonfigurować plik podfile tak, aby automatycznie dopasował cel wdrożenia wszystkich podfile do bieżącego celu wdrożenia projektu w następujący sposób:
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
źródło
config.build_settings.delete 'IPHONEOS_DEPLOYMENT_TARGET'
Problem dotyczy docelowej wersji systemu iOS wdrożenia plików podów, a nie docelowej wersji systemu iOS wdrożenia projektu, więc musisz zmienić wersję wdrożenia systemu iOS dla swoich podów na dowolną nowszą niż 8.0, aby to zrobić, otwórz obszar roboczy projektu i wykonaj następujące czynności:
1- Kliknij strąki.
2- Wybierz każdy projekt i cel i kliknij ustawienia kompilacji.
3- W sekcji Wdrożenie zmień docelową wersję systemu iOS na inną niż 8.0 (lepiej wypróbować tę samą wersję projektu).
4- Powtórz to dla każdego innego projektu w swoich podach, a następnie uruchom aplikację.
zobacz zdjęcie po szczegóły
źródło
Iterując po odpowiedzi od Tao-Nhan Nguyen, uwzględniając oryginalną wartość ustawioną dla każdego poda, dostosowując ją tylko wtedy, gdy nie jest większa niż 8,0 ... Dodaj następujące elementy do pliku 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
źródło
Zamiast określać miejsce docelowe wdrożenia po instalacji, można usunąć cel wdrożenia, co powoduje, że cel wdrożenia jest dziedziczony z platformy podfile.
Może być konieczne uruchomienie instalacji poda, aby efekt wystąpił.
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
źródło
Jeśli używasz CocoaPods z Xcode 12, prawdopodobnie widziałeś ten błąd:
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.
Dzieje się tak, ponieważ obsługa systemu iOS 8 została porzucona, ale minimalnym celem wdrożenia dla poda jest iOS 8.
Dopóki to nie zostanie naprawione, możesz dodawać następujące elementy do swojego pliku 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
Spowoduje to usunięcie celu wdrożenia ze wszystkich podów w projekcie i umożliwi im dziedziczenie celu wdrożenia projektu / obszaru roboczego, który został określony w górnej części Podfile.
źródło
installer.pods_project&.targets&.each do |target|
jeśliincremental_installation
ustawiłeś na true.Jeśli ktoś przyszedł tutaj z powodu problemu natywnego, po prostu usuń folder / build i wpisz
react-native run ios
źródło
/build
folder kolego?./project-root/ios/build
cd ios && pod install && cd ..
i znowu zaczął działać.Rozwiązałem ten problem, zmieniłem system kompilacji na
Legacy Build System
zNew Build System
W Xcode v10 + wybierz Plik> Ustawienia projektu
W poprzednim Xcode wybierz opcję Plik> Ustawienia obszaru roboczego
Zmień Build System na
Legacy Build System
fromNew Build System
-> Kliknij Gotowe.źródło
Spróbuj wykonać następujące czynności:
cd /ios
pod install
To właśnie zadziałało dla mnie.
źródło
Możemy zastosować cel wdrożenia projektu do wszystkich obiektów docelowych. Rozwiązanie rozwiązane przez dodanie poniższego bloku kodu na końcu pliku 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
Dziennik wyników:
źródło
Jeśli pochodzisz
react-native
i napotykasz ten błąd, po prostu zrób toPodfile
(Twój projekt> ios> Podfile)#use_flipper! #post_install do |installer| #flipper_post_install(installer) #end
IOS
folderze wewnątrz terminala wprowadź to poleceniepod install
tak, to jest nadzieja, że ci się uda
źródło
dla programistów Cordova mających ten problem
spróbuj ustawić
<preference name="deployment-target" value="8.0" />
w confix.xml
źródło
w moim przypadku użyłem obu
npm install
iyarn install
dlatego otrzymałem ten problem, więc aby go rozwiązać, usunąłem pakiet-lock.json i node_modules, a następnie zrobiłemyarn install cd ios pod install
to działało dla mnie
źródło