mPaaS 10.1.60 适配 iOS 13

背景

iOS 13 已经于 2019 年 9 月 20 日正式发布。在 iOS 13 beta 及正式版的测试中,发现系统的部分行为发生了变化,因此 App 需要进行适配,否则可能会出现功能异常、Crash 等问题。

在 mPaaS 适配之前,在 iOS 13 设备上,Xcode 10 构建的 mPaaS SDK 受到的影响主要为:由于 iOS 13 优化了 App 启动,修改了镜像的加载机制,导致系统 category 可能会覆盖 SDK 中定义的 category 方法,进而导致自定义的方法无法返回预期结果。

说明

mPaaS 作为基础库,目前 10.1.60.26 及以后的版本已经完成了 Xcode 11 构建下的 iOS 13 的适配工作。

升级 SDK/组件

基于 Extension 插件升级

使用 mPaaS Xcode Extension 插件升级 SDK/组件,您可以选择以下两种方式:

您需要根据自身情况选择升级方式。如果您:

  • 已经使用 Extension 插件管理组件依赖,但当前使用的基线版本低于 10.1.60,可使用 升级基线 功能升级至 10.1.60 版本。

    说明

    当前使用的基线版本可在插件的 基线升级 中查看。

  • 已经使用插件管理组件依赖,且当前使用的基线版本为 10.1.60,可使用 更新产品集 功能升级所使用到的模块。

  • 未使用插件管理组件依赖。可按照以下步骤进行升级:

    1. 安装 mPaaS Xcode Extension

    2. 使用 编辑模块 功能选择 10.1.60 版本基线并添加所需模块。

热修复库

若当前基线不是 10.1.60,则热修复库也必须升级至 10.1.60 版本。由于线上可用的热修复库是通过技术支持专人提供的,您需要加入钉钉答疑群 41708565 联系 mPaaS 支持人员。

API 变更

mPaaS 组件在 10.1.32 及以上版本中添加了适配层,建议您在升级 SDK 后使用适配层的 API,具体可参考以下各组件文档中的旧版本升级注意事项:

说明
  • 需重点关注项目中 mPaaS 各组件的配置类的 categoryinfo.plist 中的配置发生的变化。

  • 强烈建议您修改代码,使用中间层(适配器)方法而非直接使用底层方法。因为某些底层方法可能会在将来的版本中发生变更或废弃,如果您继续使用,在将来的更新中可能需要花费更多的时间进行适配。

定制库处理

10.1.60 版本各组件合入了定制化的需求,但是为了稳妥起见,如果此前您的依赖中包含定制库,则需要按以下情况处理:

  • 如果您是从低版本 SDK(例如 10.1.20)升级至 10.1.60 版本,您的定制库可能需要基于新版本重新定制,请加入钉钉答疑群 41708565 联系 mPaaS 支持人员确认。

  • 如果您已使用 10.1.60 版本,则只需更新部分组件。参见下文的 适配 iOS 13 更新的库清单,检查您的定制库是否包含在其中。

    • 如果不包含,您可继续使用该定制库。

    • 如果包含,您的定制库可能需要重新定制,请加入钉钉答疑群 41708565 联系 mPaaS 支持人员。

适配 iOS 13 更新的库清单

  • 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