iOS 13 已于 2019 年 9 月 19 日正式发布,在对 iOS 13 的测试中发现系统的部分行为发生了变化,因此 App 需要对其进行适配,否则可能会出现功能异常、Crash 等问题。 |
背景
iOS 13 已于 2019 年 9 月 19 日正式发布,在对 iOS 13 的测试中发现系统的部分行为发生了变化,因此 App 需要对其进行适配,否则可能会出现功能异常、Crash 等问题。
在 mPaaS 对 iOS 13适配之前,在 iOS 13 设备上由 Xcode 10 构建的 mPaaS SDK 受到的影响主要是:由于 iOS 13 优化 App 启动,修改了镜像的加载机制,导致系统 category 可能会覆盖 SDK 中定义的 category 方法,进而导致自定义的方法无法返回预期结果。
现状
mPaaS 作为基础库,目前已经完成了 Xcode 10 构建下的 iOS 13 的适配工作。由于 mPaaS 当前仅在 Xcode 10 打包下进行了适配,所以 务必使用 Xcode 10 打包 提交 App Store。Xcode 11 的相关工具链尚未完善,随着工具链的完善,mPaaS 会推出 Xcode 11 构建下的 iOS 13 适配版本。
升级 SDK/组件
基于插件升级
使用 mPaaS Xcode 插件升级 SDK/组件,您可以选择以下两种方式:
mPaaS 模块升级
mPaaS 基线升级
您需要根据自身情况选择升级方式。如果您:
已经使用插件管理组件依赖,且当前使用的 SDK 版本为 10.1.32。可使用 mPaaS 模块升级 功能升级所使用到的模块。
未使用插件管理组件依赖。可按照以下步骤进行升级:
安装插件。
使用 mPaaS 模块编辑 功能选择您所需的模块。
使用 mPaaS 模块升级 功能升级至 10.1.32 版本。
项目当前基线版本可以在插件的 mPaaS 基线升级 中查看,具体操作步骤参见 mPaaS 插件使用说明 。
基于 CocoaPods 升级
按照以下步骤,即可安装 10.1.32 版本的最新 SDK:
首先确保 Podfile 中 mPaaS 组件的版本号为 10.1.32。
执行
pod mpaas update 10.1.32
。 如果提示命令报错,需通过pod mpaas update --all
命令先更新插件,再重新执行。执行
pod install
。
热修复库
若当前基线不是 10.1.32,则热修复库也必须升级至 10.1.32 版本。由于线上可用的热修复库是通过技术支持专人提供的,您需要加入钉钉答疑群 41708565 联系 mPaaS 支持人员。
API 变更
mPaaS 组件在 10.1.32 版本中添加了适配层,建议您在升级 SDK 后使用适配层的 API,具体可参考以下各组件文档中的旧版本升级注意事项:
需重点关注项目中 mPaaS 各组件的配置类的 category 和 info.plist 中的配置发生的变化。
强烈建议您修改代码,使用中间层(适配器)方法而非直接使用底层方法。因为某些底层方法可能会在将来的版本中发生变更或废弃,如果您继续使用,在将来的更新中可能需要花费更多的时间进行适配。
定制库处理
10.1.32 版本各组件合入了定制化的需求,但是为了稳妥起见,如果此前您的依赖中包含定制库,则需要按以下情况处理:
如果您是从低版本 SDK 升级至 10.1.32 版本,您的定制库可能需要基于新版本重新定制,请您需要加入钉钉答疑群 41708565 联系 mPaaS 支持人员确认。
如果您已使用 10.1.32 版本,则只需更新部分组件。参见下文的 适配 iOS 13 更新的库清单,检查您的定制库是否包含在其中。
如果不包含,您可继续使用该定制库。
如果包含,您的定制库可能需要重新定制,请您需要加入钉钉答疑群 41708565 联系 mPaaS 支持人员。
适配 iOS 13 更新的库清单
mPaaS
MPDataCenter
APMultimedia
BEEAudioUtil
BeeCapture
BeeCityPicker
BeeMediaPlayer
BeePhotoBrowser
BeePhotoPicker
NebulaAppBiz
NebulaBiz
NebulaSDKPlugins
APConfig
AntUI
NebulaSDK
TinyAppCommon
MPPromotion