When deploying a Marmalade App to AARCH64 (iOS 64-bit support), it is also necessary to re-compile its native extensions.
Else, “ld” will ignore the whole extension and warn us about the fact.
In order to recompile the iOS extension, you are forced to use a Mac. This can be an impediment if you use Marmalade under Windows. The steps you basically need are

1.- Download and install Marmalade SDK for Mac
2.- If you are Windows user, release your license on Windows Marmalade Hub
3.- Activate your license in Mac Marmalade Hub
4.- Copy the whole extension’s folder from Windows to your mac
5.- Right-click on the extension’s .mkb for iphone (extensionName_iphone.mkb), select “Open with”. There will be two options: Mkb (default), and Mkb (7.4.3), choose the second one. Note that the numbers may change in future Marmalade versions
6.- A shell command-prompt will appear, and will attempt to compile the extension. Once completed, make sure that fileextensionName/lib/arm64/libExtName.a
is present. There should be also two folders with names finishing in _iphone_scons_aarch64 and _iphone_iphone_xcode. If that’s not the case, go to step 6b 🙂
6b.- [Optional] Open the extension Xcode project (it is located inside build_extName_iphone_iphone_xcode folder), go to Build settings, and select “Latest iOS SDK” (mine is 8.2 in this moment), and include “arm64” inside Valid architectures. This is explained in more depth in this document.
7.- Once process is complete, you can copy your extension folder back to your usual Marmalade installation (either under Windows or Mac), and recompile the whole App (including extension) to AARCH64 in iOS-fat mode. More info in the previous post 🙂

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

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.

I found a method that successfully runs my App in my iPad Air running iOS 8.1.2.

Pre-requisites:

– A valid DEVELOPMENT certificate (.cer).
– A valid DISTRIBUTION certificate (.cer).
– A valid DEVELOPMENT provisioning profile, including the DeviceID of your Test iPhone/iPad, and matching the AppID you indicate in your .mkb file
– A valid DISTRIBUTION provisioning profile, linked to the previously mentioned certificate.
– Certificates installed in your iPad using Apple Configurator (see screenshot below)
– Provisioning profiles also installed on the device (“iPhone Configuration Utility” can do that)

If you don’t have all the pre-requisites, this tutorial may be helpful for you.

Procedure:

1.- Download the DEVELOPMENT certificate from Apple Developer portal, file will be called “ios_development.cer”. IMPORTANT: Rename it to developer_identity.cer, and copy it to

C:\Marmalade\7.x\s3e\deploy\iphone\plugins\certificates

2.- Repeat step 1 with the DISTRIBUTION certificate. In this case, file name will be correct (distribution_identity.cer). Make sure these two files are present in your “certificates” folder: developer_identity.cer, distribution_identity.cer.

5.1.- The iPhone Resigner may display errors asking you to copy all the “C:\Marmalade\…\certificates” folder to:
PROJECT_ROOT\build_xyz_vc9\deployments\iphone\…\arm\certificates\
If this is the case, do it.
The files that iPhone Resigner is going to need are:
– developer_identity.key (generated with iPhone Sign Request tool when generating the certificate)
– developer_identity.cer (that’s your Apple development certificate, renamed this way)
– Apple Root CA.cer (downloaded from Apple Developer portal, also bundled in Marmalade)

6.- Deploy the recently created .ipa (signed with DISTRIBUTION, re-signed with DEVELOPMENT) to your iPhone or iPad. Make sure the device has the certificates and provisioning profiles installed.

In my case, this is the only way to make the App run on device. If I directly use DEVELOPMENT profile in step 3, it doesn’t work.