Udostępnij za pośrednictwem


Publikowanie aplikacji platformy Xamarin.iOS w sklepie App Store

Aby opublikować aplikację w sklepie App Store, deweloper aplikacji musi najpierw przesłać ją — wraz ze zrzutami ekranu, opisem, ikonami i innymi informacjami — do firmy Apple w celu przejrzenia. Po zatwierdzeniu aplikacji firma Apple umieszcza ją w sklepie App Store, gdzie użytkownicy mogą ją zakupić i zainstalować bezpośrednio z urządzeń z systemem iOS.

W tym przewodniku opisano kroki, które należy wykonać, aby przygotować aplikację do sklepu App Store i wysłać ją do firmy Apple w celu przejrzenia. W szczególności opisano w nim następujące elementy:

  • Zgodnie ze wskazówkami dotyczącymi przeglądu sklepu App Store
  • Konfigurowanie identyfikatora aplikacji i uprawnień
  • Udostępnianie ikon i ikon aplikacji ze sklepu App Store
  • Konfigurowanie profilu aprowizacji sklepu App Store
  • Aktualizowanie konfiguracji kompilacji wydania
  • Konfigurowanie aplikacji w programie iTunes Connect
  • Kompilowanie aplikacji i przesyłanie jej do firmy Apple

Ważne

Firma Apple wskazała , że od marca 2019 r. wszystkie aplikacje i aktualizacje przesłane do sklepu App Store muszą zostać skompilowane przy użyciu zestawu SDK systemu iOS 12.1 lub nowszego, dołączonego do środowiska Xcode 10.1 lub nowszego. Aplikacje powinny również obsługiwać rozmiary ekranu i Telefon XS i 12,9" iPad Pro.

Wytyczne dotyczące sklepu App Store

Przed przesłaniem aplikacji do publikacji w sklepie App Store upewnij się, że spełnia ona standardy zdefiniowane przez wytyczne dotyczące przeglądu sklepu App Store firmy Apple. Po przesłaniu aplikacji do sklepu App Store firma Apple przegląda ją, aby upewnić się, że spełnia te wymagania. Jeśli tak nie jest, Apple go odrzuci — i trzeba będzie rozwiązać cytowane problemy i przesłać ponownie. W związku z tym dobrym pomysłem jest zapoznanie się z wytycznymi tak szybko, jak to możliwe w procesie opracowywania.

Podczas przesyłania aplikacji należy zwrócić uwagę na kilka kwestii:

  1. Upewnij się, że opis aplikacji jest zgodny z jej funkcjonalnością.
  2. Przetestuj, czy aplikacja nie ulega awarii w normalnym użyciu. Obejmuje to użycie na każdym urządzeniu z systemem iOS, które obsługuje.

Przyjrzyj się również zasobom powiązanym ze sklepem App Store, które udostępnia firma Apple.

Konfigurowanie identyfikatora aplikacji i uprawnień

Każda aplikacja systemu iOS ma unikatowy identyfikator aplikacji, który ma skojarzony zestaw usług aplikacji nazywanych upoważnieniami. Uprawnienia umożliwiają aplikacjom wykonywanie różnych czynności, takich jak odbieranie powiadomień wypychanych, uzyskiwanie dostępu do funkcji systemu iOS, takich jak HealthKit i inne.

Aby utworzyć identyfikator aplikacji i wybrać wymagane uprawnienia, odwiedź portal dla deweloperów firmy Apple i wykonaj następujące kroki:

  1. Zaloguj się do portalu deweloperów firmy Apple. Jeśli nie masz jeszcze identyfikatora Apple ID, najpierw utwórz identyfikator Apple ID .
  2. Przejdź do sekcji Certyfikaty, Identyfikatory i profile , a następnie przejdź do sekcji Identyfikatory .
  3. + Kliknij przycisk obok nagłówka Identyfikatory w górnej części strony.
  4. Wybierz pozycję Identyfikatory aplikacji i kliknij przycisk Kontynuuj.
  5. Wybierz pozycję Aplikacja , a następnie kliknij przycisk Kontynuuj.
  6. Wprowadź opis i identyfikator pakietu dla nowej aplikacji, a następnie wybierz wszystkie funkcje, które będą wymagane przez aplikację platformy Xamarin.iOS. Usługi App Services zostały bardziej szczegółowo opisane w przewodniku Praca z funkcjami na platformie Xamarin.iOS . Po zakończeniu wybierania kliknij przycisk Kontynuuj.
  7. Kliknij przycisk Zarejestruj, aby ukończyć proces tworzenia nowego identyfikatora aplikacji.

