Obsługa usługi IPA na platformie Xamarin.iOS

W tym artykule opisano sposób tworzenia pliku IPA, który może służyć do wdrażania aplikacji przy użyciu dystrybucji ad hoc na potrzeby testowania lub dystrybucji wewnętrznych aplikacji wewnętrznych.

Oprócz wydania aplikacji do sprzedaży za pośrednictwem sklepu iTunes App Store można ją wdrożyć w następujących zastosowaniach:

  • Testowanie ad hoc — na potrzeby testowania alfa i beta można wdrożyć aplikację dla systemu iOS do maksymalnie 100 użytkowników (zidentyfikowanych przez określone identyfikatory UUID urządzeń z systemem iOS). Aby uzyskać szczegółowe informacje na temat dodawania testowych urządzeń z systemem iOS do konta dewelopera firmy Apple, zobacz dokumentację aprowizacji urządzenia z systemem iOS, a także przewodnik Ad-Hoc , aby uzyskać więcej informacji na temat sposobu dystrybucji w ten sposób.
  • Wdrażanie w domu/przedsiębiorstwie — aplikację systemu iOS można wdrożyć wewnętrznie w firmie, która wymaga członkostwa w programie Apple Developer Enterprise. Więcej informacji na temat dystrybucji w domu znajduje się w przewodniku dotyczącym dystrybucji w domu.

W obu przypadkach pakiet IPA (specjalny typ pliku zip) musi zostać utworzony i podpisany cyfrowo przy użyciu poprawnego profilu aprowizacji dystrybucji. W tym artykule opisano kroki wymagane do skompilowania pakietu IPA i zainstalowania go na urządzeniu z systemem iOS przy użyciu programu iTunes na komputerze Mac lub Windows.

Plik iTunesMetadata.plist

Po utworzeniu aplikacji dla systemu iOS w programie iTunes Połączenie (do sprzedaży lub bezpłatnej wersji ze sklepu iTunes App Store), deweloper może określić informacje, takie jak gatunek aplikacji, gatunek podrzędny, powiadomienie o prawach autorskich, obsługiwane urządzenia z systemem iOS i wymagane możliwości urządzenia.

Aplikacje dla systemu iOS dostarczane za pośrednictwem dystrybucji ad hoc lub wewnętrznej muszą mieć jakiś sposób na obsługę tych informacji, aby można było je zobaczyć na iTunes i urządzeniu użytkownika. Domyślnie mały plik iTunesMetadata.plist jest tworzony za każdym razem, gdy kompilujesz projekt i jest przechowywany w katalogu projektu.

Można również utworzyć niestandardowy plik iTunesMetadata.plist , aby dostarczyć dodatkowe informacje do dystrybucji. Aby dowiedzieć się więcej o zawartości tego pliku i sposobie jego tworzenia, zobacz naszą dokumentację zawartości iTunesMetadata.plist i Tworzenie pliku iTunesMetadata.plist.

iTunes Artwork

W przypadku dostarczania aplikacji za pośrednictwem sklepu innego niż App Store należy również dołączyć obraz 512x512 i 1024x1024, który będzie używany do reprezentowania aplikacji w programie iTunes.

Aby określić grafikę iTunes, wykonaj następujące czynności:

  1. Kliknij dwukrotnie plik Info.plist w Eksplorator rozwiązań, aby otworzyć go do edycji.
  2. Przewiń do sekcji iTunes Artwork edytora.
  3. W przypadku dowolnego brakującego obrazu kliknij miniaturę w edytorze, wybierz plik obrazu dla żądanej grafiki programu iTunes w oknie dialogowym Otwórz plik , a następnie kliknij przycisk OK lub Otwórz .
  4. Powtórz ten krok do momentu określenia wszystkich potrzebnych obrazów dla aplikacji.

Aby uzyskać więcej informacji, zobacz dokumentację iTunes Artwork .

Tworzenie usługi IPA

Tworzenie usługi IPA jest teraz wbudowane w nowy przepływ pracy publikowania. Aby to zrobić, wykonaj poniższe instrukcje, aby zarchiwizować aplikację, podpisać ją i zapisać adres IPA.

Przed rozpoczęciem tworzenia usługi IPA dla rozwiązania międzyplatformowego upewnij się, że projekt systemu iOS został wybrany jako projekt startowy:

Selected the iOS project as the startup project

Tworzenie archiwum

Aby utworzyć adres IPA, należy utworzyć archiwum kompilacji wydania naszej aplikacji. To archiwum zawiera naszą aplikację i identyfikuje informacje o niej.

  1. Wybierz wydanie | Konfiguracja urządzenia w Visual Studio dla komputerów Mac: !

    Select the Release | Device configuration

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

    Select Archive for Publishing

  3. Po utworzeniu archiwum zostanie wyświetlony widok Archiwa :

    The Archives view will be displayed

Podpisywanie i rozpowszechnianie aplikacji

Za każdym razem, gdy skompilujesz aplikację dla warstwy Archiwum, automatycznie otworzy widok Archiwum, wyświetlając wszystkie zarchiwizowane projekty; pogrupowane według rozwiązania. Domyślnie ten widok pokazuje tylko bieżące, otwarte rozwiązanie. Aby wyświetlić wszystkie rozwiązania z archiwami, kliknij opcję Pokaż wszystkie archiwa .

