Publikování aplikací Xamarin.iOS do App Storu

Pokud chcete publikovat aplikaci do App Storu, musí ji vývojář aplikace nejdřív odeslat – spolu se snímky obrazovky, popisem, ikonami a dalšími informacemi – společnosti Apple, aby ji mohli zkontrolovat. Po schválení aplikace ji Apple umístí do App Storu, kde si ji uživatelé můžou koupit a nainstalovat přímo ze svých zařízení s iOSem.

Tento průvodce popisuje postup přípravy aplikace pro App Store a jeho odeslání na Apple ke kontrole. Konkrétně popisuje:

  • Podle pokynů pro kontrolu App Storu
  • Nastavení ID a oprávnění aplikace
  • Poskytnutí ikony App Storu a ikon aplikací
  • Nastavení zřizovacího profilu App Storu
  • Aktualizace konfigurace sestavení vydané verze
  • Konfigurace aplikace v iTunes Connectu
  • Vytvoření aplikace a odeslání aplikace do Apple

Důležité

Apple uvedl , že od března 2019 musí být všechny aplikace a aktualizace odeslané do App Storu vytvořené pomocí sady SDK pro iOS 12.1 nebo novější, která je součástí Xcode 10.1 nebo novější. Aplikace by také měly podporovat velikosti obrazovky i Telefon XS a 12,9" iPad Pro.

Pokyny pro App Store

Před odesláním aplikace pro publikování v App Storu se ujistěte, že splňuje standardy definované pokyny pro revize App Storu společnosti Apple. Když odešlete aplikaci do App Storu, Apple ji zkontroluje, aby splňovala tyto požadavky. Pokud tomu tak není, Apple ho odmítne a budete muset vyřešit citované problémy a znovu ho odeslat. Proto je vhodné seznámit se s pokyny co nejdříve v procesu vývoje.

Při odesílání aplikace si můžete dát pozor na několik věcí:

  1. Ujistěte se, že popis aplikace odpovídá jeho funkcím.
  2. Otestujte, že aplikace nespadá pod normálním využitím. To zahrnuje využití na všech zařízeních s iOSem, která podporuje.

Podívejte se také na prostředky související s App Storem, které apple poskytuje.

Nastavení ID a oprávnění aplikace

Každá aplikace pro iOS má jedinečné ID aplikace, které má přidruženou sadu aplikačních služeb označovaných jako nároky. Nároky umožňují aplikacím provádět různé akce, jako je příjem nabízených oznámení, přístup k funkcím iOSu, jako je HealthKit a další.

Pokud chcete vytvořit ID aplikace a vybrat všechna potřebná oprávnění, přejděte na Portál pro vývojáře Apple a postupujte takto:

  1. Přihlaste se k portálu Apple Developer Portal. Pokud ještě nemáte Apple ID, vytvořte nejdřív Apple ID .
  2. Přejděte do části Certifikáty, ID a Profily a pak přejděte do části Identifikátory .
  3. Klikněte na + tlačítko vedle záhlaví Identifikátory v horní části stránky.
  4. Vyberte ID aplikací a klikněte na Pokračovat.
  5. Vyberte Aplikaci a potom klikněte na Pokračovat.
  6. Zadejte popis a ID sady prostředků pro novou aplikaci a vyberte všechny možnosti, které bude aplikace Xamarin.iOS vyžadovat. Služby App Services jsou podrobněji popsány v příručce Práce s funkcemi v Xamarin.iOS . Až výběr dokončíte, klikněte na Pokračovat.
  7. Kliknutím na tlačítko Zaregistrovat dokončete proces vytvoření nového ID aplikace.

Kromě výběru a konfigurace požadovaných aplikačních služeb při definování ID aplikace musíte nakonfigurovat ID a oprávnění aplikace v projektu Xamarin.iOS úpravou souborů Info.plist a Entitlements.plist . Další informace najdete v příručce Práce s nároky v Xamarin.iOS , která popisuje, jak vytvořit soubor Entitlements.plist a význam různých nastavení nároků, která obsahuje.

