ÃÛ¶¹ÊÓƵ

White labeling in ÃÛ¶¹ÊÓƵ learning Manager Mobile app

ÃÛ¶¹ÊÓƵ Learning Manager mobile app now supports white labeling – which means that you can now release the app under your own branding.

How you should start preparing to launch your white-labeled app

To deploy and manage your own white labeled app, follow the steps:

  1. Prepare the assets (like splash screen image), and the text so both can be used in the app and the description on the app/play store.

  2. Assign a technical resource who is capable of:

    • Generating the push notification certificate files.
    • Signing the app binaries provided by the ALM team.
    • Uploading and managing the publishing process. The publishing process requires communication between your app manager and app/play store teams that your app complies with all publishing guidelines. From ALM, you will receive a fully compliant app binary.

Overview

White labeling is a practice of rebranding an app or service with your own brand and customizing it as if you were the original creator. In ÃÛ¶¹ÊÓƵ Learning Manager, you can apply white labeling to the mobile app, so you can rebrand the app, and make the app available to your users under your own brand.

What can be customized

The following can be customized:

Fields

Account Id
The ID of your account. Note that the white labeled app will not be accessible to learners who belong to any other account.
Additional Account Ids
Add multiple accounts (sub-domains) if you want. Add the sub-domains as comma-separated without spaces. For example, acc01,acc02,acc03, and so on.
Note: You need to add the account id when specifying the sub-domains.
App Name
The name that you want to use for the app.
App Short Name
In cases where the name of app is lengthy, give the app a short name that appears on the device.
Internal App Name
The name with which the OS identifies the app. The format that is usually used is: com.company-name.product-name.
Internal App name-iOS
Name the app differently if your users are on iOS. We recommend using the same name for both iOS and Android.
App Icon

The app icon as png. This icon displays on your app. The format to name is account-id_appIcon.png. The app icon's dimensions are 512 × 512 pixels.

Please note that Apple does not allow Alpha channel in app icons. So, make sure to remove the Alpha channel from the asset before submitting it.

App splash screen
For the splash screen of your app, provide an image (png), that appears when your users launch the app. The format to name is account-id_splashIcon.png. The dimensions of the square-based splash screens are 1052 × 1052 pixels and circle-based splash screens are 768 x 768 pixels.
Client ID and Client Secret

The Integration Admin of your account provides the details, while registering the app. The Integration Admin must use the following:

  • learner:read,learner:write as role
  • internal app name://redirect as redirect URL
Account logo
The URL that hosts your organization's logo. Provide a cpcontents link as the account logo. The URL needs to be web encoded.
App store id for the app (iOS)
The ID required for implementing the force update. The App needs to know the learner should be redirected to the App store, to update the app.
Google play store id for the app (Android)
The ID required for implementing the force update.
Hostname for deep linking
To host your deep links, use learningmanager. If you want to use another hostname URL as a deep link, provide the URL of the host. For example, learningmanager.adobe.com.
NOTE
Provide the data to your CSAMs so they can add it into your customized app binary.

If you’re using a custom domain or learningmanager*.adobe.com as host, you need not take any action. However, if you use a custom solution or specific hostname for the URLs, add the site-association files.

CAUTION
If the files are not present, the deeplinks will not work. Ensure the files are present.

Refer the following links for more information:

Generate push notifications

Sending push notifications to Android and iOS apps require two different mechanisms.

  • For iOS, generate the push notification certificates.
  • For Android, provide a server key generated from the Firebase project.

Follow the instructions below to set up the projects in Firebase:

Push notifications on iOS

In iOS app development, a push notification certificate is a cryptographic credential issued by Apple that allows a server to securely send push notifications to an iOS device through Apple’s Push Notification service (APNs).

The certificate ensures secure communication between your server (or provider) and Apple’s APNs when sending push notifications to iOS devices.

Both Android and iOS use Firebase Cloud Messaging (FCM) as the service for sending push notifications to devices.

How to generate the certificate on iOS

Follow the procedure:

  1. Generate or download the Push notification certificate and private key (.p12). For more information, see the .

  2. Install the p12 file after the file is downloaded. Use the password to install in your Keychain access.

  3. Navigate to My certificates and export the certificate. Ensure that you select the mime type .cer.

  4. Once you have the p12 file and cer file are available, run the following commands:

- openssl pkcs12 -in privatekey.p12 -out myapnappkey.pem -nodes –clcerts

- openssl x509 -in privatekey.cer -inform DER -out myapnsappcert.pem

- openssl s_client -connect gateway.sandbox.push.apple.com:2195 -cert myapnsappcert.pem -key myapnappkey.pem

If you can connect to the server, the certificate you’ve created is valid. From the myapnappkey.pem file, copy the certificate and private key values.

Push notifications on Android

For Android, the user needs to provide the services.json file from the Firebase project for adding the entry in the SNS service.

Create a project in Firebase and share the services.json file to the CSM team. This file is needed for token-based entry in the SNS. Note that the server key is no longer used. See Create project in Firebase.

To download the services.json file, follow these steps:

  1. Log in to the Firebase console.

  2. Go to Project settings and select Cloud Messaging.

  3. Find Firebase Cloud Messaging API and select Manage Service Accounts.

  4. In the Service cccounts page, select the Service Accounts in the left panel.

  5. Find your project entry, and select Manage details under actions.

    note note
    NOTE
    The project entry format will be <-accountname->@appspot.gserviceaccount.com.
  6. Go to the Keys tab and select Add Key.

  7. If there is no key, select Create new key and select JSON as the key type. This will generate and download the JSON file.

  8. If there is already a key, select Upload existing key, paste the key, and upload it. This will generate and download the JSON file.

