iOS app export.

You have 2 options when exporting your app for iOS:

  • Binary app (.ipa) – this iOS binary version can be published to the App Store.
    When ready, your binary package will look like this:
  • xCode project (source code) – you get HTML/CSS/JS + the PhoneGap library configured as an xCode projects. If you decide to build for xCode, you will get the .zip file:

Once your project is generated, the QR-Code can be used to upload the application to your device or save the file for further use.

Binary App

The platform provides a cloud-based building app service that is programmed as a Cordova app for iOS, which you can publish to the App Store. Since iOS is more demanding in terms of certificates, some additional actions are required to build an .ipa.

Publishing for iOS


Before You Get Started

Before you can build an iOS binary, you need to sign up for the iOS Developer Program and provide all of the developer information and certificates below. If you are new to this, here is a good link to get you started: Managing Your Signing And Provisioning Assets. You also will need a Mac to submit the binary to the App Store.

Before you start building the binary file, make sure you have the following:


Video Tutorial: How to Create Android and iOS Certificates

You can check this Community video that shows how to create Android and iOS certificates:

  1. Go to the Resources > Certificates tab.
  2. Click Import Certificates > iOS.
  3. Click Choose file and select your iOS Distribution .p12 file.
  4. Type your password for this certificate and click Import certificate:
  1. Go to the Builder: App Settings > iOS binary.
  2. For Bundle ID, type the bundle ID that you provided for the uploaded certificate (you made it when registering the app on the Apple website). For example,
  1. Scroll down the page and under the Distribution certificate section, select the earlier uploaded .p12 certificate from the drop-down menu.
  2. Click Change in the Provisioning profile section and upload the .mobileprovision file:

Click Save.

  1. To publish the app for iOS, click Export > Binary:

Note that building the .ipa file could take a while.

  1. Once the build is completed, the .ipa file can be downloaded and you’ll also see a QR code:

You can scan this QR code (use the Qrafter app, for example) to download the file directly on your iOS device and install it.

Troubleshooting certificate is not valid Error


Error: Certificate is not valid / Certificate is not valid or trusted

Export will be successful only when valid certificates are used.
If you get the certificate is not valid / certificate is not valid or trusted error, please make sure you have the corresponding Apple Root and Intermediate Certificates (G3, G4, and/or G5) from the Apple certificate authority installed.

iOS Binary Settings comes with iOS binary file settings where you can configure everything you need to package the app for iOS.
Among other binary settings, app label, bundle ID, Cordova iOS version, and build type can be defined.
Also, enabling the automatic app update feature is available from under this tab.

Build Type Setting

Go to your project, click App Settings > iOS binary > Build type and select the Release option from the drop-down (by default, the Debug type is set that is used for testing purposes):

With the Release option selected, JavaScript assets will be minified to reduce the binary size.

Generating iOS Certificates

The following links will help you generate the iOS certificate and submit the app to the Apple App Store.


Mac OS


Publishing the App on App Store

Publishing your app to the Apple App Store is outside the scope of our support.

Keys and Settings


Important Information about the Camera Plugin

The keys variables are currently not working, please refer to our workaround hint here:


iOS 10 requirement

Starting from iOS 10 it's mandatory that NSCameraUsageDescription and NSPhotoLibraryUsageDescription be added to the info.plist.

There is no need to add such settings manually in project Source files, instead, you can add them in App Settings > iOS keys options as a key value.

If you don't pass the variable, the plugin will add an empty string as value.

The latest Cordova plug-ins (starting from the Libraries version 4.1 JQM and 1.1 Ionic) require adding keys and values when the app is being approved by the Apple App Store. The plug-ins that come bundled with your app, the keys are set by default. To view or modify the settings, click the Options button.

Here are some examples.






This app uses the camera to scan QR code.



This app needs to access the photo library.



This app will use your device location services.


The NSPhotoLibraryUsageDescription field can be cleared/replaced by some Cordova plug-ins if they are used in an app. To avoid this, the related plug-ins should be additionally redefined with the parameters needed.


Keys Redefinition Cases

There is a set of plug-ins that uses CAMERA_USAGE_DESCRIPTION parameter to set NSCameraUsageDescription key.
They are:

  • phonegap-plugin-barcodescanner
  • cordova-plugin-media-capture
  • cordova-plugin-camera

Just add CAMERA_USAGE_DESCRIPTION to all plug-ins from the list which are enabled in the App Settings.

The same is true for LOCATION_IN_USE_USAGE_DESCRIPTION parameter for these plug-ins:

  • cordova-plugin-camera
  • cordova-plugin-geolocation
Camera options.Camera options.

Camera options.




Barcode Scanner


This app uses the camera to scan QR code as a value.

Barcode Scanner options.Barcode Scanner options.

Barcode Scanner options.


iOS 10 < requirement

Starting from iOS 10 it's mandatory that the NSLocationWhenInUseUsageDescription entry be added to the info.plist.

