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.
Upgrade the SDK or components
Upgrade based on CocoaPods
Install the latest SDK of version 10.1.60 by completing the following steps.
Check that the mPaaS version is 10.1.60 in Podfile.
Run the command
pod mpaas update 10.1.60.
If an error is returned, run the command
pod mpaas update --allto update the plug-in and then rerun the previous command.
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:
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, only
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.
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
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.
Product Versionfield when you delete the fields manually.
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