Get Started with Apache Cordova
Important
Visual Studio App Center is scheduled for retirement on March 31, 2025. While you can continue to use Visual Studio App Center until it is fully retired, there are several recommended alternatives that you may consider migrating to.
Note
Support for Cordova Apps has ended in April 2022. Find more information in the App Center blog.
The App Center SDK uses a modular architecture so you can easily use one, several, or all of the App Center services in your Apache Cordova application.
In this article, you'll learn how to add the App Center SDK to your Apache Cordova applications, then configure App Center Analytics and App Center Crashes capabilities in an application.
1. Prerequisites
Before you begin, ensure that your Apache Cordova application project meets the following minimum requirements:
- Cordova CLI 6.4.0 or later
cordova-android
engine 5.0.0 or latercordova-ios
engine 4.3.0 or later
To determine your Cordova CLI version, open a terminal window or Windows command prompt and execute the following command:
cordova -v
To determine the cordova-android
and cordova-ios
versions, open the project's config.xml file, you'll find the platform engines defined in the engine
elements shown below:
<engine name="android" spec="~6.2.3" />
<engine name="ios" spec="~4.4.0" />
You also must have CocoaPods installed. For this, run
sudo gem install cocoapods
pod setup
2. Getting the App Center App Secret
In order for the App Center SDK to connect with your application project in App Center, the SDK needs your App Center project's App Secret. You'll learn later how to configure the App Center Apache Cordova SDK with this value, but for now, lets see where to find it.
If you have an existing App Center application project, access the App Center Dashboard, and open your project. You can also the app secret on the application project's Settings page. Access the menu in the page's upper right corner, then select Copy app secret to copy the app secret to the clipboard.
If you don't have an application created in the App Center Dashboard, complete the following steps.
- Register for an App Center account, or Login to an existing App Center account at https://appcenter.ms.
- In the App Center Dashboard, click the Add new drop-down in the upper-right corner of the page. Select Add new app from the menu.
- Enter a name for your application project, adding an optional description as needed.
- Select the appropriate OS for your application project (Android or iOS only), then select the Cordova platform option.
- Click the Add new app button on the bottom-right corner of the page.
- Locate the app secret on the application project's Settings page. Access the menu in the page's upper right corner, then select the Copy app secret item to copy the app secret to the clipboard.
3. Add the App Center SDK to the project
Installing the SDK
For Apache Cordova projects, the SDK is distributed through standard Apache Cordova plugins. Add the App Center SDK to your Cordova project using the instructions provided in this section. Start by opening a Terminal window or Windows command prompt, then navigate to your Cordova project's root folder.
To add support for App Center Analytics to your project, execute the following command:
cordova plugin add cordova-plugin-appcenter-analytics
To add support for App Center Crashes to your project, execute the following command:
cordova plugin add cordova-plugin-appcenter-crashes
To add plugins for all of the App Center capabilities to your project with one command, execute the following command:
cordova plugin add cordova-plugin-appcenter-analytics cordova-plugin-appcenter-crashes
Note
You should add cordova-plugin-appcenter-analytics and cordova-plugin-appcenter-crashes most every app that uses App Center; they provide useful information for developers without any additional setup or coding.
Configuring the plugins
App Secret
You must configure the project with your App Center project app secret before you can use the App Center SDK in your Apache Cordova project.
Open the Apache Cordova project's config.xml file; for each of your Apache Cordova project's target platform
elements (only Android and iOS today), add a child preference
element in the following format:
<preference name="APP_SECRET" value="0000-0000-0000-0000-000000000000" />
In this example, you're adding an element with a name
attribute with a value of APP_SECRET
, and a value
attribute with the value shown in the example. Here, the 0000-0000-0000-0000-000000000000
shown in the example is an arbitrary representation of a App Center project app secret. Replace the app secret shown in the example with the actual app secret for your App Center project.
As a complete example, for a Apache Cordova project that supports both Android and iOS targets, you'll have separate app project definitions in App Center, and so, different app secret values for each target platform. The relevant section of the project's config.xml file will look like the following:
<platform name="android">
<preference name="APP_SECRET" value="0000-0000-0000-0000-000000000001" />
</platform>
<platform name="ios">
<preference name="APP_SECRET" value="0000-0000-0000-0000-000000000002" />
</platform>
Note
The example doesn't show actual app secret values; these are merely mock-ups, you'll need to grab your App Center project's app secrets and use them here. The app secrets are different because you'll have unique secrets for your Android and iOS application projects in App Center.
Analytics Preferences
If you're using App Center Analytics in your app, there's some additional configuration steps to perform. Open the Apache Cordova project's config.xml file in an editor, and add one or more of the following preferences
elements to the file:
APPCENTER_ANALYTICS_ENABLE_IN_JS
- (optional, default is false) Controls whether Analytics is enabled automatically. Whenfalse
, Analytics is enabled by default. Whentrue
, the application must callAppCenter.Analytics.setEnabled(true)
(in its JavaScript code) to enable Analytics before sending data to App Center. This preference is useful when you want to ask users whether they want to share analytics information before enabling it within the application. Learn more about sending user events manually.Example:
<preference name="APPCENTER_ANALYTICS_ENABLE_IN_JS" value="true" />
APPCENTER_CRASHES_ALWAYS_SEND
- (optional, default is true) Specifies whether crash reports are automatically sent to App Center when the app crashes. When sending crash reports automatically, every crash is reported, potentially overwhelming the engineering and support teams. When sending crash reports manually (settingAPPCENTER_CRASHES_ALWAYS_SEND
tofalse
), code within your application can triage crashes, and decide when crash reports are sent to App Center, what data is included in the reports, and so on. This means more work for the developer, but it also provides greater control over user privacy and allows you to attach a message with crash report. Learn more about processing on crash reports in JS.Example:
<preference name="APPCENTER_CRASHES_ALWAYS_SEND" value="false" />
If you use auto-backup to avoid getting incorrect information about devices, follow the next steps:
Note
Apps that target Android 6.0 (API level 23) or higher have Auto Backup automatically enabled.
Note
If you already have a custom file with backup rule, switch to the third step.
a. Create appcenter_backup_rule.xml file in the res/xml folder.
<resource-file src="appcenter_backup_rule.xml" target="res/xml/appcenter_backup_rule.xml" />
b. In order for android:fullBackupContent
attribute to be added to the <application>
element inside AndroidManifest.xml file, add the following lines to the app's config.xml file:
<edit-config file="app/src/main/AndroidManifest.xml" mode="merge" target="/manifest/application">
<application android:fullBackupContent="@xml/appcenter_backup_rule" />
</edit-config>
```
c. Add the following backup rules to the **appcenter_backup_rule.xml** file:
```xml
<full-backup-content xmlns:tools="http://schemas.android.com/tools">
<exclude domain="sharedpref" path="AppCenter.xml"/>
<exclude domain="database" path="com.microsoft.appcenter.persistence"/>
<exclude domain="database" path="com.microsoft.appcenter.persistence-journal"/>
<exclude domain="file" path="error" tools:ignore="FullBackupContent"/>
<exclude domain="file" path="appcenter" tools:ignore="FullBackupContent"/>
</full-backup-content>
4. Where to go next?
Great, you're all set to visualize Analytics and Crashes data collected automatically by the SDK on the portal. There isn't any additional setup required. Look at Analytics and Crashes sections for APIs guides and walkthroughs to learn what App Center can do.