全部产品
云市场
云游戏

mPaaS 10.1.60 适配 iOS 13

更新时间:2020-04-01 22:02:01

背景

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 版本基线并添加所需模块。

基于 CocoaPods 升级

按照以下步骤,即可安装 10.1.60 版本的最新 SDK:

  1. 首先确保 Podfile 中 mPaaS 组件的版本号为 10.1.60
  2. 执行 pod mpaas update 10.1.60
    如果提示命令报错,需通过 pod mpaas update --all 命令先更新插件,再重新执行。
  3. 执行 pod install

热修复库

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

API 变更

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

说明
  • 需重点关注项目中 mPaaS 各组件的配置类的 categoryinfo.plist 中的配置发生的变化。
  • 强烈建议您修改代码,使用中间层(适配器)方法而非直接使用底层方法。因为某些底层方法可能会在将来的版本中发生变更或废弃,如果您继续使用,在将来的更新中可能需要花费更多的时间进行适配。

定制库处理

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

  • 如果您是从低版本 SDK(例如 10.1.20)升级至 10.1.60 版本,您的定制库可能需要基于新版本重新定制,请 提交工单 或联系 mPaaS 支持人员确认。
  • 如果您已使用 10.1.60 版本,则只需更新部分组件。参见下文的 适配 iOS 13 更新的库清单,检查您的定制库是否包含在其中。
    • 如果不包含,您可继续使用该定制库。
    • 如果包含,您的定制库可能需要重新定制,请 提交工单 或联系 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