Skip to content

Howto Create an Asset Catalog for XCode 9 Appstore Submission?

Julien Villegas edited this page Dec 4, 2018 · 4 revisions

Thanks to @Majirefy for the detailed report!

I think most people will refer to this tutorial for building iOS game with LibGDX(https://frozenfractal.com/blog/2016/3/18/porting-libgdx-games-to-ios-for-apple-dummies-2/). Maybe LibGDX is the most common case for RoboVM.

Yes, in docs of RoboVM(http://docs.robovm.com/configuration.html#resource-processing), Asset catalogs is supported.

  1. Generate Assets.xcassets folder. Create an empty iOS project with Xcode 9, give it whatever name. Then refer to Assets.xcassets folder in left panel:
2017-09-24 9 22 15
  1. Double click to open it. Xcode creates a default asset catalog named "AppIcon". Select "AppIcon", then add all icon size of your app. To generate the icons required with the right names and sizes you can use one of the many icon Generator available online. e.g.:https://makeappicon.com
2017-09-24 9 23 47
  1. Close this windows and save project. Then refer to this project's folder in Finder:
2017-09-24 9 26 34

There will be a folder called "Assets.xcassets":

2017-09-24 9 27 13
  1. Open your RoboVM project's folder, then go to the folder where you set to save your iOS assets. This folder will be like "data", "resource". To know which, just open "robovm.xml" file, there will be a node named "resources", and then it will tell you which folder RoboVM will refer to when building iOS app with given assets.
2017-09-24 9 31 24

In my case, it will be "data" folder, just under my iOS project's folder:

2017-09-24 9 32 02
  1. Copy "Assets.xcassets" folder from the project we just created with Xcode 9 to "data" folder.

  2. Modify your iOS project's "Info.plist.xml" file. Under "dict" node, add like this:

2017-09-24 9 35 04

Then comment out all the icon info in "CFBundleIcons", you will not use this anymore. 2017-09-24 9 36 43

First time I tried to upload the app I got the following error message: ERROR ITMS-90022: "Missing required icon file. The bundle does not contain an app icon for iPhone / iPod Touch of exactly '57x57' pixels, in .png format for iOS versions < 7.0."

That´s because the icon generator I was using did not create icons for older devices. If you are ok with excluding older devices, add the following Entry to your info.plist in your iOS folder. <key>MinimumOSVersion</key> <string>7.0</string>

All done! Use gradle to build your app like before. New IPA file will bundled with AppIcon.