Czy mogę użyć starszej wersji środowiska Xcode lub Xamarin.iOS?

W dokumentacji platformy Xamarin przyjęto założenie, że zalecane jest użycie najnowszych platform Xamarin.iOS i Xcode. Jednak niektórzy klienci wolą używać starszych platform Xamarin.iOS i/lub Xcode i/lub Xcode i chcieliby uzyskać szczegółowe informacje na temat konsekwencji.

Informacje o wersji zawierają następujące ostrzeżenie:

Ostrzeżenie

Korzystanie ze starszej wersji programu Xcode

Korzystanie ze starszej wersji programu Xcode (niż wymienione w powyższych wymaganiach) jest często możliwe, ale niektóre funkcje mogą nie być dostępne. Ponadto niektóre ograniczenia mogą wymagać obejść, np.:

  • registrar Statyczny kod wymaga plików nagłówków Xcode do kompilowania aplikacji, co prowadzi do MT0091 błędów lubMT4109, jeśli brakuje interfejsów API. W większości przypadków włączenie zarządzanego konsolidatora pomoże (usuwając interfejs API).
  • Kompilacje kodu bitowego (dla systemu tvOS i watchOS) mogą zakończyć się niepowodzeniem w sklepie App Store, chyba że jest używany łańcuch narzędzi Xcode 9.0 lub nowszy.

Więcej informacji

Firma Microsoft zdecydowanie zaleca używanie najnowszej wersji środowiska Xcode i najnowszej wersji platformy Xamarin.iOS podczas tworzenia i przesyłania aplikacji. Firma Apple wymaga użycia najnowszego kodu Xcode podczas przesyłania aplikacji.

Należy pamiętać, że użycie najnowszego kodu Xcode nie uniemożliwia aplikacji określania docelowych starszych wersji systemu iOS. Obsługiwane wersje systemu iOS są oparte na wpisie Info.plist i interfejsach API używanych przez aplikację.

Istnieje możliwość zainstalowania wielu wersji programu Xcode obok siebie z różnymi nazwami, takimi jak Xcode101.app i Xcode102.app. Jeśli używasz wielu wersji, pamiętaj, aby ustawić aktywny kod Xcode w Visual Studio dla komputerów Mac Ustawienia i zaxcode-select pomocą narzędzia wiersza polecenia.

Jednak rzadkie okoliczności mogą wymagać użycia starszych składników. W tej dokumentacji opisano ogólne wyzwania, które mogą wystąpić podczas korzystania z wersji starszych niż najnowsza.

Każda wersja firmy Apple jest jednak unikatowa i możesz natknąć się na inne pułapki, które nie są tutaj udokumentowane.

Te wyzwania czasami nie są proste do rozwiązania, więc zawsze, gdy jest to możliwe, trzymaj się obsługiwanej konfiguracji najnowszego środowiska Xcode i najnowszej wersji platformy Xamarin.iOS.

Korzystanie ze starego środowiska Xamarin.iOS ze starym kodem Xcode

Nie można aktualizować platform Xamarin.iOS i Xcode co najmniej przez pewien czas. Limit polega na tym, że w pewnym momencie firma Apple będzie wymagać minimalnej wersji środowiska Xcode do przesłania aplikacji. Na tym etapie należy zaktualizować wszystkie składniki (macOS, Xcode i Xamarin.iOS) do najnowszych wersji (lub nowej, minimalnej wersji środowiska Xcode wymaganej przez firmę Apple i zgodnej wersji platformy Xamarin.iOS).

Zazwyczaj łatwiej jest stopniowo aktualizować i nadążać za małymi zmianami. W przypadku dużych projektów, w których aktualizacje mogą być trudniejsze do nadążania za nimi, zachowanie znanego zestawu roboczego może być dobrym kompromisem.

Korzystanie z nowego środowiska Xamarin.iOS ze starszym kodem Xcode

Rozszerzenie Xamarin.iOS ogólnie obsługuje starsze wersje programu Xcode, gdy tylko jest to możliwe. Oto kilka potencjalnych wyzwań:

  • Nowsze środowisko Xamarin.iOS może obsługiwać niektóre funkcje i interfejsy API, które nie są obecne w wybranym środowisku Xcode.
  • registrarStatyczny kod wymaga plików nagłówków Xcode do kompilowania aplikacji, co prowadzi do MT0091 błędów lubMT4109, jeśli brakuje interfejsów API.
    • W większości przypadków włączenie zarządzanego konsolidatora pomoże (usuwając powiązania zarządzane dla nowego interfejsu API), jeśli nie jest używany.
  • Kompilacje kodu bitowego (dla systemu tvOS i watchOS) mogą zakończyć się niepowodzeniem w sklepie App Store, chyba że jest używany łańcuch narzędzi Xcode 9.0 lub nowszy.

Korzystanie z nowego środowiska Xcode ze starszym środowiskiem Xamarin.iOS

Ten przypadek użycia jest znacznie trudniejszy, ponieważ system Xamarin.iOS nie może przewidzieć zmieniających się wymagań nowego środowiska Xcode. Aktualizacje systemu macOS może również powodować problemy i bez poprawek zgodności wiele części platformy Xamarin.iOS może mieć wpływ.

Istnieje wiele potencjalnych obszarów, w których coś może pójść nie tak, w tym:

  • Niezgodności z :mlaunch
    • Obsługa symulatora może nie działać prawidłowo (lub w ogóle)
    • Obsługa urządzeń może nie działać prawidłowo (lub w ogóle)
  • Nieznana obsługa mtouch
    • Brak obsługi nowych struktur
    • Brak obsługi nowych uprawnień
    • Brak obsługi nowych lub zaktualizowanych narzędzi
      • Może to również mieć wpływ na podpisywanie kodu

Nowe reguły przesyłania sklepu AppStore

Firma Apple zastrzega sobie prawo do aktualizacji zasad przesyłania sklepu AppStore w dowolnym momencie. Te zmiany reguły są czasami ogłaszane z wyprzedzeniem. Niektóre z tych zmian wymagają zmian narzędzi do obsługi, co wymaga zaktualizowanego składnika platformy Xamarin.iOS.

Oprócz zmian w regule firma Apple często dodaje dodatkowe walidacje do przesłanych aplikacji lub zaostrza istniejące. Niektóre z tych elementów wymagają zmian w naszych narzędziach (np. nowych symboli zablokowanych). Wiele z nich jest najpierw napotykanych przez klientów przesyłanych, ponieważ nie ma ogłoszenia (lub listy) reguł.

Podsumowanie

Jeśli to możliwe, graj bezpiecznie, postępując zgodnie ze wskazówkami firmy Apple i opracowując i przesyłając je za pomocą najnowszego kodu Xcode wydanego w sklepie App Store.

Z kolei użyj najnowszej wersji platformy Xamarin.iOS. Spowoduje to śledzenie najnowszych poprawek, które mogą mieć wpływ na przesłane aplikacje i są zgodne z najnowszymi zmianami reguły.

Jeśli nie jest to możliwe, rozważ użycie dopasowanej starszej wersji Xcode i Xamarin.iOS. Może to działać przez pewien czas, ale w pewnym momencie Apple będzie nalegać na nowsze narzędzia, tak aby odpowiednio zaplanować.