# Deploying your Android app

This guide outlines the steps you need to follow to properly prepare your Android app for Google review, approval, and successful publication on Google Play.

{% hint style="info" %}
These instructions provide general guidance as of the date of publication. You are responsible for completing all required fields in your Google Play Console. Providing incorrect or incomplete information may result in warnings, restrictions, or suspension of your developer account by Google.
{% endhint %}

## Step 1. Compliance checkpoint

Before creating and submitting your Android app for Google review, determine the countries where you want your app to be available and ensure you hold all required licenses and legal permissions for each country.

This process may take time, so obtain the necessary licenses in advance to confirm that you are authorized to offer all configured trading instruments in your B2CORE instance and provide this information during the Google Play review.

To learn more about Google Play policies for financial services and cryptocurrency, refer to their **Policy center** and specifically to the following:

* [Blockchain-based content](https://support.google.com/googleplay/android-developer/answer/6112435?hl=en\&ref_topic=3450769\&sjid=9872213577143447449-NA)
* [Understanding Google Play’s cryptocurrency exchanges and software wallets policy](https://support.google.com/googleplay/android-developer/answer/6112435?hl=en\&ref_topic=3450769\&sjid=9872213577143447449-NA)

## Step 2. Prepare required app information

Prepare the following information that will be required when creating your app in the Google Play Console and submitting it for Google review.

### Support and legal information

Provide the following details:

* **Privacy policy URL** — a link to a publicly accessible web page that explains how your app collects, uses, stores, and protects user data.

{% hint style="info" %}
For Android apps published on Google Play, the privacy policy is mandatory, even if your app collects minimal data. The page must:

* Be publicly available.

* Be hosted on your website or another reliable public domain.

* Clearly describe what data is collected, how it is used, and how users can request account deletion or data removal.
  {% endhint %}

* **Demo account** — a demo account that Google can use during the review process (for details, refer to [Step 3. Create and configure a demo account in the B2CORE UI](#step-3-create-and-configure-a-demo-account-in-the-b2core-ui)).

* **Contact email for Google** — an email address used for official communication from Google. This email will be linked to your developer account in Google Play Console.

* **Public developer contact details** — contact information visible to users on Google Play, which must include:
  * Support email
  * Contact phone number
  * Website URL

### Store Listing information

Prepare the following store listing details for your app:

* App name
* Short description (up to 80 characters)
* Full description (up to 4,000 characters)
* Graphical assets (can be provided by the B2CORE team). To request them, contact <android-support@b2broker.com> or your account manager.

## Step 3. Create and configure a demo account in the B2CORE UI

To be able to review all of your app functionality, the Google reviewers need access to a demo account. For this reason, you need to configure a demo account as follows:

* Verify your demo account by going through all the steps of your configured KYC procedure.
* In the Back Office, examine and enable all the B2CORE UI modules that will be featured in your mobile app. Each module must be properly configured to ensure that your mobile app will not be rejected by Google during review.
* If your app enables its users to transfer or exchange assets, you also need to make sure that there are enough funds on your demo account, so that the Google reviewers are able to check the transfer and exchange functionality as well.

## Step 4. Register in the Google Play Console as an Organization

To publish your Android app, you need to register in the [Play Console](https://play.google.com/console/signup) as an organization and create a developer account.

Further on, with each Android release, the B2CORE team will provide new app bundles (`.abb` files) for you and you will be responsible for managing the regular maintenance of the app.

For more information, refer to [Get started with Play Console](https://support.google.com/googleplay/android-developer/answer/6112435?hl=en\&ref_topic=3450769\&sjid=9872213577143447449-NA).

## Step 5. Create a new app in the Play Console

To create an app:

{% stepper %}
{% step %}
Sign in to the [Google Play Console](https://play.google.com/console/).
{% endstep %}

{% step %}
Select your developer account.
{% endstep %}

{% step %}
To start a new app, click **Create app**.
{% endstep %}

{% step %}
Fill in the app details:

* In the **App name** field, enter the name for your app. This is how your app will appear on Google Play.
* In the **Default language** dropdown, select **English**.
* In the **App or game** section, select **App**.
* In the **Free or paid** section, select **Free**.

<figure><img src="https://514898401-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FGoRxAprhHu1goANW7FXt%2Fuploads%2Fgit-blob-1fbc0973ffdb7ce18cc134e7b86d66daa7bc5a26%2Fandroid-create-app.png?alt=media" alt="App details"><figcaption><p>App details</p></figcaption></figure>
{% endstep %}

{% step %}
Add an email address that Google Play users can use to contact you about your app.
{% endstep %}

{% step %}
In the **Declarations** section, accept app developer declarations and confirm policy compliance.

<figure><img src="https://514898401-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FGoRxAprhHu1goANW7FXt%2Fuploads%2Fgit-blob-6d54fe2e3fb8603f3b2d4fd50c0827ed7e9c5dce%2Fandroid-declarations.png?alt=media" alt="Declarations"><figcaption><p>Declarations</p></figcaption></figure>
{% endstep %}

{% step %}
Click **Create app**.
{% endstep %}
{% endstepper %}

After creating the app, you'll be redirected to the Dashboard to continue the app setup. If you’re not automatically redirected, you can access it anytime from the **Home** menu in the Play Console by clicking your app.

## Step 6. Set up your app on the Play Console Dashboard

At this step, provide all the information requested by Google Play about your app.

To provide information about the app:

In the Play Console, select your app.

Click each link in the **Set up your app** section of the Dashboard and fill in the required details.

<figure><img src="https://514898401-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FGoRxAprhHu1goANW7FXt%2Fuploads%2Fgit-blob-5437edb4e48bb0c334f1d5841ca841489702d513%2Fandroid-dashboard.png?alt=media" alt="Play Console Dashboard"><figcaption><p>Play Console Dashboard</p></figcaption></figure>

#### Set privacy policy

* In this section, enter a link to your privacy policy that explains how you handle sensitive user and device data.
* Click **Save** to return to the Dashboard.

#### App access

* In this section, select the option **All or some functionality in my app is restricted**.

<figure><img src="https://514898401-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FGoRxAprhHu1goANW7FXt%2Fuploads%2Fgit-blob-1432c5df6498ea0e9510c016a9a5f0d5503adcfc%2Fandroid-app-access.png?alt=media" alt="App access"><figcaption><p>App access</p></figcaption></figure>

* Click **Add instructions** and fill in the following:
  * **Instruction name** — enter any descriptive name (for example, "Instructions for accessing my app").
  * **Username** — enter the login for your demo account.
  * **Password** — enter the password for your demo account.

{% hint style="warning" %}
Make sure that your demo account remains active at all times and that two-factor authentication (2FA) is disabled. This account will be used by Google during the review process for each new app version.
{% endhint %}

* **Any other information required to access your app** — leave this section empty.
* **No other information is required to access my app** — enable the checkbox.
* Click **Add** to return to the **App access** section.
* (Optional) Enable the checkbox **Allow Android to use the credentials you provide for performance and app compatibility testing**.
* Click **Save** to return to the Dashboard.

#### Ads

* In this section, select the option **No, my app does not contain ads**.
* Click **Save** to return to the Dashboard.

#### Content ratings

* In the **Category** section, fill in the following:
  * **Email address** — specify your contact email.
  * Select the option **All other app types**.
  * Enable the checkbox to **Agree with the Terms of Use**.

<figure><img src="https://514898401-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FGoRxAprhHu1goANW7FXt%2Fuploads%2Fgit-blob-0582648c51fede8e0feb0a58263a1e2f8e01d08a%2Fandroid-content-ratings-category.png?alt=media" alt="Content ratings — Category"><figcaption><p>Content ratings — Category</p></figcaption></figure>

* In the **Questionnaire** section, select **No** for all the following:
  * Downloaded app
  * User content sharing
  * Online content
  * Promotion or sale of age-restricted products or activities
  * Miscellaneous

<figure><img src="https://514898401-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FGoRxAprhHu1goANW7FXt%2Fuploads%2Fgit-blob-649e82af93bccf20746bc61dbb791b519f555485%2Fandroid-content-ratings-questionnaire.png?alt=media" alt="Content ratings — Questionnaire"><figcaption><p>Content ratings — Questionnaire</p></figcaption></figure>

* In the **Summary** section, verify the displayed summary and click **Save**.

#### Target audience and content

* In the **Target audience**, select the checkbox **18 and over**. Selecting this checkbox will redirect you to the **Summary** section.
* You can fill in the previous sections, such as **App details**, **Ads**, and **Store presence** if necessary.

<figure><img src="https://514898401-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FGoRxAprhHu1goANW7FXt%2Fuploads%2Fgit-blob-76380a276ae27eac01fd45951b97160e2c61c711%2Fandroid-target-audience-and-content.png?alt=media" alt="Target audience and content"><figcaption><p>Target audience and content</p></figcaption></figure>

* In the **Summary** section, verify the displayed summary and click **Save**.

#### Data safety

* Read the **Overview** section.
* In the **Data collection and security** section, select the options as shown below and provide a URL to the section in your B2CORE UI where an account can be deleted. The URL must follow this format:

`https://{your-Front-Office-URL}/profile-info`

{% hint style="info" %}
Make sure to replace `{your-Front-Office-URL}` with the domain of your B2CORE UI.
{% endhint %}

{% hint style="warning" %}
Ensure that your B2CORE instance supports account deletion. This is a Google Play requirement and may be checked at any time by Google Play or by users. Failure to comply may result in suspension of your developer account in Google Play Console or a permanent ban.
{% endhint %}

<figure><img src="https://514898401-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FGoRxAprhHu1goANW7FXt%2Fuploads%2Fgit-blob-130f10253eae82a151cc1a57801557e59925a455%2Fandroid-data-safety.png?alt=media" alt="Data collection and security"><figcaption><p>Data collection and security</p></figcaption></figure>

* In the **Data types** section, fill in the following:
  * **Location**: B2CORE does not collect this type of data.
  * **Personal info**: Specify the data that clients are required to provide during registration in your B2CORE instance. This usually includes (but isn't limited to) "Name", "Email address", "Phone number", or other.
  * **Financial info**: B2CORE does not collect this type of data.
  * **Health and fitness**: B2CORE does not collect this type of data.
  * **Messages**: B2CORE does not collect this type of data.
  * **Photos and videos**: B2CORE does not collect this type of data.
  * **Audio files**: B2CORE does not collect this type of data.
  * **Files and docs**: B2CORE does not collect this type of data.
  * **Calendar**: B2CORE does not collect this type of data.
  * **Contacts**: B2CORE does not collect this type of data.
  * **App activity**: B2CORE collects "App interactions" data.
  * **Web browsing**: B2CORE does not collect this type of data.
  * **App info and performance**: B2CORE collects "Crash logs" and "Diagnostics" data.
  * **Device or other IDs**: B2CORE does not collect this type of data.
* In the **Data usage and handling** section, you will see a set of questionnaires related to the data collected by the app.
  * Complete the questionnaires in the **Personal info** section as shown in the example below:

<figure><img src="https://514898401-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FGoRxAprhHu1goANW7FXt%2Fuploads%2Fgit-blob-d9a030458b6ff6fcafffeda56374b08bc3c4bf75%2Fandroid-personal-info.png?alt=media" alt="Personal info"><figcaption><p>Personal info</p></figcaption></figure>

* Complete the questionnaires in the **App info and performance** and **App activity** sections as shown in the example below:

<figure><img src="https://514898401-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FGoRxAprhHu1goANW7FXt%2Fuploads%2Fgit-blob-8302592c485c3a0ebcb5fe8ed28bde41b4014728%2Fandroid-cash-logs.png?alt=media" alt="Cash logs"><figcaption><p>Cash logs</p></figcaption></figure>

* In the **Preview** section, verify the displayed summary and click **Save**.

#### Government apps

* Select **No** for the displayed option.

<figure><img src="https://514898401-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FGoRxAprhHu1goANW7FXt%2Fuploads%2Fgit-blob-f3ee3a7c82486b377ad2f76719d7c4cb95f8cd25%2Fandroid-government-apps.png?alt=media" alt="Government apps"><figcaption><p>Government apps</p></figcaption></figure>

* Click **Save** to return to the Dashboard.

#### Financial features

* Select the checkboxes for the features that your app provides.

{% hint style="info" %}
Make sure to select only the features that your app actually provides. These may differ from the example shown below.
{% endhint %}

<figure><img src="https://514898401-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FGoRxAprhHu1goANW7FXt%2Fuploads%2Fgit-blob-f532d9bb30706e497c475a40ef6581498aa3605b%2Fandroid-financial-features.png?alt=media" alt="Financial features"><figcaption><p>Financial features</p></figcaption></figure>

* Click **Save** to return to the Dashboard.

#### Health apps

* Select the option **My app does not have any health features** and click **Next**.
* The **Documentation** section doesn't require any additional actions.
* Click **Save** to return to the Dashboard.

#### Store settings

* In the **App category** section, fill in the following:
  * In the **App or Game** option, select **App**.
  * In the **Category**, select **Finance**.
* In the **Store Listing contact details** section, enter the email address, phone number, and website that will be visible to users on Google Play.
* (Optional) In the **External marketing** section, you can select the checkbox for **Advertise my app outside Google Play**.

<figure><img src="https://514898401-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FGoRxAprhHu1goANW7FXt%2Fuploads%2Fgit-blob-85a222562ac79ad6fb142040dcb3580c6c8aa058%2Fandroid-store-settings.png?alt=media" alt="Store settings"><figcaption><p>Store settings</p></figcaption></figure>

#### Set up your store listing

* In the **Listing assets** section, fill in the following:
  * **App name**
  * **Short description**
  * **Full description**

<figure><img src="https://514898401-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FGoRxAprhHu1goANW7FXt%2Fuploads%2Fgit-blob-11c9c9eb8d55b3100f5b2078f8c39d0226e6c34e%2Fandroid-listing-settings.png?alt=media" alt="Listing assets"><figcaption><p>Listing assets</p></figcaption></figure>

* In the **Graphics** section, attach graphic assets provided by the B2CORE team. Click **Add assets** and upload each graphic asset one by one, and select the appropriate category for each asset.
* After you’ve added all provided assets, click **Save**.

#### Send app information for review

All the information that you've provided about your app must be sent for Google review. Click **Publishing overview** in the main menu and then click **Send X changes for review**.

## Step 7. Upload the app bundle (.aab) for a production release

To upload your app bundle and configure a production release in the Google Play Console:

{% stepper %}
{% step %}
In the Play Console, select your app.
{% endstep %}

{% step %}
Navigate to **Test and release** > **Production**.
{% endstep %}

{% step %}
Open to the **Countries/regions** tab and select the countries where you want your app to be available, according to the licenses that allow you to distribute the app and provide services.
{% endstep %}

{% step %}
Click **Create new release** in the upper-right corner.

<figure><img src="https://514898401-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FGoRxAprhHu1goANW7FXt%2Fuploads%2Fgit-blob-3058ef9a9e772409ab5e726894988bc517385d9f%2Fandroid-create-new-release.png?alt=media" alt="Create new release"><figcaption><p>Create new release</p></figcaption></figure>
{% endstep %}

{% step %}
Click **Change signing key**.

Google Play uses app signing based on cryptographic keys to verify the authenticity and security of your app.

{% hint style="warning" %}
Proper configuration of **Google Play App Signing** is critical to ensure a secure deployment and, where applicable, a smooth transition for existing `.apk` users to the Google Play version.
{% endhint %}

<figure><img src="https://514898401-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FGoRxAprhHu1goANW7FXt%2Fuploads%2Fgit-blob-94621cc0af0a3e030e93836ee0be6a1facb81eb7%2Fandroid-change-signing-key.png?alt=media" alt="Change signing key"><figcaption><p>Change signing key</p></figcaption></figure>
{% endstep %}

{% step %}
Download the encryption public key.

* Select the option **Upload a new app signing key from Java keystore**.
* Click **Download encryption public key** (Option 1).

<figure><img src="https://514898401-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FGoRxAprhHu1goANW7FXt%2Fuploads%2Fgit-blob-f7b27e64a70e51bd7e15b70b842155b736b501c3%2Fandroid-download-encryption-public-key.png?alt=media" alt="Download encryption public key"><figcaption><p>Download encryption public key</p></figcaption></figure>
{% endstep %}

{% step %}
Send the downloaded key in the `.pem` file format to the B2CORE team either by emailing <android-support@b2broker.com> or through your account manager.

The B2CORE team will generate an app signing key, encrypt it using the provided public encryption key, and return it to you together with your application in `.aab` format, signed with the same key. This process may take some time.
{% endstep %}

{% step %}
After receiving the **signed app bundle** (`.aab`) and the **app signing key archive** (`.zip`), return to **Test and release** > **Production** > **Releases** > **Untitled release**.
{% endstep %}

{% step %}
On the **Releases** page, click **Edit release**.
{% endstep %}

{% step %}
Upload the received **app signing key** (`.zip`).

* Select the option **Upload the app signing key (.zip)**.
* Click **Upload generated ZIP** (Option 4).

<figure><img src="https://514898401-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FGoRxAprhHu1goANW7FXt%2Fuploads%2Fgit-blob-263032fab8b0a4e1532e6eb2b8d0787be8d1391f%2Fandroid-upload-app-signing-key.png?alt=media" alt="Upload app signing key"><figcaption><p>Upload app signing key</p></figcaption></figure>
{% endstep %}

{% step %}
Upload the received **app bundle** (`.aab`).

* Drag and drop the provided `.aab` file. Don't modify it.
* After uploading, make sure no errors are shown.

  You may see the following warning message. This is expected and can be safely ignored.

**Warning**

`This App Bundle contains native code, and you've not uploaded debug symbols. We recommend that you upload a symbol file to make your crashes and ANRs easier to analyze and debug.`
{% endstep %}

{% step %}
Fill in the **Release details**.

* The **Release name** field is filled in automatically after uploading the `.aab` file.
* In the **Release notes** field, paste the release notes provided by the B2CORE team or leave the field empty.

<figure><img src="https://514898401-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FGoRxAprhHu1goANW7FXt%2Fuploads%2Fgit-blob-2381d637d6ff43363a11d5f1b84e0a85a7c8c483%2Fandroid-release-details.png?alt=media" alt="Release details"><figcaption><p>Release details</p></figcaption></figure>
{% endstep %}

{% step %}
Click **Next**.
{% endstep %}

{% step %}
Review the release information and make sure there are no errors highlighted in red.

You may see the following warning message. This is expected and can be safely ignored.

**Warning**

`This App Bundle contains native code, and you've not uploaded debug symbols. We recommend that you upload a symbol file to make your crashes and ANRs easier to analyze and debug.`
{% endstep %}

{% step %}
Start the rollout.

* Click **Save** to submit the app for Google review.
* You will be redirected to **Publishing overview**, where you must click **Send X changes for review**.
  {% endstep %}
  {% endstepper %}

App review and rollout may take several days. The review will result either in successful publication on Google Play or in a rejection with the reason provided. If you experience issues resolving a rejection, contact the B2CORE team at <android-support@b2broker.com>.

## Step 8. After approval: app monitoring

After your app is approved, regularly check its availability and policy compliance to avoid enforcement actions.

{% hint style="warning" %}
Failure to perform these checks may result in policy violations, app removal, suspension, or permanent termination of your developer account in the Play Console, often without prior notice.
{% endhint %}

{% stepper %}
{% step %}

#### Check app availability

Confirm that the app is visible on Google Play in all allowed countries and that installation and basic functionality work as expected.
{% endstep %}

{% step %}

#### Check compliance

Keep your app listing, privacy policy, and country distribution aligned with your current licenses and legal permissions.
{% endstep %}

{% step %}

#### Monitor policy status

Periodically check if any actions required in **Monitor and improve** > **Policy and programmes** > **Policy status**.
{% endstep %}

{% step %}

#### Review app content

Periodically check if any actions required in **Monitor and improve** > **Policy and programmes** > **App content**. Ensure that all app information is up to date.
{% endstep %}

{% step %}

#### Monitor Google Play communications

Regularly check the contact email linked to your Google Play Console and respond promptly to any notifications.
{% endstep %}
{% endstepper %}

Google Play policies and deployment processes change regularly. If you notice any missing or outdated information in this instruction, contact us at <android-support@b2broker.com> for assistance or clarification.


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.b2core.b2broker.com/b2core-mobile/deploying-your-android-app.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
