Common App Data¶
In order to simplify the app publishing process, the response from the following endpoints always returns an application object in JSON form:
- POST /v1/applications/
- POST /v1/applications/<app_id>
- PUT /v2/applications/<app_id>
The following tables describe the editable fields in the application object:
Fields that Apply to All App Types
Field | Type | Mandatory | Validation Rules | Default Value | Description |
---|---|---|---|---|---|
app_name | string | No | Max 50 characters | Filename (native) or URL (public store) | |
version_num | string | No | Max 21 characters | 1.0, incremented for subsequent versions (2.0, 3.0, etc) | |
version_note | string | No | Max 4096 characters | <app_name> - <version.created_date> - <version_num> | |
author | string | No | Max 150 characters | Administrator’s user_id | |
enabled | boolean | No | false | Enable or disable the app. For more information, see Disable or Enable an App. | |
short_description | string | No | Max 100 characters | ||
long_description | string | No | Max 10,000 characters | ||
custom_metadata | JSON | No | null | Define custom metadata. For more information, see Application Custom Metadata. | |
sort_weight | integer | No | 1000 | Modify the order of apps on the Applications page and in the App Catalog. The lower the sort weight, the higher in the list the app displays. | |
reviews_enabled | boolean | No | true | Enable or disable reviews. For more information, see App Ratings and Reviews. |
Fields that Apply to Some App Types
Field | Type | Mandatory | Validation Rules | Default Value | Only Applies To | Description |
---|---|---|---|---|---|---|
no_auth_delivery_enabled | boolean | No | false | Native apps | Enables direct install. For more information, see Application Custom Metadata. | |
add_to_start | boolean | No | false | Android native and Windows executable (EXE File) | When true, adds the app to the Windows Apps view. For more information, see Windows App File Formats. | |
form_factor_override | string | No | [], [“phones”], [“tablets”],[“phones”, “tablets”] | [] | Native apps (except windows) web apps, Apple App Store, Google Play | Specify the type of device on which the app can run. For more information, see Override Device Form Factor. |
required | boolean | No | false | Native iOS and Android apps | Specify whether it is mandatory for users to install the app version on their device. | |
required_by | date | No | Validated as an ISO-9601 date | null | Native iOS and Android apps | Specify the date by which users must install the app version on their device. This field is only valid for POST /applications/<app_id>. For more information, see Mandatory Versus Optional Updates. |
notify_users | boolean | No | true | Native apps | When true, sends a push notification to users informing them of the new app version. This field is only valid for POST /applications/<app_id>. | |
url | string | Yes | Validated as a URL | null | Web apps, Apple App Store, Google Play |
Hybrid App Data¶
When you create or rebuild a hybrid app via the API, you must include a hybrid object in your request. A hybrid object includes the following fields:
Field | Type | Mandatory | Validation Rules | Default Value | Description |
---|---|---|---|---|---|
url | string | Yes | Validated as a URL | N/A | The URL used to create the hybrid app. Only mandatory when creating a new app. |
platform | string | Yes | Either: iOS or Android | N/A | Specify the intended platform for the hybrid app. Only mandatory when creating a new app. |
show_navbar | boolean | No | False | Specify whether a navigation bar will appear in the web view. | |
allow_tabs | boolean | No | False | Specify whether links will open in a new tab within the web view rather than re-use the current tab. Note: This is always False for the Android platform. | |
file_open_support | boolean | No | False | Specify whether users can tap on links in the hybrid app to open files in other apps. |
For more information on these options, see Hybrid Apps.
Application Object Integer Descriptions¶
The application object includes a number of data fields with integer values that aren’t obvious unless you know the corresponding description. It may also include an embedded version object with its own data fields.
The following tables identify these values:
App Status
Field name: status
This field appears in the application object.
Value | Description |
---|---|
0 | Disabled |
1 | Enabled |
App Type
Field name: type
This field appears in the application object.
Value | Description |
---|---|
0 | iOS |
1 | Web App |
2 | iTunes |
3 | Android |
4 | iOS Config File |
5 | Android Market |
6 | Blackberry |
9 | Windows Phone Store |
10 | Windows Phone |
11 | Windows Store |
12 | Windows EXE file |
13 | Windows MSI file |
14 | Windows ZIP file |
App Version Signing Status
Field name: sign_status
This field appears in the version object.
Value | Description |
---|---|
0 | The app is not yet signed. |
-1 | The app is in the process of being signed. |
1 | The app has been signed. |
2 | The signing process has been canceled. |
3 | The signing request can’t be processed. |
Form Factor
Field name: form_factor
This field appears in the application object.
Value | Description |
---|---|
0 | Unknown |
1 | Phone |
2 | Tablet |
3 | Phone and Tablet |
Version Policy Status
Field name: wrap_status
This field appears in the version object.
Value | Description |
---|---|
-1 | This indicates that an error has occurred while applying the policy layer. |
0 | No policies are applied to the app. |
1 | Policies are applied to the app and it is signed. The app is ready to be deployed to users. |
2 | Policies are currently being applied to the app. |
3 | Policies have been applied to the app and it needs to be signed before deploying to users. |
4 | A previous version of this app had policies applied, but the app has since updated to a new version which has not yet been configured with policies. |
Kryptowire Verification Status
Field name: kryptowire_verification_status
This field appears in the version object.
Value | Description |
---|---|
-1 | An Error occurred during the app inspection process. |
0 | No inspection report is available and no report has been requested. |
1 | The report is uploading to Kryptowire. |
2 | The report has been uploaded to Kryptowire and the system is waiting for a response. |
3 | The report is ready and available. |
Application Object Example¶
The following example illustrates a typical response from POST /v1/applications/ after sending a request to create a native iOS app.
Here, the application object (application
) also includes a version object (version
) with an embedded install file object (install_file
). The install file object in this example also includes a nested object called binary_metadata
. The binary_metadata
object is only populated in the response when you’re working with native apps; it is empty in the response from Apple App Store or Google Play app requests.
{
"application": {
"add_to_start": false,
"banner_image_url": null,
"bundle_id": "com.apperian.Actions",
"enabled": false,
"id": "DzCbyyTyl_cner0hvbmRSA",
"is_adhoc": false,
"is_app_catalog": false,
"is_hybrid": false,
"latest_version_id": "xYGI30YLRZALvL4PBA13RA",
"no_auth_delivery_enabled": false,
"operating_system": 1,
"push_enabled": false,
"required": false,
"required_by": "9999-12-31T23:59:59.999999+00:00",
"required_by_group": false,
"reviews_enabled": true,
"sort_weight": 1000,
"status": 0,
"type": 0,
"url_scheme": null,
"kryptowire_verification_status": 0,
"latest_install_file_id": "oHhH9eTRqsvMH9jyKtogyA",
"long_description": "Not just for coffee breaks, this game is challenging and immersive",
"min_os_version": null,
"notify_users": true,
"release_date": "2018-05-07T19:05:13.707781+00:00",
"required": false,
"required_by": "9999-12-31T23:59:59.999999+00:00",
"short_description": "Install this game for some coffee break fun!",
"sign_status": 0,
"version_note": "The completely patched first installment!",
"version_num": "1.2",
"wrap_status": 0,
"version": {
"app_id": "DzCbyyTyl_cner0hvbmRSA",
"app_name": "Action!",
"author": "the_admin@my_company.com",
"binary_version": null,
"custom_metadata": null,
"form_factor": 0,
"icon_path": "org_14/iphone_199/version_242/Actions_57.png",
"id": "xYGI30YLRZALvL4PBA13RA",
"install_file": {
"action": "upload",
"app_id": "DzCbyyTyl_cner0hvbmRSA",
"apperian_wrapper_version": null,
"binary_metadata": {
"is_cordova": false,
"plist": {
"ApperianCloakedEasePsk": "nPel942e3vqzzJ0AoVQ-Gw",
"ApperianEasePsk": "181",
"ApperianInstallFilePsk": 434,
"ApperianVersionPsk": 361,
"BuildMachineOSBuild": "14F27",
"CFBundleDevelopmentRegion": "English",
"CFBundleDisplayName": "Actions",
"CFBundleExecutable": "Actions",
"CFBundleIconFile": "Actions_57.png",
"CFBundleIdentifier": "com.apperian.Actions",
"CFBundleInfoDictionaryVersion": "6.0",
"CFBundleName": "Actions",
"CFBundlePackageType": "APPL",
"CFBundleResourceSpecification": "ResourceRules.plist",
"CFBundleSignature": "????",
"CFBundleSupportedPlatforms": [
"iPhoneOS"
],
"CFBundleURLTypes": [
{
"CFBundleURLName": "com.apperian.ease.urlscheme",
"CFBundleURLSchemes": [
"eas181"
]
}
],
"CFBundleVersion": "2.0",
"DTCompiler": "com.apple.compilers.llvm.clang.1_0",
"DTPlatformBuild": "11D167",
"DTPlatformName": "iphoneos",
"DTPlatformVersion": "7.1",
"DTSDKBuild": "11D167",
"DTSDKName": "iphoneos7.1",
"DTXcode": "0511",
"DTXcodeBuild": "5B1008",
"LSRequiresIPhoneOS": true,
"MinimumOSVersion": "7.1",
"NSMainNibFile": "MainWindow",
"UIDeviceFamily": [
1
],
"UIStatusBarStyle": "UIStatusBarStyleOpaqueBlack"
},
"profile": {
"AppIDName": "Profile Name",
"ApplicationIdentifierPrefix": [
"3NFOWEK6K19"
],
"architectures": [
32
],
"CreationDate": 1469214817,
"DeveloperCertificates": null,
"Entitlements": {
"application-identifier": "3NFOWEK6K19.com.apperian.Actions",
"com.apple.developer.networking.vpn.api": [
"allow-vpn"
],
"com.apple.developer.team-identifier": "3DT8ND2DH5",
"get-task-allow": false,
"keychain-access-groups": [
"3NFOWEK6K19.*"
]
},
"ExpirationDate": 1500750817,
"Name": "Profile Name",
"Platform": [
"iOS"
],
"ProvisionsAllDevices": true,
"TeamIdentifier": [
"3DT8ND2DH5"
],
"TeamName": "ExampleTeam",
"TimeToLive": 365,
"UUID": "d0a0112e-fd91-4155-9ca5-f315d8150fa4",
"Version": 1
},
"signables_info": [
{
"bundle_id": "com.apperian.Actions",
"name": "Actions",
"provisioning_profile": {
"AppIDName": "Actions demo",
"ApplicationIdentifierPrefix": [
"3NFOWEK6K19"
],
"CreationDate": 1469214817,
"DeveloperCertificates": null,
"Entitlements": {
"application-identifier": "3NFOWEK6K19.com.apperian.Actions",
"com.apple.developer.networking.vpn.api": [
"allow-vpn"
],
"com.apple.developer.team-identifier": "3DT8ND2DH5",
"get-task-allow": false,
"keychain-access-groups": [
"3NFOWEK6K19.*"
]
},
"ExpirationDate": 1500750817,
"Name": "Actions demo",
"Platform": [
"iOS"
],
"ProvisionsAllDevices": true,
"TeamIdentifier": [
"3DT8ND2DH5"
],
"TeamName": "ExampleTeam",
"TimeToLive": 365,
"UUID": "d0a0112e-fd91-4155-9ca5-f315d8150fa4",
"Version": 1
},
"type": 1
}
]
},
"checksum": null,
"created": "2018-05-07T19:05:13.712813+00:00",
"expires": "2017-07-22T15:13:37+00:00",
"id": "oHhH9eTRqsvMH9jyKtogyA",
"kryptowire_verification_id": null,
"mime": null,
"path": "org_14/iphone_199/version_242/Actions.ipa",
"sign_credentials_id": null,
"size": 294057,
"version_id": "xYGI30YLRZALvL4PBA13RA"
}
}
},
"warnings": [
{
"error": "arch_32_bits",
"message": "This 32-bit application must be updated to 64-bit or it will not work with iOS 11..."
}
]
}