背景
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,可使用 更新产品集 功能升级所使用到的模块。
- 未使用插件管理组件依赖。可按照以下步骤进行升级:
- 安装 mPaaS Xcode Extension。
- 使用 编辑模块 功能选择 10.1.60 版本基线并添加所需模块。
基于 CocoaPods 升级
按照以下步骤,即可安装 10.1.60 版本的最新 SDK:
- 首先确保 Podfile 中 mPaaS 组件的版本号为 10.1.60。
- 执行
pod mpaas update 10.1.60
。
如果提示命令报错,需通过 pod mpaas update --all
命令先更新插件,再重新执行。 - 执行
pod install
。
热修复库
若当前基线不是 10.1.60,则热修复库也必须升级至 10.1.60 版本。由于线上可用的热修复库是通过工单或技术支持专人提供的,您需要 提交工单 或联系 mPaaS 支持人员。
API 变更
mPaaS 组件在 10.1.32 及以上版本中添加了适配层,建议您在升级 SDK 后使用适配层的 API,具体可参考以下各组件文档中的旧版本升级注意事项:
说明:
- 需重点关注项目中 mPaaS 各组件的配置类的 category 和 info.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
在文档使用中是否遇到以下问题
更多建议
匿名提交