Po delší době (zhruba půl roku) jsme ve firmě potřebovali vydat aplikaci na iOS, která je postavena na technologii Xamarin.Forms. Od posledního vydání aplikace Apple vpustil do světa nový iOS, konkrétně verzi 11, která s sebou bohužel nese nové požadavky pro vývojáře. Zástupci firmy Apple se totiž rozhodli, že “starý” způsob poskytování ikon a lounch screenů, který byl založen na pojmenování a velikostech, už není vyhovující, a tak zavedli asset catalog.
Nově tedy aplikace musí využívat asset catalog, konkrétně soubor XYZ.xcassets. V případě, že se pokusíte vydat aplikaci bez použití tohoto catalogu, nahrávní aplikace přes Application Loader na macbooku projde a může se zdát, že má člověk vyhráno, bohužel je ale během několika minut odměněn emailem ve kterém stojí:
Dear developer,
We have discovered one or more issues with your recent delivery for "XYZ". To process your delivery, the following issues must be corrected:
Missing Info.plist value - A value for the Info.plist key 'CFBundleIconName' is missing in the bundle 'XYZ'. Apps built with iOS 11 or later SDK must supply app icons in an asset catalog and must also provide a value for this Info.plist key. For more information see http://help.apple.com/xcode/mac/current/#/dev10510b1f7.
Once these issues have been corrected, you can then redeliver the corrected binary.
Regards,
The App Store team
Snadné řešení
Myslím, že se shodneme, že popis problému je jednoznačný, chybí asset catalog. Na fórech píší, že v případě založení nového projektu Xamarin.iOS je asset catalog používán by default. Doufám, že v tomto případě budete mít víc štěstí než já, protože v mém případě nenastala žádná změna. Po delší době strávené vyhledáváním podobných problémů jsem zjistil, že je potřeba nejen založit asset catalog a přidat všechny potřebné ikony a lounch screeny, ale i začlenit ho do Info.plist. Catalog se přidá velmi snadno, jak vidíte na obrázku níže.
By default je catalog pojmenován Media a skládá se z LaunchImages a AppIcons. Formát catalogu je přehledný, takže je snadné doplnit chybějící Lounch screeny a ikony, zde se jedná jednoznačně o krok dobrým směrem. Navíc přibyla akorát ikona ve formátu 1024x1024, která už je stejně potřeba nahrát na portál. Dále je potřeba smazat všechny staré záznamy spojené s ikonami ze souboru Info.plist a manuálně přidat tuto sekci, kód se skládá z názvu catalogu a cesty k jendotlivým zdrojům. Poté je možné aplikaci standadnrím způsobem vydat.
XSLaunchImageAssets
Resources/Media.xcassets/LaunchImages.launchimage
XSAppIconAssets
Resources/Media.xcassets/AppIcons.appiconset
Závěr
Použití asset catalogu je jednoduché a přehledné, pouze je mrzuté, že není nikdo pořadně řečeno, že je asset catalog potřeba manuálně přidat do Info.plist.