Oprócz wybierania i konfigurowania wymaganych usług aplikacji podczas definiowania identyfikatora aplikacji należy skonfigurować identyfikator aplikacji i uprawnienia w projekcie Xamarin.iOS, edytując pliki Info.plist i Entitlements.plist . Aby uzyskać więcej informacji, zapoznaj się z przewodnikiem Praca z uprawnieniami na platformie Xamarin.iOS , w którym opisano sposób tworzenia pliku Entitlements.plist i znaczenia różnych ustawień uprawnień, które zawiera.

Dołącz ikonę sklepu App Store

Po przesłaniu aplikacji do firmy Apple upewnij się, że zawiera ona wykaz zasobów zawierający ikonę sklepu App Store. Aby dowiedzieć się, jak to zrobić, zapoznaj się z ikonami sklepu App Store w przewodniku platformy Xamarin.iOS .

Ustawianie ikon aplikacji i ekranów uruchamiania

Aby firma Apple mogła udostępnić aplikację dla systemu iOS w sklepie App Store, musi mieć odpowiednie ikony i ekrany uruchamiania dla wszystkich urządzeń z systemem iOS, na których można ją uruchomić. Aby uzyskać więcej informacji na temat konfigurowania ikon aplikacji i ekranów uruchamiania, przeczytaj następujące przewodniki:

Tworzenie i instalowanie profilu aprowizacji w sklepie App Store

System iOS używa profilów aprowizacji do kontrolowania sposobu wdrażania określonej kompilacji aplikacji. Są to pliki zawierające informacje o certyfikacie używanym do podpisywania aplikacji, identyfikatora aplikacji i miejsca, w którym można zainstalować aplikację. W przypadku programowania i dystrybucji ad hoc profil aprowizacji zawiera również listę dozwolonych urządzeń, do których można wdrożyć aplikację. Jednak w przypadku dystrybucji ze sklepu App Store uwzględniane są tylko informacje o certyfikacie i identyfikatorze aplikacji, ponieważ jedynym mechanizmem dystrybucji publicznej jest sklep App Store.

Aby utworzyć i zainstalować profil aprowizacji sklepu App Store, wykonaj następujące kroki:

  1. Zaloguj się do portalu deweloperów firmy Apple.
  2. Przejdź do sekcji Certyfikaty, Identyfikatory i profile , a następnie przejdź do sekcji Profile .
  3. + Kliknij przycisk, wybierz pozycję Tworzenie aplikacji dla systemu iOS i Sklep App Store, a następnie kliknij przycisk Kontynuuj.
  4. Wybierz identyfikator aplikacji z listy i kliknij przycisk Kontynuuj.
  5. Wybierz certyfikat podpisywania i kliknij przycisk Kontynuuj.
  6. Wybierz urządzenia do uwzględnienia w tym profilu, a następnie kliknij przycisk Kontynuuj.
  7. Wprowadź nazwę profilu aprowizacji i kliknij pozycję Generuj, aby wygenerować profil.
  8. Użyj narzędzi do zarządzania kontami apple platformy Xamarin, aby pobrać nowo utworzony profil aprowizacji na komputer Mac. Jeśli korzystasz z komputera Mac, możesz również pobrać profil aprowizacji bezpośrednio z portalu dla deweloperów firmy Apple i kliknąć go dwukrotnie, aby go zainstalować.

Aby uzyskać szczegółowe instrukcje, zobacz Tworzenie profilu dystrybucji i Wybieranie profilu dystrybucji w projekcie platformy Xamarin.iOS.

Aktualizowanie konfiguracji kompilacji wydania

