Genero Mobile for Android (GMA) 4.01 changes
Modifications to consider when using the Genero Mobile for Androidâ„¢.
This topic describes feature changes in the GMA 4.01 product. See also the Mobile section in Genero BDL 4.01 New Features page.
GMA 4.01 with FGLGWS 4.01
The GMA version 4.01 is built on FGLGWS 4.01 and therefore strongly tied to this Genero BDL version.
Need for JDK version 17
JDK 17 is required to build Android apps. For the latest information regarding system requirements and Java support, please refer to the Supported platforms and databases document, available on the "Products" download page of the Four Js Web site.
For more details, see Install Genero Mobile for Android.
Cordova / Gradle compatibility
Starting with GMA 4.01.02, Cordova plugins need to be compatible with Gradle plugin version 7.2.1 and Gradle version 7.4.2. All Cordova plugin using outdated Gradle features need to be reviewed.
standard.playSound
gets a wait parameter
Starting with GMA 4.01.02, the standard.playSound
front call supports a second
input parameter to force the front call to return immediately (FALSE
), or wait
until the sound has finished playing (TRUE
).
For more details, see standard.playSound.
standard.playSound
allows http/https URLs
Starting with GMA 4.01.02, the standard.playSound
front call now supports sound
files provided by URIs that take the form of http or https and that exist on the Web or on a private
HTTP server. It is no longer required to set up the sound file as a resource on the GAS or
programmatically put the file on the client.
For more details, see standard.playSound.
gmabuildtool default keystore type is now PKCS12
When the gmabuildtool option build-jarsigner-keystore
is not
used, or if the provided keystore file is not valid, gmabuildtool generates a
default keystore.
Starting with GMA 4.01.04, the default keystore file is generated with type PKCS12. Before 4.01.04, the default generated keystore was of type JKS.
For more details, see Generate the keystore file to sign your app.
Using GBC theme to define app colors
Starting with GMA 4.01.04, the --build-app-colors
option of
gmabuildtool is desupported. As replacement, use GBC customization and
theming solutions.
Android 13 SDK (API 33) support
Starting with GMA 4.01.04, GMA is based on API 33 / Android 13 SDK.
Permissions summary in gmabuildtool output
Starting with GMA 4.01.06, the gmabuildtool
output shows a summary of the Android permissions used to build the
APK/AAB. These can be:
- Permissions embedded by default
- Permissions added by the
--build-app-permissions/-ba
option - Permissions added by Cordova plugins or external libs implemented by the user
Changes to gmabuildtool command arguments
gmabuildtool
command reference):Deprecated option | Replacement option | Description |
---|---|---|
|
The option to replace the current scaffold can be achieved by cleaning it manually. Changes
to the way the --build-project unzips the scaffold has enhancements for working
with scaffold files. |
|
|
--build-project / -bp |
The --build-project option now extracts scaffold files in silent mode.
|
|
@argfile |
Instead of:
Use
now:
|
|
The application name is now constructed from the package name specified with the
|
|
|
The --root-path is a new option for specifying the path to the default app
icons path and for the default directory for build temp files. Default app icons dir is now
root-dir/icons, it was
root-dir/gma. Go to Directory structures required for the build for more
details. |
|
|
The --main-app-path is a new option for specifying the absolute path to the
main module of the application.This option is mandatory. Go to Directory structures required for the build for more details. |
|
|
Use the short options to set the log level. |
|
--build-jarsigner-keystore / -bjks |
--build-signing-keystore /
-bsks |
Option renaming. |
--build-jarsigner-alias / -bja |
--build-signing-alias / -bsa |
Option renaming, now mandatory when -bsks is used. |
--build-jarsigner-storepass / -bjs |
--build-signing-storepass / -bss |
Option renaming, now mandatory when -bsks is used. |
--build-jarsigner-keypass / -bjk |
--build-signing-keypass / -bsk |
Option renaming, now mandatory when -bsks is used. |
Changes to gmabuildtool proxy options
Starting with GMA 4.01.06, the --proxy-host
and --proxy-port
options for setting host and
port now apply only to the gmabuildtool updatesdk command.
For more details, see Update the Android SDK with the GMA buildtool.
Package name manifest attribute for user-extensions and cordova builds
Starting with GMA 4.01.06 (since AGP upgrade), for Java user-extensions and Cordova, the
package
attribute in AndroidManifest.xml is now deprecated and
replaced by specifying the namespace
attribute in the
build.gradle.template file located in
templates/src/extension/build.gradle.template.
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.gma.extension">
Since GMA
4.01.06:...
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
}
}
namespace 'com.gma.extension'
...
The directory path of the scaffold has also changed, it was extension-example/gma/project and is now extension-example/project/scaffold.
For more details, see Custom GMA binary archive build.
Advertizing ID management
If an app package includes the com.google.android.gms.permission.AD_ID
permission, in order to upload the AAB package to the Google Play Console, it is mandatory to
declare that the app uses an advertising ID.
Before GMA version 4.01.06, an app package implicitly included the AD_ID
permission. Consequently, it was mandatory to declare that the app uses an advertising ID.
Starting with GMA version 4.01.06, the AD_ID
permission is no longer implicitly
included. As result, the declaration of the advertising ID is no longer required.
However, if the previous app version uploaded to the Play Console had the AD_ID
permission, you must keep the declaration of the advertising ID in order to upload the new version,
even if this new version does not include the AD_ID
permission. During the upload
procedure, an error will be shown, explaining to the user that the manifest does not include the
permission although it is declared as being used. This error can be ignored. After the new version
is uploaded successfully, the advertising ID declaration can be removed, since the last version of
the app no longer includes this permission.
Push notifications using FCM API V1
Starting with GMA 4.01.07, the push notifications solution on GMA now uses Firebase Cloud Messaging API V1.
If you have implemented a push notification service using FCM with the former "legacy" Cloud Messaging API, you must review the server and app code.
The structure of the JSON returned by mobile.getRemoteNotifications front call hase changed, see Front calls changes.
For more details, see Firebase Cloud Messaging (FCM).
Device identification with standard.feInfo
front call
Starting with GMA 4.01.08, the standard.feInfo
property
"deviceId"
returns now the ANDROID_ID
, while the
"iccid"
and "imei"
properties are now desupported and will produce
a runtime error if used.
For more details, see standard.feInfo.
Changes in earlier versions
Make sure to check the upgrade notes of earlier versions, to not miss changes introduced in maintenance releases. For more details, see Changes in GMA 4.00 / BDL 4.00.
- The
--no-interactions
option of gmabuildtool updatesdk New --no-interactions option, is available in GMA 4.01.01 and GMA 1.40.21.