背景
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/组件
热修复库
若当前基线不是 10.1.60,则热修复库也必须升级至 10.1.60 版本。由于线上可用的热修复库是通过技术支持专人提供的,您需要加入钉钉答疑群 41708565 联系 mPaaS 支持人员。
API 变更
mPaaS 组件在 10.1.32 及以上版本中添加了适配层,建议您在升级 SDK 后使用适配层的 API,具体可参考以下各组件文档中的旧版本升级注意事项:
需重点关注项目中 mPaaS 各组件的配置类的 category 和 info.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