Zahrnout ikonu App Storu

Když odešlete aplikaci společnosti Apple, ujistěte se, že obsahuje katalog prostředků, který obsahuje ikonu App Storu. Pokud se chcete dozvědět, jak to udělat, podívejte se na ikony App Storu v průvodci Xamarin.iOS .

Nastavení ikon aplikací a spuštění obrazovek

Aby apple mohl aplikaci pro iOS zpřístupnit v App Storu, musí mít správné ikony a spouštěcí obrazovky pro všechna zařízení s iOSem, na kterých může běžet. Další informace o nastavení ikon aplikací a spouštěcích obrazovek najdete v následujících příručkách:

Vytvoření a instalace zřizovacího profilu App Storu

iOS používá zřizovací profily k řízení způsobu nasazení konkrétního sestavení aplikace. Jedná se o soubory, které obsahují informace o certifikátu použitém k podepsání aplikace, ID aplikace a místa, kde je možné aplikaci nainstalovat. Pro vývoj a ad hoc distribuci zahrnuje zřizovací profil také seznam povolených zařízení, do kterých můžete aplikaci nasadit. V případě distribuce App Storu se ale zahrnou jenom informace o certifikátu a ID aplikace, protože jediným mechanismem pro veřejnou distribuci je App Store.

Pokud chcete vytvořit a nainstalovat zřizovací profil app Storu, postupujte takto:

  1. Přihlaste se k portálu Apple Developer Portal.
  2. Přejděte do části Certifikáty, ID a Profily a pak přejděte do části Profily .
  3. Klikněte na + tlačítko, vyberte Vývoj aplikací pro iOS a App Store a klikněte na Pokračovat.
  4. V seznamu vyberte ID aplikace a klikněte na Pokračovat.
  5. Vyberte podpisový certifikát a klikněte na Pokračovat.
  6. Vyberte zařízení, která chcete zahrnout do tohoto profilu, a klikněte na Pokračovat.
  7. Zadejte název zřizovacího profilu a kliknutím na Vygenerovat profil.
  8. Pomocí nástrojů pro správu účtů Apple v Xamarinu si můžete na Mac stáhnout nově vytvořený zřizovací profil. Pokud jste na Macu, můžete si také stáhnout zřizovací profil přímo z portálu Apple Developer Portal a poklikáním na něj nainstalovat.

Podrobné pokyny najdete v tématu Vytvoření distribučního profilu a Výběr distribučního profilu v projektu Xamarin.iOS.

Aktualizace konfigurace sestavení vydané verze