Contact the CSM team and share the JSON file for adding the entry to the SNS services on AWS. Users will have to get the entry registered in the SNS service for the push notification, which will require them to share the certificates generated above for validation.

Create project in Firebase create-project-in-firebase

Android

Re-use the same project that you’d created in the steps above for push notifications.

in Firebase and retrieve the google-services.json file.

iOS

to Firebase and retrieve the GoogleService-Info.plist file.

IMPORTANT
Send the files to the ÃÛ¶¹ÊÓƵ Learning Manager CSAM team to include to the build of your app binary file.

Generate the signed binaries

iOS

The <root> folder contains the Runner.xcarchive.zip file. Run the below commands to generate the signed binary:

  1. Run the following command to unzip the archive:

    code language-none
    unzip Runner.xcarchive.zip
    
  2. Navigate to the app directory:

    code language-none
    cd Runner.xcarchive/Products/Applications/Runner.app
    
  3. Copy the mobile provisioning file:

    code language-none
    cp <path>/<mobile-provisioningfile>.mobileprovision embedded.mobileprovision
    
  4. Run the following command to update your signing information to the framework library:

    code language-none
    codesign -f -s "Distribution Certificate Name" Frameworks/*
    
  5. Return to the <root> folder (where Runner.xcarchive.zip is located):

    code language-none
    cd <root>
    
  6. Export the archive using xcodebuild:

    code language-none
    xcodebuild -exportArchive -archivePath Runner.xcarchive -exportPath ipa_path/ -exportOptionsPlist <path>/<ExportOptions-file>.plist
    
  7. Locate the .ipa file in the ipa_path folder.

  8. Upload the .ipa file to Diawi website.

  9. Once fully uploaded, select the Send button.

  10. After completion, you will receive a QR code and a link.

  11. Open the QR code or link directly in Safari.

If the device is included in the provisioning profile, the installation should proceed on the device.

NOTE
You’ll need XCode 15.2 or higher to build the signed binaries.

Android

For apk file

IMPORTANT
Before running the apksigner command, execute the following commands to export your keystore password and key alias password as environment variables:
code language-none
export KS_PASS=your_keystore_password
export KEY_PASS=your_key_password
sh""" <path>/apksigner sign --ks $storeFile. --ks-pass env:KS_PASS --ks-key-alias $key_alias --key-pass env:KEY_PASS --out app-release-signed.apk -v app-release.apk """
NOTE
The path to the apksigner tool typically looks like this: ~/Library/Android/sdk/build-tools/30.0.3/apksigner.

For aab file

NOTE
You’ll require Android sdk build-tools to build the signed binaries.

The Play Store requires Android binaries in the aab format for publishing. Therefore, we will provide the unsigned .aab file.

NOTE
When creating a keystore file, you need to generate a keystore password, a signing key alias, and a signing key alias password.

Follow the below steps to sign the .aab file:

Run the following command:

<path>/jarsigner -verbose -sigalg SHA256withRSA -digestalg SHA-256 -keystore <keystore-file> app-release.aab <signingKeyAlias>
NOTE
The jarsigner is included with Java. Ensure that you are using Java 21.

When prompted, please enter the following passwords:

  • Keystore password
  • password for signing key alias

You can use the provided apk. However, if you need to generate an apk from an aab file, please follow these steps:

NOTE
You will need to install bundletool to generate APKs.

Run the following command to create the apk file:

java -jar <path>/bundletool-all.jar  build-apks --bundle=app-release.aab --output=my_app.apks --mode=universal

To unzip the file, run the following command:

unzip my_app.apks -d output_dir

You will get the apk file from the output_dir folder.

What’s next

After generating the binaries, push the binaries into Play Store or App Store.

Pushing the apps to the store for review

After getting the final binaries, you can upload them to the respective app stores (iOS or Android) for review. Follow these steps to upload the binaries to the app stores.

iOS

  1. Log in to the Transporter app with your App Store credentials.
  2. Select the + button at the left top and upload the production certificate (.ipa file).
  3. If the .ipa file is correct, you will be prompted to upload the app to the App Store.
  4. After the app is delivered, sign in to the App Store. Within a few hours, the binary will appear in the TestFlight section. You can enable it for final sanity testing in TestFlight before the app review and use this IPA as the binary when submitting the app for a new release.

Android

  1. Open the Google Play Store Console.
  2. Go to Dashboard > View App Releases > Release Dashboard and then select the Create New Release.
  3. Upload the generated .aab file as the app bundle and type release details such as the version number and What’s New information.
  4. Save your changes and submit the app for review.
  5. Make sure to set the app distribution to 100% (Google sets it to 20% by default).

Android


iOS

How do I apply the changes

Sends the required assets and files to the CSM team. The CSM team then fills the with the required changes and attaches the required assets. The team will then review and inform the engineering teams of the changes. The engineering team will then generate a build and share with the CSM team.

The CSM team will share the build with the customer.

What cannot be customized

  • Update Password screen
  • Creating an account screen
recommendation-more-help
d5e5961a-141b-4c77-820e-8453ddef913d