# Mobile application profile

A mobile application profile links your mobile application to the Infobip platform. It does the following:

- Groups all installations of your mobile application across all devices. This enables you to collect data about mobile users.
- Connects your mobile application to Infobip’s Mobile SDK. This enables you to send push notifications and in-app messages to the mobile users

To use the Mobile SDK, you need to create a mobile application profile.

Follow these configuration steps:

1. [Create and enable a mobile application profile](#create-enable-mobile-application-profile) in the Infobip web interface.
2. [Configure the Mobile SDK](#set-up-mobile-sdk) in your mobile application project. Then, build and test your application.

## Create and enable a mobile application profile [#create-enable-mobile-application-profile]

Create a mobile application profile on the Infobip web interface and enable it for each mobile operating system such as iOS, Android, and Huawei.

### Create a mobile application profile [#create-profile]

1. On the Infobip web interface, go to **Channels and Numbers** > **Channels** > **Mobile applications**.

2. In the **Application profile** tab, select **Create app profile** to create a new profile.

3. Select an application type - **Sandbox** or **Production**. These application profile types divide your testing environment and product releases into different flows.

    - **Sandbox** – Used in the testing environment.
    - **Production** – Used in the production environment.

    Note
For Android, the same keys can be used for both production and sandbox environments. iOS requires the following types of certificates for push notifications: - **Sandbox certificate**: Used for the sandbox environment. - **Production Certificate**: Used for both production and sandbox environments.

4. **Base configuration**: Configure the following:

    - **Name**: Name your mobile application profile.
    - **Description** (Optional): Add a description.
    - **App icon** (Optional): Add an icon to identify the application profile. Supported formats are .png and .jpg.

5. **Security settings**: Control the level of access that the mobile SDK has to data from People. Select one of the following options:

   - Allow all mobile SDK requests.
   - Allow only mobile SDK requests with JSON web tokens (JWT) authorization:  This enables developers to get and update data through the Mobile SDK without the need of backend implementation, but in a more secure way.
   - Disallow all mobile SDK requests: To modify personal information, you must use the Contact information management People API.

   Follow the instructions in these guides to implement JWT authorization:

   - [Android](https://github.com/infobip/mobile-messaging-sdk-android/wiki/User-data-authorization#allow-only-mobile-sdk-requests-with-json-web-tokens-jwt-authorization)
   - [iOS](https://github.com/infobip/mobile-messaging-sdk-ios/wiki/User-data-authorization#allow-only-mobile-sdk-requests-with-json-web-tokens-jwt-authorization)
   - [Huawei](https://github.com/infobip/mobile-messaging-sdk-android/wiki/User-data-authorization#allow-only-mobile-sdk-requests-with-json-web-tokens-jwt-authorization)
   - [Flutter](https://github.com/infobip/mobile-messaging-flutter-plugin/wiki/User-data-authorization#allow-only-mobile-sdk-requests-with-json-web-tokens-jwt-authorization)
   - [Cordova](https://github.com/infobip/mobile-messaging-cordova-plugin/wiki/User-data-authorization#allow-only-mobile-sdk-requests-with-json-web-tokens-jwt-authorization)
   - [React Native](https://github.com/infobip/mobile-messaging-react-native-plugin/wiki/User-data-authorization#allow-only-mobile-sdk-requests-with-json-web-tokens-jwt-authorization)

6. If you want to implement [Inbox](https://www.infobip.com/docs/inbox) for your mobile application, select one of the following inbox authorization types for **Sandbox** profiles:

    - **Application code**: Basic authorization.
    - **JWT**: Encrypted authorization.

    Note
For **Production** application profiles, JWT authorization is automatically set.

7. To enable push notifications for the profile, do the following:

    1. Enable one or more environments - iOS, Android, and Huawei.
    2. For each environment that you enable, enter the credentials for the cloud push notification services. For more information, refer to the - [iOS](#ios-create-and-enable-a-mobile-application-profile), [Android](#android-create-and-enable-a-mobile-application-profile), and [Huawei](#huawei-create-and-enable-a-mobile-application-profile) sections.

    Note
You can create a mobile application profile without entering credentials. But, to send push notifications, you must enter credentials.

8. Select **Save**.

### iOS [#ios-create-and-enable-a-mobile-application-profile]

To enable your Push Application Infobip web interface for iOS you need to add the Apple Push Notification Services (APNS) certificate tied to your iOS App ID so that you can send push notifications through the Infobip platform.

If you already have an APNS certificate, upload it to your [mobile application profile](https://portal.infobip.com/apps/mam/profiles). If you need assistance on how to obtain the APNS certificate, follow the instructions in the link below.

The APNS certificate is usually issued for a 1-year period and requires renewal. We will notify you via email when your certificate is about to expire. For the certificate renewal, please refer to How to Renew APNS Certificate in the link below.

[APNS Certificate Setup Guide](https://github.com/infobip/mobile-messaging-sdk-ios/wiki/APNs-Certificate-guide)

### Android [#android-create-and-enable-a-mobile-application-profile]

To enable your mobile application profile for Android, you need to add the Private Key JSON file to your mobile application profile.

Do the following:

1. [Get the JSON file](https://github.com/infobip/mobile-messaging-sdk-android/wiki/Firebase-Cloud-Messaging-%28FCM-HTTP-v1-API%29#obtaining-the-private-key-json-file-for-infobip-mobile-application-profile) containing the private key for your mobile application profile. If you already have the file, ignore this step.
2. In your Infobip account, go to **Channels and Numbers** > **Channels** > **Mobile Applications** > **[Profiles](https://portal.infobip.com/apps/mam/profiles)**.
3. In the **Available on Android** > **Google Private Key JSON** field of the profile, upload the JSON file.
4. Select **Save**.

### Huawei [#huawei-create-and-enable-a-mobile-application-profile]

To enable your mobile application profile for Huawei, you need to generate a signing certificate fingerprint and enable the Huawei Pushkit.

If you have already obtained a signing certificate, add it to your mobile application profile. If you need assistance on how to generate a signing certificate fingerprint, and how to enable the Huawei Pushkit, follow the instructions in the link below.

[APP Gallery Connect Setup Guide](https://github.com/infobip/mobile-messaging-sdk-huawei/wiki/Configure-Huawei-application-in-AppGallery-Connect)

### Copy Application Code [#copy-application-code-create-and-enable-a-mobile-application-profile]

When you click Save in your mobile application profile for the first time, an Application Code will be generated for the app profile.

The Application Code is an application identifier that links your mobile application to the application profile created within the Infobip web interface.

You need to copy the code to your Mobile SDK configuration as documented in the [Configure the Mobile SDK](#set-up-mobile-sdk) section below:

Learn about [mobile audience profiling](https://www.infobip.com/docs/mobile-audience-profiling) to understand how Mobile SDK enables targeting of Mobile push notifications, and operates with device and person profile attributes.

## Manage mobile application profiles

### Application profiles page

This page contains a list of all your mobile application profiles.

#### What you can do on this page

On this page, you can do the following:

- View a list of mobile application profiles profiles.
- Search for a mobile application profile. Use the Search box.
- Filter mobile application profiles. Select the Filter icon and then filter by Environment (Production, Sandbox) and Platform (Android, iOS).
- Create a new mobile application profile.
- Sort mobile application profiles. Select the headers in supported columns.

#### Information shown for each profile

For each mobile application profile, you can view the following information:

- Name
- Environment: Production or Sandbox
- Connected devices: The number of devices that are connected to the profile.
- Platform: Android or iOS
- Errors, if applicable. Example: Certificate expired

## Set up Mobile SDK

The Mobile SDK is a ready-to-use set of components to integrate your mobile application with the Infobip platform.  Get started configuring a basic integration of the Mobile SDK using the quick start guides below. It is very important that you follow each step of the quick start guide carefully to avoid issues with push messages.

Remember, as part of the configuration process you will need to copy the application code from your mobile application profile in the Infobip web interface. Take a look at [Copy Application Code](#copy-application-code-create-and-enable-a-mobile-application-profile) to learn more.

### Mobile SDK Quick Start Guides [#mobile-sdk-quick-start-guides-set-up-mobile-sdk]

- [Android guide](https://github.com/infobip/mobile-messaging-sdk-android#readme)
- [iOS guide](https://github.com/infobip/mobile-messaging-sdk-ios#readme)
- [Huawei guide](https://github.com/infobip/mobile-messaging-sdk-huawei#readme)

**Plugins for Cross-Platform Frameworks**

- [React Native guide](https://github.com/infobip/mobile-messaging-react-native-plugin#readme)
- [Flutter guide](https://github.com/infobip/mobile-messaging-flutter-plugin#readme)
- [Cordova guide](https://github.com/infobip/mobile-messaging-cordova-plugin#readme)

The application build process differs depending if you create an application for iOS or Android.

For iOS applications, you will need to build and install your application directly on a test device. For Android, you can build and install your application on an emulator without the need for physical test devices.

If your build is failing or you find errors in your application logs related to Mobile SDK then please check the error text, rectify the problem, and re-attempt the build.

**Take a look below to see an example application for you to integrate and test:**

- [Example application for Android](https://github.com/infobip/mobile-messaging-sdk-android/wiki/Example-application-guide)
- [Example application for iOS](https://github.com/infobip/mobile-messaging-sdk-ios/wiki/Example-application-guide)
- [Example application for Huawei](https://github.com/infobip/mobile-messaging-sdk-huawei/wiki/Example-application)

For cross-platform frameworks

- [Example application for ReactNative](https://github.com/infobip/mobile-messaging-react-native-plugin/wiki/How-to-start-Example-app)
- [Example application for Cordova](https://github.com/infobip/mobile-messaging-cordova-plugin/wiki/How-to-start-Example-application)
- [Example application for Flutter](https://github.com/infobip/mobile-messaging-flutter-plugin/wiki/How-to-start-Example-app)

Test sending Mobile push notifications using the [web interface](https://www.infobip.com/docs/send-push-notification#mobile-push-over-broadcast) and [Push API](https://www.infobip.com/docs/api/channels/mobile-app-messaging).

Once you have installed your test application build integrated with the Mobile SDK, you can verify the application works correctly by checking the number of registered devices in the application profile in the Infobip web interface.

As people install your application build you will see the number of registrations increase.

Head over to GitHub for full implementation details on all Mobile SDK functionality, including deep links, in-app messages, inbox, and live chat:

- [Android SDK wiki](https://github.com/infobip/mobile-messaging-sdk-android/wiki)
- [iOS SDK wiki](https://github.com/infobip/mobile-messaging-sdk-ios/wiki)
- [Huawei on Android wiki](https://github.com/infobip/mobile-messaging-sdk-huawei/wiki)
- [React Native wiki](https://github.com/infobip/mobile-messaging-react-native-plugin/wiki)
- [Flutter wiki](https://github.com/infobip/mobile-messaging-flutter-plugin/wiki)
- [Cordova SDK wiki](https://github.com/infobip/mobile-messaging-cordova-plugin/wiki)

NOTE
You can check all functionality of the Mobile SDK before implementing it in your mobile app by using our Demo Application. Check out our [Demo app guide](demo-app-guide) to get started.