to jest bardzo proste pytanie, które zakładam. Czy ktoś może mi powiedzieć, co oznacza cel rozmieszczenia. Jeśli wybiorę IOS 10, czy to oznacza, że tylko użytkownicy z iOS 10 mogą pobrać aplikację. Czy źle jest wybrać niższy cel wdrożenia? RÓWNIEŻ, kontynuując w miejscu docelowym wdrożenia, nie zaleca się uruchamiania na niższym celu wdrożenia.
110
Odpowiedzi:
Powiedzmy, że masz ustalony cel minimum wdrażania do iOS 9. Oznacza to, że aplikacja jest kompatybilna z iOS 9 i powyżej urządzeń.
Aplikacja nie będzie działać na urządzeniach poniżej 9.0, ale może działać na dowolnej wersji iOS wyższej niż iOS 9.0.
źródło
Deployment Target
ostatecznie zmienia Info.plist. Jest to wygodny sposób dodany (prawdopodobnie) po Xcode 4.xCel wdrożenia określa zdolność aplikacji do uruchamiania w starszych wersjach systemu iOS.
App with deployment target set to 10 will work on iOS version 10+ (10, 11, 12, 13 ...) but won't work on 9.x.
Kiedy pojawia się nowa wersja iOS, niektórzy ludzie nie zawracają sobie głowy aktualizacją swoich urządzeń do najnowszej wersji iOS, a tym samym
can't download your app from the App Store
.Przykład
Jeśli wybierzesz wyższy cel wdrożenia
(e.g 12.1)
, Twoja aplikacja nie będzie mogła zostać pobrana dla osób, które mają nawet najnowsze urządzenia, ale mają starszą wersję iOS (iPhone X z 11.0). Z drugiej strony Jeśli wybierzesz najniższy możliwy cel wdrożenia(e.g 6.0)
, postarasz się, aby Twoja aplikacja była maksymalnie kompatybilna wstecz (więc nawet jeśli ktoś nie aktualizował swojego iOS od lat, będzie mógł pobrać Twoją aplikację).UWAGA
Wiele (prawie wszystkich) nowszych frameworków i funkcji nie będzie działać poprawnie (Zachowaj się zgodnie z oczekiwaniami) na niższych wersjach iOS, co zwiększa prawdopodobieństwo awarii aplikacji.
Co wpływa na cel wdrożenia
Oto kilka czynników, które wymagają wyższego celu wdrożenia.
1) Korzystanie z najnowszego zestawu SDK systemu iOS (samodzielnie)
2) Korzystanie z najnowszych funkcji specyficznych dla iOS SDK (ograniczenia, nowsze pliki XIB itp.).
3) Korzystanie z szybko dostosowujących się zewnętrznych bibliotek / frameworków (np. Facebook SDK, Firebase itp.).
4) Wyższa wersja Swift (5.0) wymaga wyższego celu wdrożenia niż pisanie aplikacji w starszej wersji celu C)
!Needs citation
.ROZWIĄZANIE
Używamy Deploymate do maksymalnego wsparcia wstecznego. Pomaga nam głównie w ostrzeżeniu następujących kwestii:
1) Nowsze interfejsy API, które nie będą działać na niższych wersjach iOS
2) Korzystanie z przestarzałych metod, które nie będą działać w nowszych wersjach systemu iOS.
To wtedy zaczynasz naprawiać kod, aby był dostępny dla niższych wersji iOS dla maksymalnej kompatybilności.
Uwaga: Xcode informuje również o kilku pułapkach. Deploymate nie jest z nami współpracownikami ani nie płaci nam w żadnej formie. Możesz poszukać innych zamienników.
źródło
Deployment Target
to minimalna wersja iOS obsługiwana przez Twój cel.To znaczy, że:
Aby zmienić to w Xcode 11.5
źródło
Jeśli dopiero zaczynasz korzystać z Xcode, sugeruję zaakceptowanie wartości domyślnej i myślenie o niej jako o ograniczeniu twojego projektu.
Wraz z pojawieniem się nowszych wersji Xcode obsługa starszych wartości docelowych zostanie usunięta. Firmy, które mają rozległe bazy klientów, muszą sobie z tym problemem radzić na swój sposób.
W większości projektów, nad którymi pracowałem, wersja iOS ma znaczenie, ponieważ dyktuje, na których urządzeniach można uruchomić aplikację.
Na przykład iOS 10 zasadniczo pozostawił wszystkie złącza w stylu iPoda.
źródło