Zaleca się przechowywanie archiwów wdrożonych dla klientów (wdrożeń ad hoc lub wdrożeń w firmie), dzięki czemu wszelkie wygenerowane informacje debugowania mogą być symbolizowane w późniejszym terminie.

Należy pamiętać, że w przypadku sklepu innego niż App Store plik iTunesMetadata.plist zestaw dzieł sztuki iTunes zostanie automatycznie uwzględniony w twoim adresie IPA, jeśli zostaną znalezione w archiwum.

Aby podpisać aplikację i przygotować ją do dystrybucji:

  1. Wybierz przycisk Sign and Distribute... (Podpisz i dystrybuuj ... ) zilustrowany poniżej:

    Select Sign and Distribute...

  2. Spowoduje to otwarcie kreatora publikowania. Wybierz kanał dystrybucji Ad Hoc lub Enterprise(In-House), aby utworzyć pakiet:

    Select the Ad-Hoc or Enterprise In-House distribution

  3. Na ekranie Profil aprowizacji wybierz tożsamość podpisywania i odpowiedni profil aprowizacji lub ponownie zaloguj się przy użyciu innej tożsamości:

    Select the signing identity and corresponding provisioning profile

  4. Sprawdź szczegóły pakietu, a następnie kliknij pozycję Publikuj:

    Verify the package details

  5. Na koniec zapisz adres IPA na maszynie:

    Save the IPA to the computer

Kompilowanie za pomocą wiersza polecenia (na komputerze Mac)

W niektórych przypadkach, takich jak w środowisku ciągłej integracji, może być konieczne skompilowanie usługi IPA za pośrednictwem wiersza polecenia. Wykonaj poniższe kroki, aby to osiągnąć:

  1. Upewnij się, że opcje projektu iOS > IPA Opcje > dołączania obrazów iTunesArtwork są zaznaczone, a opcja Kompilowanie pakietu ad hoc/przedsiębiorstwa (IPA) jest zaznaczona:

    Include iTunesArtwork images and Build ad-hoc/enterprise package IPA is checked

    Jeśli wolisz, możesz zamiast tego edytować plik csproj w edytorze tekstów i ręcznie dodać dwie odpowiednie właściwości do PropertyGroup konfiguracji, która będzie używana do kompilowania aplikacji:

    <BuildIpa>true</BuildIpa>
    <IpaIncludeArtwork>false</IpaIncludeArtwork>
    
  2. Jeśli dołączasz opcjonalny plik iTunesMetadata.plist, kliknij przycisk ... i wybierz go z listy i kliknij przycisk OK:

    Select iTunesMetadata.plist from the list

  3. Wywołaj program msbuild bezpośrednio i przekaż tę właściwość w wierszu polecenia:

    /Library/Frameworks/Mono.framework/Commands/msbuild YourSolution.sln /p:Configuration=Ad-Hoc /p:Platform=iPhone /p:BuildIpa=true
    

Dostosowywanie lokalizacji IPA

Dodano nową właściwość IpaPackageDir MSBuild, aby ułatwić dostosowywanie 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, xbuild 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>
        <PlatformTarget>x86&</PlatformTarget>
        <BuildIpa>true</BuildIpa>
        <IpaPackageDir>$(OutputPath)</IpaPackageDir>
    </PropertyGroup>
    

Alternatywną techniką kompilacji wiersza polecenia msbuild lub xbuild jest dodanie /p: argumentu IpaPackageDir w celu ustawienia 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. Polecenie xbuild mono rozszerza $() wyrażenia, ale nadal zaleca się używanie pełnej nazwy ścieżki, ponieważ xbuild został przestarzały na rzecz międzyplatformowej wersji msbuild.

Kompletny przykład, który korzysta z tego podejścia, może wyglądać podobnie do poniższego w systemie Windows:

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

Instalowanie usługi IPA przy użyciu programu iTunes

Wynikowy pakiet IPA można dostarczyć do użytkowników testowych na potrzeby instalowania na urządzeniach z systemem iOS lub dostarczanego do wdrożenia w przedsiębiorstwie. Niezależnie od wybranej metody użytkownik końcowy zainstaluje pakiet w swojej aplikacji iTunes na komputerze Mac lub komputerze z systemem Windows, klikając dwukrotnie plik IPA (lub przeciągając go do otwartego okna iTunes).

Nowa aplikacja systemu iOS zostanie wyświetlona w sekcji Moje aplikacje, w której można ją kliknąć prawym przyciskiem myszy i uzyskać informacje o aplikacji:

Użytkownik może teraz zsynchronizować aplikację iTunes ze swoim urządzeniem, aby zainstalować nową aplikację systemu iOS.

Podsumowanie

W tym artykule opisano konfigurację wymaganą do przygotowania aplikacji platformy Xamarin.iOS na potrzeby kompilacji ze sklepu App Store. Pokazano, jak utworzyć pakiet IPA i jak zainstalować wynikową aplikację systemu iOS na urządzeniu z systemem iOS użytkownika końcowego na potrzeby testowania lub dystrybucji wewnętrznej.