I learned this the hard way just like every thing else in here related to NativeScript. It’s a young framework and there is not a ton of documentation or much of a community yet. But I love it and the slack community is pretty active.
I finally finished an app and needed to get it in iTunes for my boss. I started following build instructions using Xcode which involved following along with NativeScript’s docs and also getting linked over to Apple’s dev docs a lot. Somewhere along the way I felt that I needed to make some changes to my app in Xcode so that it would be able to get submitted for review as it kept hitting errors when trying to upload.
Icons are handled in a way that’s not overly complex but super easy to screw up. When you open your project that NativeScript generates you will see a lot of stuff going on. One of those is the “Use Asset Catalog” option for your icons.
If you have any issues with icons when trying to upload to iTunes you will probably start toying with the Asset Catalog and your info.plist. One word of advice: DON’T!
NativeScript handles this for you just fine. Make sure you have all required icons in your /app/App_Resources/iOS directory (including your 120px ones! I.e. 40@3x and so on, these are new and screwed me up bad).
tns prepare ios
The point is, when you want to build your app just run tns prepare ios then open the project in Xcode. You can have it handle some of the automated tasks you might need when it pops up its warnings, but don’t screw with the .plist file or the asset catalog stuff or you will spend an entire day like me trying to figure out what’s wrong.
When you run the prepare CLI command NativeScript builds out a fully functional Xcode project for you. Other than dealing with setting up your Apple developer account and connecting it to Xcode there’s not much else for you to do. When you are ready to build and submit to the app store all you have to do is make sure the device selected is “Generic iOS Device” hit Product > Archive then when the Organizer window opens Validate then Upload to iTunes.