Nowe projekty platformy Xamarin.iOS automatycznie konfigurują konfiguracje kompilacji debugowania i wydania. Aby poprawnie skonfigurować kompilację wydania , wykonaj następujące kroki:

  1. W okienku rozwiązania otwórz plik Info.plist znajdujący się w projekcie systemu iOS.

  2. Upewnij się, że jesteś w widoku aplikacji . Można to ustawić, klikając opcję na dolnym pasku nawigacyjnym.

  3. Wybierz opcję Aprowizacja ręczna jako opcję Podpisywanie. Zapisz i zamknij plik.

  4. Kliknij prawym przyciskiem myszy nazwę projektu w okienku rozwiązania, wybierz pozycję Opcje i przejdź do karty Kompilacja systemu iOS.

  5. Ustaw wartość Konfiguracja na wartość Release (Wersja) i Platform (Platforma) na wartość i Telefon .

  6. Aby skompilować za pomocą określonego zestawu SDK systemu iOS, wybierz go z listy wersji zestawu SDK. W przeciwnym razie pozostaw tę wartość na wartość Domyślna.

  7. Łączenie zmniejsza całkowity rozmiar aplikacji przez usuwanie nieużywanego kodu.

    • W większości przypadków zachowanie konsolidatora powinno być ustawione na wartość domyślną tylko zestawów SDK platformy Link Framework.
    • Użycie opcji Nie łącz może spowodować, że firma Apple odrzuci aplikację z powodu obecności niepublikowych interfejsów API systemu iOS na platformie Xamarin.iOS, które zostaną połączone z opcją Tylko zestawy SDK platformy linków
    • Link Wszystkie powinny być używane z rozwagą, ponieważ spowoduje to usuwanie kodu ze wszystkich zestawów w projekcie, w tym bibliotek innych firm. Może on usunąć kod, którego biblioteka innej firmy może używać tylko za pośrednictwem odbicia, którego konsolidator nie może wykryć, ponieważ wykonuje analizę statycznego kodu w celu określenia, jaki kod biblioteki jest używany. Użyj opcji Połącz wszystko z ostrożnością, ponieważ może być konieczne ręczne zachowanie niektórych klas i/lub metod, aby uniknąć błędów środowiska uruchomieniowego z powodu braku kodu.
    • Aby uzyskać więcej informacji, zapoznaj się z przewodnikiem Łączenie aplikacji platformy Xamarin.iOS.
  8. W przypadku systemu iOS 11 wybierz jedną z architektur urządzeń, która obsługuje architekturę ARM64. Aby uzyskać więcej informacji na temat kompilowania dla 64-bitowych urządzeń z systemem iOS, zobacz sekcję Włączanie kompilacji 64-bitowych aplikacji platformy Xamarin.iOS w dokumentacji zagadnień dotyczących platformy 32/64-bitowej .

  9. Możesz użyć kompilatora LLVM do kompilowania mniejszego i szybszego kodu. Jednak ta opcja zwiększa czas kompilacji.

  10. Zobacz Optymalizowanie obrazów PNG, aby jeszcze bardziej zmniejszyć rozmiar aplikacji.

  11. Debugowanie nie powinno być włączone, ponieważ spowoduje to, że kompilacja będzie niepotrzebnie duża.

  12. W zależności od potrzeb aplikacji możesz również dostosować typ używanego odzyskiwania pamięci i skonfigurować go do międzynarodowych celów.

    Po ustawieniu opcji zgodnie z powyższym opisem ustawienia kompilacji powinny wyglądać podobnie do następujących:

    iOS Build settings

    Zapoznaj się również z przewodnikiem dotyczącym mechaniki kompilacji systemu iOS, który zawiera dalsze opisy ustawień kompilacji .

  13. Przejdź do karty Podpisywanie pakietu systemu iOS. Jeśli opcje w tym miejscu nie są edytowalne, upewnij się, że w pliku Info.plist wybrano opcję Aprowizacja ręczna.

  14. Upewnij się, że dla ustawienia Konfiguracja ustawiono wartość Release (Wersja), a dla platformy ustawiono wartość i Telefon.

  15. Ustaw wartość Tożsamość podpisywania na Dystrybucja (automatyczna).

  16. W polu Profil aprowizacji wybierz profil aprowizacji sklepu App Store utworzony powyżej.

    Opcje podpisywania pakietów projektu powinny teraz wyglądać podobnie do następujących:

    iOS Bundle Signing

  17. Kliknij przycisk OK , aby zapisać zmiany we właściwościach projektu.