Nové projekty Xamarin.iOS automaticky nastaví konfigurace sestavení debug a Release. Chcete-li správně nakonfigurovat sestavení vydané verze , postupujte takto:

  1. Na panelu řešení otevřete soubor Info.plist umístěný v projektu iOS.

  2. Ujistěte se, že jste v zobrazení aplikace . To můžete nastavit kliknutím na možnost v dolním navigačním panelu.

  3. Jako možnost Podepisování vyberte ruční zřizování . Soubor uložte a zavřete.

  4. Pravým tlačítkem myši klikněte na název projektu v oblasti řešení, vyberte Možnosti a přejděte na kartu Sestavení iOS.

  5. Nastavte konfiguraci na verzi a platformu na i Telefon.

  6. Pokud chcete sestavit konkrétní sadu SDK pro iOS, vyberte ji ze seznamu verzí sady SDK. V opačném případě ponechte tuto hodnotu ve výchozím nastavení.

  7. Propojení zmenšuje celkovou velikost aplikace odstraněním nepoužívaného kódu.

    • Ve většině případů by chování linkeru mělo být nastaveno pouze na výchozí hodnotu sad SDK rozhraní Link Framework.
    • Použití možnosti Ne linkovat může způsobit, že Apple odmítne aplikaci kvůli přítomnosti neveřejných rozhraní API pro iOS v Xamarin.iOS, která by byla propojena pouze se sadami SDK link frameworku.
    • Odkaz Vše by se měl používat opatrně, protože bude vyjímat kód ze všech sestavení v projektu, včetně knihoven třetích stran. Může odstranit kód, který může knihovna třetí strany použít pouze prostřednictvím reflexe, že linker nemůže rozpoznat, protože provádí statickou analýzu kódu k určení používaného kódu knihovny. Použijte funkci Link All s opatrností, protože možná budete muset ručně zachovat některé třídy a/nebo metody, aby nedocházelo k selhání modulu runtime kvůli chybějícímu kódu.
    • Další informace najdete v průvodci propojením aplikací Xamarin.iOS.
  8. Pro iOS 11 vyberte jednu z architektur zařízení, která podporuje ARM64. Další informace o vytváření 64bitových zařízení s iOSem najdete v části Povolení 64bitových buildů aplikací Xamarin.iOS v dokumentaci k 32/64bitovým aspektům platformy.

  9. K vytvoření menšího a rychlejšího kódu můžete použít kompilátor LLVM . Tato možnost ale zvyšuje časy kompilace.

  10. Zkontrolujte optimalizaci obrázků PNG a zmenšíte tak velikost aplikace.

  11. Ladění by nemělo být povolené, protože sestavení zbytečně z velkého rozsahu.

  12. V závislosti na potřebách vaší aplikace můžete také chtít upravit typ používaného uvolňování paměti a nastavit pro internationalizaci.

    Po nastavení možností, jak je popsáno výše, by nastavení sestavení mělo vypadat nějak takto:

    iOS Build settings

    Podívejte se také na průvodce mechanikou sestavení pro iOS, který dále popisuje nastavení sestavení.

  13. Přejděte na kartu Podepisování sady prostředků pro iOS. Pokud zde uvedené možnosti nejsou upravitelné, ujistěte se, že je v souboru Info.plist vybráno ruční zřizování.

  14. Ujistěte se, že je konfigurace nastavená na verzi a platformu je nastavená na i Telefon.

  15. Nastavení podpisové identity na distribuci (automatická)

  16. V případě zřizovacího profilu vyberte profil zřizování z App Storu vytvořený výše.

    Možnosti podepisování sady prostředků vašeho projektu by teď měly vypadat nějak takto:

    iOS Bundle Signing

  17. Kliknutím na tlačítko OK uložte změny vlastností projektu.

Konfigurace aplikace v iTunes Připojení

iTunes Připojení je sada webových nástrojů pro správu aplikací pro iOS v App Storu. Aplikace Xamarin.iOS musí být správně nakonfigurovaná v iTunes Připojení, aby ji bylo možné odeslat společnosti Apple ke kontrole a vydání v App Storu.

Informace o tom, jak to udělat, najdete v průvodci konfigurací aplikace v iTunes Připojení.

Sestavení a odeslání aplikace

