[Marmalade SDK] Deploying to iOS 64-bit (AARCH64)

Since feb’2015, It is mandatory to have 64-bit support in your Marmalade App.
In order to deploy a 64-bit compatible .ipa, you need Marmalade SDK 7.5 or higher.

First, build your application using GCC AARCH64 Release, instead of old GCC ARM Release.

Then, when Marmalade Deploy Tool opens, select “ARM+AARCH64 GCC Release” (see screenshot below)

marmalade64bitm1

In the next step “Stage: Configuration – Platform selection”, select “iOS fat” as the platform.

marmalade64bitm2

Rest of the steps are the same. Click on “Deploy All” to run the deployment process. Note that iOS-native extensions must be also recompiled in a Mac running iOS 8 SDK or higher. Else, ld will ignore the .a files and extensions won’t be linked to your .ipa. If you also need to link your 64-bit iOS extension see this post.

[iOS SDK] Changing TabBar order in a storyboard

In a storyboard-based app containing an UITabBarController with various ViewControllers as tabs, the need of changing the tab’s order is very frequent due to changes in the App’s requirements.

There are various ways of doing that. In my opinion, the most elegant one is doing the steps above:

1.- Open Xcode, open the current project. In the project structure (left menu), right click on the desired .storyboard file. Select “Open as > Source code”
2.- Inside the enormous XML file, find a tag with a tag inside it. The Find command (CMD+F) might be helpful.
3.- You might have several tags with attributes “destination”,”kind”,”relationship” and “id”; One on each line. Change the lines to the order of your preference (for example, the fourth becomes the first, the second is swapped with the third, etc). Useful keyboard shortcuts: ALT+arrow_up, ALT+arrow_down.
4.- Save (CMD+S) the file, again right click on the .storyboard and select “Open as > Interface Builder”. You might see your tabs in the desired order 🙂

Another useful thing: Inside the tag (could be also , or another derived class), you can set the “title” attribute. This value will be the text displayed as the tab name. More info in this SO question

Have a nice coding day!

[iOS SDK] iTunes Connect’s Routing App coverage file (geojson)

Or, as said in Spanish, “Archivo de cobertura de la app de encaminamiento”. If you are submitting your App to iTunes Store, and you get an error message saying it needs the “Routing App Coverage File”, have a look at the nice explanation on Giacomo Balli’s blog.

If you are just going for the quick solution, create an empty file with your favorite text editor and add this sample content inside:

{
 "type": "MultiPolygon",
 "coordinates": [[[
 [-3.787683,40.48145],
 [-3.523668,40.480145],
 [-3.582720,40.337934],
 [-3.840898,40.371423],
 [-3.787683,40.48145]
 ]]]
 }

IMPORTANT: note that the first and last coordinates are the same. This is a must when declaring a MultiPolygon. It must be “closed”.

This sample MultiPolygon contains a region located in Madrid, Spain. Include your own coordinates in a  location of your choice. geojsonlint is a good source for testing/debugging your region.

Save the file to .geojson format, and upload it as the “Routing App Coverage File” in iTunes Store.