Skip to main content

 

 

 

 
 
 
 
OutSystems

MABS Version 7.0

First release: 2020-12-09 14:00:00 UTC
Last update: 2021-07-14 12:30:00 UTC.

MABS 7.0 is an important milestone for all developers who publish on App Store and Play Store. This new MABS version uses Android 11 with the API level 30, iOS 14, and Cordova CLI 10. This stack lets you continue submitting your Android and iOS apps to the stores.

What's New

  • Mobile Apps Build Service (MABS) now uses the iOS SDK 14.2. This means that you can continue submitting your iOS apps to the App Store while complying with the requirements by Apple.

  • AndroidX is enabled by default. Fore more information see Building apps with AndroidX

  • Latest Android API level 30. This lets you submit your Android apps with the most recent target SDK to Google Play.

  • iOS apps now support iPhone 12, iPhone 12 Pro, and iPhone 12 Mini. 

  • Cordova iOS engine 6.1.1 for iOS apps. We highly recommend you revise your plugins for compatibility with this version.

  • Cordova Android engine 9.0.0 for Android apps. It is highly recommended that you ensure your plugins are compatible with this version.

  • Cordova Command Line Tool (CLI) 10.0.0. We highly recommend you revise your plugins for compatibility with this version.

  • CocoaPods version 1.10.0. You should revise your plugins that have dependencies for CocoaPods.

  • We improved the overall stability and security, with a focus on the mobile apps that use plugins with hooks. We recommend rebuilding your mobile apps and confirming they are working as expected.

  • Removed the network inspector from the Android builds. It’s now available for iOS only, as this is a feature specific for the iOS builds.

  • Dropped support for iOS 11.

  • Dropped support for Android 5 and 5.1

 

Bug fixing

  • [2021-01-15 14:00:00 UTC] Improved the robustness of the build process in scenarios with potential permission errors. (RNMT-4586)
  • [2021-02-17 18:30:00 UTC] Improved a build error message when using requireCordovaModule from a plugin hook to load non-Cordova modules. (RNMT-4668)
  • [2021-02-17 18:30:00 UTC] Fixed iOS build process for apps with custom Cordova plugins. (RNMT-4669)
  • [2021-02-17 18:30:00 UTC] Fixed iOS debug builds that have CocoaPods with the dynamic framework dependencies. (RNMT-4687)
  • [2021-02-19 15:30:00 UTC] We fixed an Android issue related to the SSL Pinning Plugin that was causing apps to show an error screen at startup. (RNMT-4710)
  • [2021-03-17 10:30:00 UTC] Improved the feedback messages about the following errors: timeouts, Swift compilation, and the plugin installation. (RNMT-4585)
  • [2021-04-06 08:00:00 UTC] MABS now validates the iOS certificates and provision profiles in the initial phase of the build pipeline. This lets you see and fix potential errors early in the build process. (RNMT-4739)
  • [2021-04-21 15:00:00 UTC] You can now add the Referer header to the custom scheme requests (iOS only). (RNMT-4762)
  • [2021-04-21 15:00:00 UTC] Fixed a typo in some logs on the OSCache component for the Android platform. Where before was ‘File is corrput or invalid’ is now ‘File is corrupt or invalid’. (RNMT-4765)
  • [2021-04-21 15:00:00 UTC] Improved OSCache plugin logging when there is a hash mismatch between cached file and the remote version of the same file (RNMT-4767)
  • [2021-05-05 00:30:00 UTC] Workaround to mitigate JitPack downtime Incident applied, using some OutSystems core packages locally instead of fetching from JitPack (RNMT-4895)
  • [2021-05-12 15:00:00 UTC] We changed the priority of the MavenCentral repository to be higher than the JCenter repository. This will reduce the impact of the JCenter sunset in OutSystems mobile apps for Android. (RNMT-4821)
  • [2021-05-19 15:30:00 UTC] Fixed an issue that was causing the Native Logger to perform concurrent network requests to the server on iOS (RNMT-4892)
  • [2021-06-02 10:00:00 UTC] You can now remove user-added certificates from the custom trust anchors in the Android builds. Set RemoveUserCertificates to true in the Android preferences section of the Extensibility Configuration to let MABS remove <certificates src="user" /> from the build. This overrides a default setting of the OutSystems Android apps and lets you build mobile apps that trust only the default CAs, and exclude the CAs the users might add. (RNMT-4905)
  • [2021-06-30 14:00:00 UTC] Fixed wrong log messages for the self-healing mechanism. (RNMT-4923)
  • [2021-06-30 14:00:00 UTC] Fixed mobile apps getting stuck on the splash screen when opening the app via a deeplink. (RPM-1226)
  • [2021-06-30 14:00:00 UTC] Fixed the logging mechanism so it correctly shows "Failed to store downloaded resource ... File is corrupt or invalid" in the logs for the iOS apps. (RNMT-4921)
  • [2021-06-30 14:00:00 UTC] Fixed the logging mechanism so it correctly shows "Failed to load cache manifest" in the logs for the iOS apps. Also, improved the consistency of logs for both iOS and Android. (RNMT-4917)
  • [2021-07-01 11:30:00 UTC] Added validation to prevent native mobile apps from using SSL Pinning Plugin to pin to OutSystems managed certificates. For more information, check the documentation.
  • [2021-07-14 12:30:00 UTC] Fixed invalid prebundle resource indexing in the OSCache healing process that caused the error "Could not get InputStream".  (RNMT-4922)]
  • [2021-07-14 12:30:00 UTC] Fixed a bug that caused some builds to fail when installing the cordova-whitelist-plugin with the message "An unexpected error has occurred while installing the Cordova plugins. Please try again. If the problem persists, contact OutSystems Support." (RNMT-4983)

 