Konfigurowanie aplikacji w programie iTunes Połączenie

iTunes Połączenie to zestaw narzędzi internetowych do zarządzania aplikacjami systemu iOS w sklepie App Store. Aplikacja Xamarin.iOS musi być prawidłowo skonfigurowana w programie iTunes Połączenie, zanim będzie można ją przesłać do firmy Apple w celu przejrzenia i wydania w sklepie App Store.

Aby dowiedzieć się, jak to zrobić, przeczytaj przewodnik Konfigurowanie aplikacji w programie iTunes Połączenie.

Kompilowanie i przesyłanie aplikacji

Po prawidłowym skonfigurowaniu ustawień kompilacji i aplikacji iTunes Połączenie oczekujących na przesłanie, możesz teraz skompilować aplikację i przesłać ją do firmy Apple.

  1. W Visual Studio dla komputerów Mac wybierz konfigurację kompilacji wydania i urządzenie (a nie symulator), dla którego chcesz skompilować.

    Build configuration and platform selection

  2. W menu Kompilacja wybierz pozycję Archiwum dla pozycji Publikowanie.

  3. Po utworzeniu archiwum zostanie wyświetlony widok Archiwa . Kliknij pozycję Podpisz i rozpowszechnij... , aby otworzyć kreatora publikowania.

    Screenshot of the Sign and Distribute button location in the Archives view.

    Uwaga

    Domyślnie w widoku Archiwa są wyświetlane tylko archiwa dla otwartego rozwiązania. Aby wyświetlić wszystkie rozwiązania z archiwami, zaznacz pole wyboru Pokaż wszystkie archiwa . Dobrym pomysłem jest przechowywanie starych archiwów, dzięki czemu informacje debugowania, które zawierają, mogą być używane do symbolicznego raportowania awarii w razie potrzeby.

  4. Wybierz kanał dystrybucji sklepu App Store . Kliknij przycisk Dalej.

  5. Wybierz pozycję Przekaż jako miejsce docelowe. Kliknij przycisk Dalej.

  6. W oknie Profil aprowizacji wybierz swoją tożsamość podpisywania, aplikację i profil aprowizacji. Kliknij przycisk Dalej.

    Screenshot of the Provisioning profile wizard page showing a valid signing identity, app, and provisioning profile selection.

  7. W oknie Połączenie informacji ze sklepu App Store wybierz nazwę użytkownika identyfikatora Apple ID z menu i wprowadź hasło specyficzne dla aplikacji. Kliknij przycisk Dalej.

    Screenshot of the App Store Connect information wizard page showing an Apple ID user name selected.

  8. Sprawdź szczegóły pakietu i kliknij pozycję Publikuj. Po wybraniu lokalizacji do zapisania pliku ipa kreator przekaże aplikację do Połączenie sklepu App Store.

    Uwaga

    Firma Apple może odrzucać aplikacje z plikiem iTunesMetadata.plist zawartymi w pliku ipa, co powoduje wystąpienie błędu, takiego jak:

    ERROR: ERROR ITMS-90047: "Disallowed paths ( "iTunesMetadata.plist" ) found at: Payload/iPhoneApp1.app"

    Aby obejść ten błąd, zapoznaj się z tym wpisem na forach platformy Xamarin.

Stan Połączenie programu iTunes

Aby wyświetlić stan przesyłania aplikacji, zaloguj się do witryny iTunes Połączenie i wybierz aplikację. Początkowy stan powinien mieć wartość Waiting For Review (Oczekiwanie na przegląd), chociaż może tymczasowo odczytać odebrane przekazywanie podczas jego przetwarzania.

Waiting For Review

Porady i wskazówki

Dostosowywanie lokalizacji .ipa

