Signing your App


Have more questions after reading about the signing process? Check out the FAQ here.

Signing your app: Unity (C#)




Signing For Android

You can upload a test version of your .apk file to be Enhanced for testing using a certificate from a valid keystore you upload, a generic android debug certificate or none at all. To run on a device, your APK file must be signed for release or debug. Important: your app MUST be signed for release with a certificate from a valid keystore, either by uploading your keystore to Enhance or manually, before it can be accepted into the Google Play store.

In the Unity Publishing Settings for Android you have the ability to use an existing keystore or generate a new keystore for signing your application for debug or release. Click here and scroll down to "Publishing Settings". When you are ready to create a release version of your application either "Use Existing Keystore", which will allow you to select a keystore file on your computer, or "Create a New Keystore" to generate a new release keystore that contains a certificate to sign your application with.

After you have set your signing up within Unity you will need to Enhance with the release keystore.

Signing For iOS

Unity will generate an XCode project for you to use when you build the iOS version of your project. Once you have an XCode project, you can follow the iOS (Objective-C) instructions (above). You may also find their official video showing how to submit your game to the App Store helpful: click here to view it.

Signing your app: Android (Java)




Signing For Android

You can upload a test version of your .apk file to be Enhanced for testing using a certificate from a valid keystore you upload, a generic android debug certificate or none at all. To run on a device, your APK file must be signed for release or debug. Important: your app MUST be signed for release with a certificate from a valid keystore, either by uploading your keystore to Enhance or manually, before it can be accepted into the Google Play store.

If you are using Android Studio or the command line to compile your application file, the official Android website has provided a detailed guide on how to sign your application for release. Click here to get started.

Signing your app: iOS (Objective-C)




Signing For iOS

You will need to sign up for Apple Developer program before you can sign your app for deployment. If your app is still in development, you can export a development certificate.

You can either use your own generated signing assets or allow XCode to handle your signing assets for you.

Manual Signing Setup

If you want to manage your own signing assets, you can use the written guide on the Apple website. Here are some more helpful resources:

Automatic Signing Setup (Recommended!)

Allowing XCode to manage your signing assets is a much simpler process (usually!). To do this, simply select "Automatically manage signing" under the "General" tab of build target settings in XCode, as below:

Exporting the certificate

No matter which method you use, XCode will add your private key and certificate to your keychain. The next step is to export a P12 format file that Enhance can use for signing. Make sure you have built the appropriate version of your app - the best way is to export an IPA file by choosing "Product" > "Archive" from the top menu. Make note of the type of IPA you are creating - if it is a Development package you will need a developer certificate, or if it is an Ad Hoc or App Store Distribution package you will need a distribution certificate.

Once you have built your app, XCode will have added your certificate and private key to your keychain. To convert this to a P12 file, open up the Keychain Access application that comes pre-installed on your mac.

Find your certificate in Keychain Access. There is a search function in the top right of the window - you should be able to find it easily if you search for "iPhone". Once you have found it, be sure to click the exposure triangle to the left of the certificate.

This will reveal your private key, which can then be exported by right-clicking and choosing the "Export" option as pictured above. This will give you the required P12 format file that can be used with Enhance.

Note: It is really easy to forget to click the exposure triangle and select the private key. This step is important because otherwise Keychain Access will try to bundle any linked private keys in with the certificate, resulting in a P12 file containing multiple private keys - with no sensible way for Enhance to know which one to sign with, it simply defaults to the first signing key found within the P12 file, which will often result in the app being signed with the wrong assets and refusing to run. Be sure to select the private key before exporting!

Signing your app: OpenFL (Haxe)




Signing For Android

You can upload a test version of your .apk file to be Enhanced for testing using a certificate from a valid keystore you upload, a generic android debug certificate or none at all. To run on a device, your APK file must be signed for release or debug. Important: your app MUST be signed for release with a certificate from a valid keystore, either by uploading your keystore to Enhance or manually, before it can be accepted into the Google Play store.

By default, OpenFL will sign your app with a debug certificate. You can change this with the --certificate option or, alternatively, use the apksigner tool to sign your apk file after build (if it's unsigned). You can also use FlashDevelop's Haxe project templates.

Signing For iOS

With OpenFL, you can generate an XCode project using the OpenFL command line tools. Once you have an XCode project, you can follow the iOS (Objective-C) instructions (above).

Signing your app: Air (AS3)




Signing For Android

You can upload a test version of your .apk file to be Enhanced for testing using a certificate from a valid keystore you upload, a generic android debug certificate or none at all. To run on a device, your APK file must be signed for release or debug. Important: your app MUST be signed for release with a certificate from a valid keystore, either by uploading your keystore to Enhance or manually, before it can be accepted into the Google Play store.

You can generate the needed keystore using Flash Professional, Adobe Animate CC or using FlashDevelop's mobile project templates.

Signing For iOS

Signing for iOS with Adobe Air requires a P12 format signing certificate (which is the same format of certificate required by Enhance).

Adobe provides instructions for getting a P12 signing certificate for iOS here. The same P12 file used for signing your Adobe Air iOS application is the one that you will need to provide during the Enhance process to sign your iOS app.

Signing your app: Defold (Lua)




Signing For Android

You can upload a test version of your .apk file to be Enhanced for testing using a certificate from a valid keystore you upload, a generic android debug certificate or none at all. To run on a device, your APK file must be signed for release or debug. Important: your app MUST be signed for release with a certificate from a valid keystore, either by uploading your keystore to Enhance or manually, before it can be accepted into the Google Play store.

To sign your Defold Android app during packaging process, please follow the official manual which is available here.

Signing for iOS

To sign your Defold iOS app during packaging process, please follow the official manual which is available here.

Signing your app: Construct 2 (Visual)




Construct 2 is not able to build standalone mobile applications, which means you will use Cordova export. Please follow the Cordova (JS) instructions above.

Signing your app: Cordova (JS)




Signing For Android

You can upload a test version of your .apk file to be Enhanced for testing using a certificate from a valid keystore you upload, a generic android debug certificate or none at all. To run on a device, your APK file must be signed for release or debug. Important: your app MUST be signed for release with a certificate from a valid keystore, either by uploading your keystore to Enhance or manually, before it can be accepted into the Google Play store.

To sign Android Cordova app during the build, we recommend that you follow the official and detailed instructions available here.

Signing For iOS

With Cordova, you can generate an XCode project using the Cordova command line tools. Once you have an XCode project, you can follow the iOS (Objective-C) instructions (above).

Signing your app: Stencyl (Visual)




Signing For Android

You can upload a test version of your .apk file to be Enhanced for testing using a certificate from a valid keystore you upload, a generic android debug certificate or none at all. To run on a device, your APK file must be signed for release or debug. Important: your app MUST be signed for release with a certificate from a valid keystore, either by uploading your keystore to Enhance or manually, before it can be accepted into the Google Play store.

To sign your Android Stencyl app during the build, we recommend that you follow the official and detailed instructions available here.

Signing For iOS

If you want to understand how the signing process works and what you will need, please check the official guide. To sign your iOS Stencyl app during the build, follow the steps from the official walkthrough.

Signing your app: Construct 3 (Cordova)




Signing for Android

You can upload a test version of your .apk file to be Enhanced for testing using a certificate from a valid keystore you upload, a generic android debug certificate or none at all. To run on a device, your APK file must be signed for release or debug. Important: your app MUST be signed for release with a certificate from a valid keystore, either by uploading your keystore to Enhance or manually, before it can be accepted into the Google Play store.

During the build process, Construct 3 allows you to either sign your app for testing (debug) or to not sign it at all (release). If you decide to build your app in the release mode, you will have to generate a new certificate. To do that, please check the Android (Java) instructions (above) or follow the steps from the official Construct 3 documentation available here.

Signing for iOS

If you decide to build your Construct 3 app for iOS, the export option will create a new XCode project for you. Once you have an XCode project, you can follow the iOS (Objective-C) instructions (above).

Signing your app: Xamarin (C#)




Signing for Android

You can upload a test version of your .apk file to be Enhanced for testing using a certificate from a valid keystore you upload, a generic android debug certificate or none at all. To run on a device, your APK file must be signed for release or debug. Important: your app MUST be signed for release with a certificate from a valid keystore, either by uploading your keystore to Enhance or manually, before it can be accepted into the Google Play store.

Visual Studio (Xamarin) allows you to import existing keystores and create new ones before you export your APK file. For more about information about this process, please check the official documentation here.

Signing For iOS

The signing process required by Xamarin is very similiar to the one which is suitable for XCode. You can follow the iOS (Objective-C) instructions (above) or the official documentation available here.

Signing your app: MIT App Inventor (Visual)




Signing for Android

You can upload a test version of your .apk file to be Enhanced for testing using a certificate from a valid keystore you upload, a generic android debug certificate or none at all. To run on a device, your APK file must be signed for release or debug. Important: your app MUST be signed for release with a certificate from a valid keystore, either by uploading your keystore to Enhance or manually, before it can be accepted into the Google Play store.

MIT App Inventor will sign your app automatically with a keystore which is associated with your account. To export this keystore, use the Projects->Export Keystore option. This will download the certificate to your computer so you can reuse it later while going through Enhance process.