Adapt mPaaS 10.1.32 for iOS 13 to avoid functional errors and crashes caused by changes in system behavior.
iOS 13, released on September 19, 2019, introduced changes in system behavior that can cause functional errors, crashes, and other issues in apps that are not adapted. |
Background
iOS 13, released on September 19, 2019, introduced changes in system behavior that can cause functional errors, crashes, and other issues in apps that are not adapted.
Before adaptation, the mPaaS SDK built with Xcode 10 was affected on iOS 13 devices in one main way: iOS 13 optimized app startup by changing the image loading mechanism, which could cause system categories to overwrite SDK-defined category methods. As a result, custom methods might not return the expected results.
Current status
mPaaS has been adapted for iOS 13 when built with Xcode 10. Because the adaptation currently covers only Xcode 10, use Xcode 10 for packaging when you submit your app to the App Store. An adapted version for Xcode 11 will be released as the toolchain matures.
Upgrade the SDK or components
Upgrade using the plugin
The mPaaS Xcode plugin provides two upgrade methods:
mPaaS module upgrade
mPaaS baseline upgrade
Choose an upgrade method based on your needs. If you:
already use the plugin to manage component dependencies and your current SDK version is 10.1.32, use the mPaaS module upgrade feature to upgrade the modules you use.
do not use the plugin to manage component dependencies, follow these steps to upgrade:
Use the mPaaS module edit feature to select the modules you need.
Use the mPaaS module upgrade feature to upgrade to version 10.1.32.
Upgrade using CocoaPods
Follow these steps to install the latest SDK of version 10.1.32:
Make sure the version number of the mPaaS components in the Podfile is 10.1.32.
Run
pod mpaas update 10.1.32. If a command error is reported, runpod mpaas update --allto update the plugin first, and then run the command again.Run
pod install.
API changes
Version 10.1.32 components include an adaptation layer. After upgrading the SDK, use the adaptation layer APIs. For upgrade notes, see the following component documents:
Use the adapter methods instead of the underlying methods in your code. Underlying methods may change or be deprecated in future versions, which would require additional adaptation effort.
Handle custom libraries
Version 10.1.32 components incorporate custom requirements. If your project depends on custom libraries, handle them as follows for stability:
If you are upgrading from an earlier SDK version to 10.1.32, your custom libraries may need to be re-customized for the new version. Join DingTalk group 145930007362 to contact the mPaaS support for confirmation.
If you are already using version 10.1.32, you may only need to update some components. Check the List of libraries updated for iOS 13 adaptation below to determine if your custom libraries are included.
If they are not included, you can continue to use the custom libraries.
If they are included, your custom libraries may need to be re-customized. Join DingTalk group 145930007362 to contact the mPaaS support.
List of libraries updated for iOS 13 adaptation
mPaaS
MPDataCenter
APMultimedia
BEEAudioUtil
BeeCapture
BeeCityPicker
BeeMediaPlayer
BeePhotoBrowser
BeePhotoPicker
NebulaAppBiz
NebulaBiz
NebulaSDKPlugins
APConfig
AntUI
NebulaSDK
TinyAppCommon
MPPromotion