All Products
Search
Document Center

Mobile Platform as a Service:mPaaS 10.1.60 baseline adapt to iOS 13

Last Updated:Mar 06, 2023

Background

iOS 13 was officially released on September 20, 2019. During the testing of the iOS 13 beta and official versions, 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 mPaaS adaptation, 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.

Important: As the basic library, the mPaaS version 10.1.60.26 and later have been 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.60 by completing the following steps.

  1. Check that the mPaaS version is 10.1.60 in Podfile.

  2. Run the command pod mpaas update 10.1.60.

    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.

API changes

The mPaaS component added an adaptation layer in version 10.1.32 and later. 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 APRemoteLogging, is 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.60 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 (such as 10.1.20) to 10.1.60, 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.

  • If the SDK version is 10.1.60, update 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

  • MPPushSDK

  • APMultimedia

  • BEEAudioUtil

  • BeeCapture

  • BeeCityPicker

  • BeeMediaPlayer

  • BeePhotoBrowser

  • BeePhotoPicker

  • NebulaAppBiz

  • NebulaBiz

  • NebulaSecurity

  • NebulaKernel

  • NebulaSDKPlugins

  • NebulaSDK

  • NebulaConfig

  • NebulaTinyAppDebug

  • NebulaNetwork

  • TinyAppCommon

  • APConfig

  • AntUI

  • MPPromotion

  • BeeLocation

  • MPMpaaSService

  • TinyAppService

  • AMap