Appery.io

The Appery.io Developer Hub

Welcome to the Apperyio developer hub. You'll find comprehensive guides and documentation to help you start working with apperyio as quickly as possible, as well as support if you get stuck. Let's jump right in!

Guides    

iOS

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 etc.
  • xCode project (source code) – you get HTML/CSS/JS + the PhoneGap library configured as an xCode projects.

Binary App

The Appery.io 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. Before you build the binary file, make sure you have the following:

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.

iOS Binary Settings

Appery.io comes with iOS binary file settings where you can configure everything you need to package the app for iOS. Go to your project, click App Settings > iOS Binary> Release. If the Release box is checked, 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.

Windows

Mac OS

Publishing the App on App Store

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

Certificate Management

Certificate management can be accessed under the Resources tab. This is where all of your certificates are stored. Certificates can be imported or automatically generated (in the case of Android). Click Import certificate to upload the certificate from your desktop.

Once the file and platform are chosen, type the certificate name and its password. Click Import certificate to upload the file. The imported certificate will be listed with all of the others.

Tip

We strongly recommend that you store all of your certificates locally and don’t remove them for any reason.

The certificate can be set to use by default. That means that all applications will use this certificate if another isn’t specified in App settings. Check Default to make the certificate used by default. If you are a team member, the team admin or team lead should give you permission for this action.

By clicking Export to zip the certificate will be downloaded as a ZIP archive. The archive will also contain additional text files with certificate passwords. Click Delete to remove the certificate.

Deleting A Certificate

If you delete a certificate that’s used in any application, you’ll get an error.

Once the certificates are uploaded they can be chosen from the application settings. To choose a certificate for iOS binary, go to the App settings > iOS binary and choose a certificate. When [use default] is selected, the certificate marked as the default will be used. Certificates can be set for all binaries.

After registering with Apple as a developer you can get provisioning profile files or generate them. In the builder, click Change to open the Files Manager. At least one certificate must be provided to build a certain binary. In other cases, when exporting this binary in the builder you will get an error message.

Keys and Settings

Important information for Camera plugin.

The keys variables are currently not working, please refer to our workaround hint here:
https://docs.appery.io/docs/known-issues#section-camera-plugin-variables-for-ios-projects-

iOS 10 requirement

Starting from iOS 10 it's mandatory to add a NSCameraUsageDescription and NSPhotoLibraryUsageDescription in the info.plist.

There is no need to add such settings manually in project Source files, instead you can add them in App Settings > Cordova plugins > Cordova Camera Plugin 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.

Plug-in
Key
Value

Camera

CAMERA_USAGE_DESCRIPTION

This app uses the camera to scan QR code.

Camera

PHOTOLIBRARY_USAGE_DESCRIPTION

This app needs to access the photo library.

Camera

LOCATION_IN_USE_USAGE_DESCRIPTION

This app will use your device location services.

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

Keys redefinition cases.

There is a set of plugins which 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 plugins from the list which are enabled in the App Settings.

The same is true for 'LOCATION_IN_USE_USAGE_DESCRIPTION' parameter for these plugins:

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

Camera options.

Plug-in
Key
Value

Barcode Scanner

CAMERA_USAGE_DESCRIPTION

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

Barcode Scanner options.

Barcode Scanner options.

iOS 10 requirement

Starting from iOS 10 it's mandatory to add a NSLocationWhenInUseUsageDescription entry in the info.plist.

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

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

Plug-in
Key
Value

Geolocation

GEOLOCATION_USAGE_DESCRIPTION

This app will use your device location services.

Geolocation

LOCATION_IN_USE_USAGE_DESCRIPTION

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 http://developer.apple.com.

Running In An iOS Simulator

Source archive file

Extract the ZIP archive file that you've downloaded from Appery.io 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 Appery.io 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 An Mobile iOS Device

Running the Appery.io app on a 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 Appery.io, 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.

App Store

Submitting your iOS to the App Store is outside the scope of our standard support (included in our paid support packs).

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

Question

  • 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
Appery.io database is not encrypted bye 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.

Question
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."

Answer
By default an Appery.io app does not use 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. Bundle ID doesn’t match the Provisioning profile – Please check to make sure your Bundle ID matches the Provisioning profile.
  2. Bundle ID incorrect format – The Bundle ID provided has an incorrect format. The Bundle ID format is: com.companyName.appName. This is NOT a valid Bundle ID: XZCSDF.com.companyName.appName.
  3. Expired certificate – Please make sure your certificate hasn’t expired.
  4. No certificate uploaded – Please make sure you have uploaded a valid certificate.

Useful Links

Please read http://stackoverflow.com/questions/3436260/bundle-id-suffix-what-is-it 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 you 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.

iOS


iOS app export.

Suggested Edits are limited on API Reference Pages

You can only suggest edits to Markdown body content, but not to the API spec.