All Products
Search
Document Center

mPaaS 10.1.32 baseline adapt to iOS 13

Last Updated: Sep 23, 2021
Important: Since June 28, 2020, mPaaS has discontinued the maintenance of the 10.1.32 baseline. We recommend that you use the 10.1.68 or 10.1.60 baseline.

Background

iOS 13 was officially released on September 19, 2019. During the testing of iOS 13, we found that some behaviors of the system changed. Therefore, you must perform app adaptation before using it. Otherwise problems such as functional exceptions and crashes may occur.

Before the adaptation of mPaaS to iOS 13, the major impact on the mPaaS SDK built by Xcode 10 on iOS 13 devices is as follows: Since iOS 13 optimizes app startup and modifies the mirror loading mechanism, the system category may overwrite the category methods defined in the SDK. As a result, custom methods cannot return expected results.

Status quo

As a basic library, mPaaS has been adapted to iOS 13 built under XCode 10. Since mPaaS is currently adapted only for Xcode 10 packaging, you must use Xcode 10 for packaging and submit the package to App Store.
The tool chain for Xcode 11 is not yet complete. With the enhancement of the tool chain, mPaaS will release a version adapted to iOS 13 built under Xcode 11.

Upgrade the SDK or components

Upgrade based on CocoaPods

Install the latest SDK of version 10.1.32 by completing the following steps.

  1. Check that the mPaaS version is 10.1.32 in Podfile.
  2. Run the command pod mpaas update 10.1.32.
    If an error is returned, run the command pod mpaas update --all to update the plug-in and then rerun the previous command.
  3. Run the pod install command.

The hotfix library

If your current baseline version is not 10.1.32, you must upgrade the hotfix library to version 10.1.32. Since the online hotfix library is provided by submitting tickets or technical support personnel, you must submit a ticket or contact mPaaS technical support personnel to access the hotfix library.

API changes

The mPaaS component added an adaptation layer in version 10.1.32. We recommend that you use the API of the adaptation layer after upgrading the SDK. For details, see the following upgrade instructions for different components:

Notes:
  • Pay special attention to the directory and info.plist configuration changes for mPaaS components in the project.
  • We strongly recommend that you modify the code and use middle-layer (adapter) methods instead of directly using underlying methods, because certain underlying methods may be modified or discarded in future versions. You may need to take lots of time adapting them in future updates if you continue to use them.

Change of the directory structure

Among the component category directories and files under the MPaaS directory of the project, onlyAPMobileFramework and mPaas are kept after the upgrade. All the other directories, such as MPHotpatchSDK and APRemoteLogging, are automatically removed. If there are any custom files saved under these directories, you need to back up them in advance. For details of the directory structure, see mPaaS directory structure.

Change of Info.plist

The following figure shows the related mPaaS fields inserted in the Info.plist file of the project before the upgrade.

plistbefore

In 10.1.32 and later versions, only the Product Version field is required. After the baseline is upgraded, the plug-in automatically removes the Product ID, mPaaS, and mPaaSInternal fields. If the plug-in fails to remove these fields, you need to delete them manually. The following figure shows the fields after the upgrade.

Note: Do not delete the Product Version field when you delete the fields manually.

plistafter

Handle custom libraries

The components in version 10.1.32 incorporate customization requirements. However, if your dependencies include custom libraries, you must take the following actions to handle them accordingly for security reasons.

  • If you upgraded the SDK from an earlier version to 10.1.32, you may need to customize custom libraries again based on the new version. To do this, submit a ticket or contact mPaaS technical support personnel for confirmation.
  • If the SDK version is 10.1.32, upgrade certain components. See List of libraries adapted to iOS 13 updates to check whether your custom libraries are contained in the list.
    • If no, you can continue to use these custom libraries.
    • If yes, you may need to customize them again. To do this, submit a ticket or contact mPaaS technical support personnel.

List of libraries adapted to iOS 13 updates

  • mPaas
  • MPDataCenter
  • APMultimedia
  • BEEAudioUtil
  • BeeCapture
  • BeeCityPicker
  • BeeMediaPlayer
  • BeePhotoBrowser
  • BeePhotoPicker
  • NebulaAppBiz
  • NebulaBiz
  • NebulaSDKPlugins
  • APConfig
  • AntUI
  • NebulaSDK
  • TinyAppCommon
  • MPPromotion