There is no need to add such settings manually in project Source files, instead, you can add them in App Settings > iOS keys options as a key value.

If you don't pass the variable, the plug-in will add an empty string as value.






This app will use your device location services.



This app will use your device location when running.

Building an iOS App with Xcode


Before You Begin

You will need the following before you start this process:

  • Mac macOS 10.12+ or higher
  • Xcode 9+ or higher with iOS SDK installed.
  • You should be enrolled in the iOS development program and have the correct certificates and provisioning profiles. You can get Xcode, iOS SDK, certificates, and profiles from

Running in an iOS Simulator


Source Archive File

Extract the ZIP archive file that you've downloaded from and after archive extraction open folder /platforms/ios/ there you can find files for Xcode with extensions .xcodeproj and .xcworkspace - if you using a Push notification in your project then it is preferable to open a .xcworkspace file.

If you want to run an app in the iOS Simulator:

  1. Open [app_name].xcodeproj with Xcode.
  2. Select the correct scheme to run: [app_name] > iPhone X or [app_name] > iPad X in the top-left part of the Xcode window.
  3. Click Run in the top-left corner of the Xcode window (PushApp is the app name).


Launched App

You should see a Build Successful message. With the iOS Simulator running the app is launched.

Running on a Mobile iOS Device

Running the app on an iOS device is a more involved procedure than running it in the simulator. Notice that steps #1 and #2 are optional if you have already completed them for a different app.

  1. Add the certificate to the keychain. Double-click on the .cer file and confirm adding the certificate. You can now see the certificate in the keychain window. Repeat this process for the distribution certificate.
  2. Open the [app_name].xcodeproj with Xcode.
  3. Select the [app_name] project file at the top of the project navigator.
  4. Select the Build Settings tab, and proceed to the Code Signing section (PushApp is the app name).
  5. Find the Code Signing Identity group and open it. If you use the app source code you built and exported from, there should be 2 sub-items – Debug and Release.


Different Certificate Purposes

If you have a developer’s certificate, you should ensure that the values for Debug > Any iOS SDK and Release > Any iOS SDK are set to your developer’s certificate. We recommend setting the iOS Developer value there, this enables automatic profile selection. However, you can click the value and see the certificate and profile that can be used by Xcode for code signing.

  1. Open the General tab of the [app_name].xcodeproj. Find the Bundle Identifier parameter, and set its value to the corresponding value of the allowed application identifiers for your provisioning profile.
  2. Select the correct scheme to run: [app_name] > [Your connected device's name] and click Run.

Submitting your App to the App Store

This section lists a number of helpful hints when submitting your app to the App Store.


Submitting to App Store

Please note that submitting your iOS to the App Store is outside the scope of our standard support but is included in our paid support packs.

Since the recent Xcode version 11 update, the Application Loader had been deprecated as a separate tool for IPA file submissions. The Apple approach is changed and we suggest following this tutorial for IPA files submission to the App Store (please note that the Xcode is now mandatory).

Please, check these articles that can be useful:

When submitting your app for review you might need to answer the following questions:


  • Is your app designed to use cryptography or does it contain or incorporate cryptography? (Select Yes even if your app is only utilizing the encryption available in iOS or OS X.)
  • Does your app qualify for any of the exemptions provided in Category 5, Part 2 of the U.S. Export Administration Regulations?

Answer database is not encrypted by default. If you encrypt the database data by any means in your app (by either iOS frameworks or any third-party), then you should consider answering Yes to both questions.

Does this app use the Advertising Identifier (IDFA)? The Advertising Identifier (IDFA) is a unique ID for each iOS device and is the only way to offer targeted ads. Users can choose to limit ad targeting on their iOS device."

By default, an app does not use an Advertising identifier.

Known Issues

Troubleshooting iOS Build

The following is a list of the most common reasons the iOS build might fail. Please review them and try to export again if you come across any issues:

  1. Provisioning profile doesn’t match the Bundle ID – Make sure you are using the correct (and valid) provisioning profile for the environment that you use as described in the troubleshooting guide.
  2. Bundle ID incorrect format – The Bundle ID provided has an incorrect format.
    The Bundle ID correct format is: com.companyName.appName.
    This is NOT a valid Bundle ID:
  3. Expired certificate – Make sure your certificate hasn’t expired.
  4. No certificate uploaded – Make sure you have uploaded a valid certificate.
  5. Certificate is not valid / Certificate is not valid or trusted - Make sure you have the corresponding valid Apple Root and Intermediate Certificates (G3, G4, and/or G5) from the Apple certificate authority installed.


Useful Links

Please read for more information on bundle IDs.

Troubleshooting iOS Mobile Submissions

Check the app permissions. For instance, if you have telephony selected in UIRequiredDeviceCapabilities (Project > App settings > iOS keys) and are submitting the app for the iPad as well, the App Store will not accept the app as you cannot make calls from an iPad.


Will My App Still Work?

When testing your app you will still be able to install and work it, but the App Store will not accept your app as it cannot make calls.

Did this page help you?