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 mPaaS SDK built by Xcode 10 on iOS 13 devices is mainly affected by the following scenario. 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 the expected results.
Status quo
As a base 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 SDKs or components
Upgrade based on the plug-in
To upgrade the SDK or components by using the mPaaS Xcode plug-in, you can use one of the following methods.
mPaaS module upgrade
mPaaS baseline upgrade
Select one of the upgrade methods as required. The following situations are considered.
If you are using the mPaaS plug-in to manage component dependencies and the current SDK version is 10.1.32, you can upgrade the used modules by using mPaaS module upgrade.
If you have not used the mPaaS plug-in to manage component dependencies, you can perform the following steps to upgrade the target module.
Install the plug-in.
Select the target module by using mPaaS module editing.
Upgrade the target module to version 10.1.32 by using mPaaS module upgrade.
You can view the current baseline version of the project in mPaaS baseline upgrade for the plug-in.
Upgrade based on CocoaPods
To install the latest SDK of version 10.1.68, perform the following steps.
Check that the mPaaS version is 10.1.32 in Podfile.
Run the
pod mpaas update 10.1.32
command. If an error is returned, run thepod mpaas update --all
command to update the plug-in and then rerun the command.Run the
pod install
command.
API changes
An mPaaS component is added the adaptation layer in baseline version 10.1.32. We recommend that you use the APIs of the adaptation layer after you upgrade the SDK. For details, see the following upgrade instructions for different components.
We strongly recommend that you modify the code to use middle-layer methods, that is, adapters, instead of directly using underlying methods. Since some underlying methods may be modified or deprecated in future versions, it may take lots of time to adapt these methods in future updates if you continue to use them.
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 your custom libraries accordingly for security reasons.
If you upgrade an mPaaS SDK from an earlier version to 10.1.32, you may need to re-customize custom libraries based on 10.1.32. You need to submit ticket or contact mPaaS Customer Service for confirmation.
If the SDK version is 10.1.32, you only need to upgrade certain components. You need to check whether your custom library is contained in the following List of libraries adapted to iOS 13 updates.
If your custom library is not contained in the list, you can continue to use this custom library.
If your custom library is contained in the list, you may need to re-customize the custom library. You need to submit ticket or contact mPaaS Customer Service for confirmation.
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