Generate AAB(App bundle) from source code

Steps how to generate ABB from source code

Source Code references

Open Terminal and clone source code git clone https://github.com/Sunbird-Saral/Project-Saral.git

ReferSource Code Repositoryfor latest repository location.

Change Directory to Project-Saral/ folder and switch to release tag as per release notes. git checkout tags/<tag_name>

$FRONTEND_FOLDER = Project-Saral/v1.0/frontend

$BACKEND_FOLDER = Project-Saral/v1.0/backend

Saral v1.0 Android App bundling/packaging

  1. Follow Frontend Setup steps @ Workspace Setup - Playbook

  2. App Icon can be customised/replaced by generating App icon using standard icon editors and replace icons in below folders.

    • $FRONTEND_FOLDER\SaralApp\android\app\src\main\res\mipmap-mdpi

    • $FRONTEND_FOLDER\SaralApp\android\app\src\main\res\mipmap-hdpi

    • $FRONTEND_FOLDER\SaralApp\android\app\src\main\res\mipmap-xhdpi

    • $FRONTEND_FOLDER\SaralApp\android\app\src\main\res\mipmap-xxhdpi

    • $FRONTEND_FOLDER\SaralApp\android\app\src\main\res\mipmap-xxxhdpi

  3. Open Terminal in $FRONTEND_FOLDER/SaralApp/android folder

./gradlew clean

  1. AAB Signing can be enabled using the below Gradle files. Make sure the Keystore file is to be used for signing placed in $FRONTEND_FOLDER/SaralApp/android/app folder.

$FRONTEND_FOLDER/SaralApp/android/gradle.properties

MYAPP_RELEASE_STORE_FILE=my-upload-key.keystore

MYAPP_RELEASE_STORE_PASSWORD=changeit

MYAPP_RELEASE_KEY_ALIAS=hwrecog-key-alias

MYAPP_RELEASE_KEY_PASSWORD=changeit

$FRONTEND_FOLDER/SaralApp/android/app/build.gradle

Note: Make sure signingConfig signingConfigs.release the line is uncommented.

    signingConfigs {
          release {
         if (project.hasProperty('MYAPP_RELEASE_STORE_FILE')) {
            storeFile file(MYAPP_RELEASE_STORE_FILE)
             storePassword MYAPP_RELEASE_STORE_PASSWORD
             keyAlias MYAPP_RELEASE_KEY_ALIAS
             keyPassword MYAPP_RELEASE_KEY_PASSWORD

             // Optional, specify signing versions used
               v1SigningEnabled true
               v2SigningEnabled true
         }
     }
         debug {
             storeFile file('debug.keystore')
             storePassword 'android'
             keyAlias 'androiddebugkey'
             keyPassword 'android'
         }
     }

    buildTypes {
        debug {
            signingConfig signingConfigs.release
        }
        release {
            signingConfig signingConfigs.release
            /* These are optional params to shrink the app size*/
            shrinkResources enableProguardInReleaseBuilds
            zipAlignEnabled enableProguardInReleaseBuilds
            useProguard enableProguardInReleaseBuilds

            minifyEnabled enableProguardInReleaseBuilds
            minifyEnabled true
            shrinkResources true
            /* These are optional params to shrink the app size*/
                        
            debug {
                debuggable true
            }
        }
    }
  1. Update google-services.json file in $FRONTEND_FOLDER/SaralApp/android/app folder.

  2. Edit $FRONTEND_FOLDER/SaralApp/src/config/config.js to change apkVersionId , apkURL, BASE_URL as per the implementation.

  3. Open Terminal in $FRONTEND_FOLDER/SaralApp/android folder

./gradlew bundleRelease

(OR)

./gradlew bundleDebug

  1. You can find the release .aab file in Project-Saral/v1.0/frontend/SaralApp/android/app/build/outputs/bundle/release or debug folder.

Note: If releasing AAB file for a client/implementation, recommended creating a sub-branch(say v1.0.0-beta.1-up-apk) from release tag and modify implementation-specific Base URL.

  1. Open terminal from $FRONTEND_FOLDER/SaralApp/android folder and execute the below command to verify if AAB signature.

jarsigner -verbose -verify ./app/build/outputs/apk/release/app-release.aab

AAB file can't be used for installation and testing directly. Its for publishing to playstore. Once AAB file is generated , use below command to generate universal APK for installation and testing before publishing to Google play-store.

  1. Download Bundletool from Bundle Tool Releases

  2. java -jar <bundletool-all-1.10.0.jar> build-apks --bundle=app-release.aab --output=app-release.apks --mode=universal --ks=keystore.jks --ks-pass=pass:your_keystore_password --ks-key-alias=your_key_alias --key-pass=pass:your_key_password

Last updated