Signing your App


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

Signing For Android

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 For Android

You can upload a test version of your .apk file to be Enhanced for testing using a debug keystore or none at all. But your .apk must be signed for released 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 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 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.

Once the apk is created you will need to sign it, click here for instruction on how to do so. 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 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.