Właściwość IpaPackageDirMSBuild , umożliwia dostosowanie lokalizacji wyjściowej pliku ipa. Jeśli IpaPackageDir ustawiono lokalizację niestandardową, plik ipa zostanie umieszczony w tej lokalizacji zamiast domyślnego podkatalogu sygnatury czasowej. Może to być przydatne podczas tworzenia automatycznych kompilacji, które opierają się na określonej ścieżce katalogu do poprawnego działania, takich jak te używane do kompilacji ciągłej integracji (CI).

Istnieje kilka możliwych sposobów używania nowej właściwości. Na przykład, aby wyświetlić plik ipa w starym katalogu domyślnym (tak jak w środowisku Xamarin.iOS 9.6 i niższym), możesz ustawić IpaPackageDir właściwość na $(OutputPath) przy użyciu jednej z poniższych metod. Oba podejścia są zgodne ze wszystkimi kompilacjami platformy Xamarin.iOS ujednoliconego interfejsu API, w tym kompilacjami IDE, a także kompilacjami wiersza polecenia korzystającymi z programu msbuild lub mdtool:

  • Pierwszą opcją jest ustawienie IpaPackageDir właściwości w elemecie <PropertyGroup> w pliku MSBuild . Możesz na przykład dodać następujący kod <PropertyGroup> do dołu pliku csproj projektu aplikacji systemu iOS (tuż przed tagiem zamykającym </Project> ):

    <PropertyGroup>
      <IpaPackageDir>$(OutputPath)</IpaPackageDir>
    </PropertyGroup>
    
  • Lepszym podejściem <IpaPackageDir> jest dodanie elementu do dołu istniejącej <PropertyGroup> , która odpowiada konfiguracji użytej do skompilowania pliku ipa. Jest to lepsze, ponieważ przygotuje projekt pod kątem przyszłej zgodności z zaplanowanym ustawieniem na stronie właściwości projektu Opcje IPA systemu iOS. Jeśli obecnie używasz Release|iPhone konfiguracji do skompilowania pliku ipa, kompletna zaktualizowana grupa właściwości może wyglądać podobnie do następującego:

    <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|iPhone'">
       <Optimize>true</Optimize>
       <OutputPath>bin\iPhone\Release</OutputPath>
       <ErrorReport>prompt</ErrorReport>
       <WarningLevel>4</WarningLevel>
       <ConsolePause>false</ConsolePause>
       <CodesignKey>iPhone Developer</CodesignKey>
       <MtouchUseSGen>true</MtouchUseSGen>
       <MtouchUseRefCounting>true</MtouchUseRefCounting>
       <MtouchFloat32>true</MtouchFloat32>
       <CodesignEntitlements>Entitlements.plist</CodesignEntitlements>
       <MtouchLink>SdkOnly</MtouchLink>
       <MtouchArch>ARMv7, ARM64</MtouchArch>
       <MtouchHttpClientHandler>HttpClientHandler</MtouchHttpClientHandler>
       <MtouchTlsProvider>Default</MtouchTlsProvider>
       <BuildIpa>true</BuildIpa>
       <IpaPackageDir>$(OutputPath)</IpaPackageDir>
    </PropertyGroup>
    

Alternatywną techniką kompilacji wiersza polecenia msbuild jest dodanie argumentu /p: wiersza polecenia w celu ustawienia IpaPackageDir właściwości. W tym przypadku należy pamiętać, że program msbuild nie rozszerza $() wyrażeń przekazywanych w wierszu polecenia, więc nie można użyć $(OutputPath) składni. Zamiast tego należy podać pełną nazwę ścieżki.

msbuild /p:Configuration="Release" /p:Platform="iPhone" /p:ServerAddress="192.168.1.3" /p:ServerUser="macuser" /p:IpaPackageDir="%USERPROFILE%\Builds" /t:Build SingleViewIphone1.sln

Lub następujące na komputerze Mac:

msbuild /p:Configuration="Release" /p:Platform="iPhone" /p:IpaPackageDir="$HOME/Builds" /t:Build SingleViewIphone1.sln

Po utworzeniu i zarchiwizowanym kompilacji dystrybucji możesz teraz przesłać aplikację do programu iTunes Połączenie.

Podsumowanie

W tym artykule opisano sposób konfigurowania, kompilowania i przesyłania aplikacji systemu iOS do wydania w sklepie App Store.