Comment on page
Generate AAB(App bundle) from source code
Steps how to generate ABB from source code
Open Terminal and clone source codegit clone https://github.com/Sunbird-Saral/Project-Saral.git
Change Directory toProject-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
- 1.
- 2.Implementing Saral App for specific purpose , its recommended to change default package
com.saralapp
references to implementation specific package for examplecom.saralapp.xxstate
for xxstate. Refer below screenshot. - 3.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
- 4.
./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.
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
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.
- 2.Edit
$FRONTEND_FOLDER
/SaralApp/src/config/config.js
to change apkVersionId , apkURL, BASE_URL as per the implementation. - 3.
./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.
- 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