Když máte správně nakonfigurovaná nastavení sestavení a iTunes Připojení čeká na odeslání, můžete teď vytvořit aplikaci a odeslat ji do Apple.

  1. V Visual Studio pro Mac vyberte konfiguraci sestavení vydané verze a zařízení (nikoli simulátor), pro které se má sestavit.

    Build configuration and platform selection

  2. V nabídce Sestavení vyberte Archiv pro publikování.

  3. Po vytvoření archivu se zobrazí zobrazení Archivy . Kliknutím na Podepsat a distribuovat... otevřete průvodce publikováním.

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

    Poznámka:

    Ve výchozím nastavení se v zobrazení Archivy zobrazují jenom archivy pro otevřené řešení. Pokud chcete zobrazit všechna řešení s archivy, zaškrtněte políčko Zobrazit všechny archivy . Je vhodné zachovat staré archivy, aby informace o ladění, které obsahují, bylo možné v případě potřeby použít k symbolickému hlášení o chybách.

  4. Vyberte distribuční kanál App Storu. Klikněte na tlačítko Další.

  5. Vyberte Nahrát jako cíl. Klikněte na tlačítko Další.

  6. V okně zřizovacího profilu vyberte vaši podpisové identity, aplikaci a zřizovací profil. Klikněte na tlačítko Další.

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

  7. V okně s informacemi o Připojení App Storu vyberte v nabídce uživatelské jméno Apple ID a zadejte heslo specifické pro aplikaci. Klikněte na tlačítko Další.

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

  8. Ověřte podrobnosti balíčku a klikněte na Publikovat. Po výběru umístění pro uložení souboru .ipa nahraje průvodce aplikaci do App Storu Připojení.

    Poznámka:

    Apple může odmítnout aplikace s iTunesMetadata.plist zahrnutým v souboru .ipa, což vede k chybě, jako je například následující:

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

    Alternativní řešení této chyby najdete v tomto příspěvku na fórech Xamarinu.

Stav Připojení iTunes

Pokud chcete zobrazit stav odeslání aplikace, přihlaste se k iTunes Připojení a vyberte aplikaci. Počáteční stav by měl být Čeká na revizi, i když během zpracování může dočasně číst přijaté nahrávání.

Waiting For Review

Tipy a triky

Přizpůsobení umístění .ipa

Vlastnost MSBuild umožňuje IpaPackageDirpřizpůsobit výstupní umístění souboru .ipa. Pokud IpaPackageDir je nastavena na vlastní umístění, soubor .ipa se umístí do tohoto umístění místo výchozího časového razítka podadresáře. To může být užitečné při vytváření automatizovaných buildů, které spoléhají na správnou práci s konkrétní cestou k adresáři, například při sestavováních kontinuální integrace (CI).

Existuje několik možných způsobů použití nové vlastnosti. Pokud chcete například vytvořit výstup souboru .ipa do původního výchozího adresáře (například v Xamarin.iOS 9.6 a nižší), můžete vlastnost nastavit IpaPackageDir tak, aby $(OutputPath) používala jeden z následujících přístupů. Oba přístupy jsou kompatibilní se všemi sestaveními Xamarin.iOS sjednoceného rozhraní API, včetně sestavení IDE a sestavení příkazového řádku, které používají msbuild nebo mdtool:

  • První možností je nastavit IpaPackageDir vlastnost uvnitř <PropertyGroup> elementu v souboru MSBuild . Můžete například přidat následující položky <PropertyGroup> do dolní části souboru .csproj projektu aplikace pro iOS (těsně před zavírací </Project> značkou):

    <PropertyGroup>
      <IpaPackageDir>$(OutputPath)</IpaPackageDir>
    </PropertyGroup>
    
  • Lepším přístupem je přidat <IpaPackageDir> prvek do dolní části existujícího <PropertyGroup> souboru, který odpovídá konfiguraci použité k sestavení souboru .ipa. To je lepší, protože připraví projekt na budoucí kompatibilitu s plánovaným nastavením na stránce vlastností projektu možností IPA pro iOS. Pokud aktuálně používáte Release|iPhone konfiguraci k sestavení souboru .ipa, může úplná aktualizovaná skupina vlastností vypadat nějak takto:

    <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>
    

Alternativní technikou sestavení příkazového řádku msbuild je přidání argumentu IpaPackageDir příkazového /p: řádku pro nastavení vlastnosti. V tomto případě si všimněte, že nástroj msbuild nerozbaluje $() výrazy předané na příkazovém řádku, takže syntaxi není možné použít $(OutputPath) . Místo toho musíte zadat úplný název cesty.

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

Nebo na Macu:

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

S vytvořeným a archivovaným sestavením distribuce teď můžete odeslat aplikaci do Připojení iTunes.

Shrnutí

Tento článek popisuje, jak nakonfigurovat, sestavit a odeslat aplikaci pro iOS pro vydání v App Storu.