Skip to main content

 

 

 

 
 
 
 
OutSystems

MABS Version 8.0

First release: 2021-10-11 17:00:00 UTC
Last update: 2021-12-02 13:00:00 UTC

MABS 8.0 is an important milestone for all mobile developers who publish on App Store and Play Store. MABS 8 uses iOS 15, and Android 12 with the API level 31. The stack lets you continue submitting your Android and iOS apps to the stores while taking advantage of the new features that new iOS and Android bring.

It’s MANDATORY to upgrade all supported plugins to the latest version available on the Forge in order to use MABS 8.0. For more details, please check the System Requirements below.

What's New

  • Android

    • Android Cordova Engine updated to 10.1.1

    • Gradle version increased to 7.1.1

    • Android Gradle Plugin (AGP) version updated to 7.0.0

    • Java version updated to 11

  • iOS

    • iOS Cordova Engine updated to 6.2.0

  • Dropped support for iOS 12

  • Dropped support for Android 6, 7.0 and 7.1

  • We added new error mappings for Android and iOS when a build fails. Please see Breaking Changes for details

  • We upgraded the infrastructure for iOS builds so the infrastructure now runs on M1 architecture with Rosetta enabled

  • Mobile build requests that failed due to requiring an updated plugin version will now display an error message containing the plugin name and version as defined in the Forge

Bug Fixing

  • [2021-12-02 12:00:00 UTC] The MABS version has been added to the supported plugins validation error message.  (RNMT-5248)
  • [2021-12-02 12:00:00 UTC] Fixed an issue that prevented the provisioning profile entitlement com.apple.application-identifier being considered as a valid entitlement.  (RNMT-5244)
  • [2021-12-02 12:00:00 UTC] Improved the error message shown when a build error related to AppShield occurs.  (RNMT-5252)

System Requirements

Plugin requirements for MABS. For more details, please check the Forge by clicking on the plugin name

Plugin Required minimum version
SSL Pinning 6.0.2 or later
InAppBrowser 2.4.5 or later
Camera 7.1.4 or later
Ciphered Local Storage 3.1.1 or later
OneSignal 3.5.6 or later
Location 5.1.7 or later
Local Notifications 7.0.7 or later
Barcode 5.0.3 or later
File 3.0.2 or later
Touch ID 3.3.2 or later
Key Store 2.2.1 or later
Calendar 3.1.3 or later
Contacts 4.0.5 or later
Card IO  3.2.1 or later
Analytics (Firebase) 1.0.3 or later
Dynamic Links (Firebase) 1.0.3 or later
Performance Monitoring (Firebase) 1.0.2 or later
Crash Reporting (Firebase) 1.0.3 or later
File Viewer 2.0.4 or later
Health and Fitness 1.0.1 or later
File Transfer 2.1.3 or later

Breaking Changes and Known Limitations

Here is the list of issues that may affect the building of your apps with MABS 8.0.

On MABS 8, due to targeting Android 12, apps that have activities, services or broadcast receivers that use intent filters must explicitly declare the android:exported attribute for these components in AndroidManifest.xml. Any case where the attribute is missing leads to a failed build with the error "Apps targeting Android 12 and higher are required to specify an explicit value for android:exported when the corresponding component has an intent filter defined".

If this error occurs to you, it means that you have a non-supported plugin with a breaking change. To fix the issue, set the android:exported attribute in AndroidManifest.xml to true or false. Set to true depending so any device can start the affected components. 

This is required not only for the AndroidManifest.xml file in the app but also in every dependency, such as the ones declared via Gradle.

If you have plugins that declare these elements in the plugin.xml, review the settings and add the attribute. Dependent plugins may also need reviewing. If builds are still failing after adding the attribute to  plugin.xml files, the issue most likely lies in AndroidManifest.xml files of other dependencies, such as Gradle dependencies declared in plugins (including dependent plugins). These dependencies can include their own AndroidManifest.xml files which must also comply with this requirement.

For more information see the section Safer component exporting in the document Behavior changes: Apps targeting Android 12 by Android.

Gradle compile() configuration is now obsolete

If a plugin uses compile configuration in the Gradle files, the build fails. On MABS 8, due to using Gradle 7.1.1 on Android builds, the compile configuration to declare dependencies is no longer available. 

As an alternative, use implementation and api configurations. The api has the same behaviour as the deprecated compile.

For more information see Removal of compile and runtime configurations by Gradle.

Whitelist Plugin is now to AllowList in newer Cordova Android engine versions

Before MABS 8, the Cordova Android engine didn’t include logic to allow a list of URLs, intents and navigations. To handle that, a plugin called Whitelist Plugin was used. This plugin was included in all MABS builds.

The Whitelist Plugin is no longer present in MABS 8 builds as it was deprecated. The new Cordova AllowList Plugin Android engine now includes the same functionality as the deprecated plugin in other packages and classes.

For plugins that directly import the classes of the deprecated plugin, update the code so the plugins use the AllowList Plugin.

For more details about the plugin deprecation see Apache Cordova - Whitelist Plugin. To have a look at a pull request that adds AllowList to Cordova Android can  see this pull request.

CardIO

There’s currently a known issue with applications that use the CardIO plugin that may cause the application build to timeout and fail.

Android 12 Native SplashScreen

With Android 12, Google introduced a dedicated splash screen API in order to unify the look across all apps. This means that all apps system-wide running on Android 12 now show a native splash screen which by default is set by background color and the application icon. To improve the user experience, MABS 8 will update the Android native splash screen to have the same background as defined in cordova-plugin-splashscreen while also hiding the icon so that the end-user doesn't have two different loading experiences.

Mobile apps with "&" in the app name fail to build on MABS 8

Try the following as workarounds:

  • Use MABS 8 and remove "&" from the name of the app.
  • Use MABS 7.2 or earlier and leave "&" in the name of the app.

Details

When you try building a mobile app in MABS 8 that has "&" in the name, the build fails with the error message "Something happened on our side while installing the Cordova plugins. Please try again". The build log shows "Error: Invalid character in entity name".The errors are caused by a change on Cordova Android 10, which broke the use case. The error is related to the way the name is written to Android's strings.xml, which causes the error when parsing it, in the prepare.js file.OutSystems continues to investigate the issue and approaches to remedy the situation.

  • Was this article helpful?