Some plugin requirements for MABS.

Plugin

Required minimum version

MABS

SSL Pinning 

6.0.0 or later

MABS 7.0 and later

InAppBrowser

2.4.0 or later

MABS 7.0 and later

Camera

6.2.0 or later

MABS 7.0 and later

Ciphered Local Storage

3.1.0 or later

MABS 7.0 and later

OneSignal

3.5.0 or later

MABS 7.0 and later

 

Breaking Changes and Known Limitations

Here is the list of issues that may appear when building your apps with MABS 7.0.

With Cordova CLI 10, the platform uses the npm-install command to install the plugins. If you're using hosted git providers, you may need to adjust the protocol from http/https to git, as http/https is not supported by some hosted git providers. See the npm-install documentation and change your plugin configuration as needed.

Workaround

Prefix url protocol with git+

Examples:

  • git+https://[repo]

Commit or subdir element no longer effects dependency definition

The commit or subdir element no longer has any effect on dependency definition For example, <dependency id="..." url="https://x.git" commit="y" /> no longer installs https://x.git#y, but instead plain https://x.git.

Workaround

Put the complete URL in the url element.

context.requireCordovaModule no longer supported for loading non-Cordova modules

Using context.requireCordovaModule to load non-cordova modules is not supported anymore. Trying to build an app on MABS 7 with a plugin that uses context.requireCordovaModule, causes a message similar to:

Error installing Cordova plugin: {0}. Using "requireCordovaModule" to load non-cordova modules {PLUGIN NAME} is not supported. Instead, add this module to your dependencies and use regular "require" to load it.

Workaround

Replace context.requireCordovaModule with require and define the dependencies on package.json. Skip this for modules that belong to Node.

Xcode required in package.json

Hooks in plugins requiring modules need to add modules such as “xcode” to the package.json

When a build fails with, logs similar to this are shown: Cannot find module 'xcode'

Workaround

Define the dependencies in package.json.

Value user-agent no longer available through CDVUserAgentUtil

With the new cordova-ios engine 6.1.1, any Cordova plugin that requires user-agent no longer can get it through the CDVUserAgentUtil component.

Workaround

Or any Cordova plugin that requires user-agent, ensure the following:

  • The plugin no longer depends on the CDVUserAgentUtil component.

  • The plugin is no longer retrieving the user-agent from the CDVPlugin or the CDVViewController components.

  • The plugin can programmatically retrieve user-agent from the WebView instance.

  • Was this article helpful?