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 velikost obrazovky iPhone 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í:
- Ujistěte se, že popis aplikace odpovídá jeho funkcím.
- 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:
- Přihlaste se k portálu Apple Developer Portal. Pokud ještě nemáte Apple ID, vytvořte nejdřív Apple ID .
- Přejděte do části Certifikáty, ID a Profily a pak přejděte do části Identifikátory .
- Klikněte na + tlačítko vedle záhlaví Identifikátory v horní části stránky.
- Vyberte ID aplikací a klikněte na Pokračovat.
- Vyberte Aplikaci a potom klikněte na Pokračovat.
- 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.
- 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:
- Přihlaste se k portálu Apple Developer Portal.
- Přejděte do části Certifikáty, ID a Profily a pak přejděte do části Profily .
- Klikněte na + tlačítko, vyberte Vývoj aplikací pro iOS a App Store a klikněte na Pokračovat.
- V seznamu vyberte ID aplikace a klikněte na Pokračovat.
- Vyberte podpisový certifikát a klikněte na Pokračovat.
- Vyberte zařízení, která chcete zahrnout do tohoto profilu, a klikněte na Pokračovat.
- Zadejte název zřizovacího profilu a kliknutím na Vygenerovat profil.
- 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:
Na panelu řešení otevřete soubor Info.plist umístěný v projektu iOS.
Ujistěte se, že jste v zobrazení aplikace . To můžete nastavit kliknutím na možnost v dolním navigačním panelu.
Jako možnost Podepisování vyberte ruční zřizování . Soubor uložte a zavřete.
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.
Nastavte konfiguraci na verzi a platformu na iPhone.
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í.
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.
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.
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.
Zkontrolujte optimalizaci obrázků PNG a zmenšíte tak velikost aplikace.
Ladění by nemělo být povolené, protože sestavení zbytečně z velkého rozsahu.
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:
Podívejte se také na průvodce mechanikou sestavení pro iOS, který dále popisuje nastavení sestavení.
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í.
Ujistěte se, že je konfigurace nastavená na verzi a platformu je nastavená na iPhone.
Nastavení podpisové identity na distribuci (automatická)
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:
Kliknutím na tlačítko OK uložte změny vlastností projektu.
Konfigurace aplikace v iTunes Connect
iTunes Connect je sada webových nástrojů pro správu aplikací pro iOS v App Storu. Vaše aplikace Xamarin.iOS musí být správně nakonfigurovaná v iTunes Connect, 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 Connect .
Sestavení a odeslání aplikace
Když máte správně nakonfigurovaná nastavení sestavení a iTunes Connect čeká na odeslání, můžete teď vytvořit aplikaci a odeslat ji společnosti Apple.
V Visual Studio pro Mac vyberte konfiguraci sestavení vydané verze a zařízení (nikoli simulátor), pro které se má sestavit.
V nabídce Sestavení vyberte Archiv pro publikování.
Po vytvoření archivu se zobrazí zobrazení Archivy . Kliknutím na Podepsat a distribuovat... otevřete průvodce publikováním.
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.
Vyberte distribuční kanál App Storu. Klikněte na tlačítko Další.
Vyberte Nahrát jako cíl. Klikněte na tlačítko Další.
V okně zřizovacího profilu vyberte vaši podpisové identity, aplikaci a zřizovací profil. Klikněte na tlačítko Další.
V okně s informacemi o připojení app Storu vyberte uživatelské jméno Apple ID z nabídky a zadejte heslo specifické pro aplikaci. Klikněte na tlačítko Další.
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 Connect.
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 iTunes Connect
Pokud chcete zobrazit stav odeslání aplikace, přihlaste se k iTunes Connect 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í.
Tipy a triky
Přizpůsobení umístění .ipa
Vlastnost MSBuild umožňuje IpaPackageDir
př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áteRelease|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 iTunes Connect.
Shrnutí
Tento článek popisuje, jak nakonfigurovat, sestavit a odeslat aplikaci pro iOS pro vydání v App Storu.