iOS 13 废弃 performFetchWithCompletionHandler 方法
前言
我们的数据运营同学反馈说被动启动的量从xxx版本开始减少了。我第一反应是这个期间新系统 iOS 13。然后让运营同学看了下版本号。不出所料,就是iOS 13 影响了“量”。
发生的原因 & 解决办法
被动启动的埋点,我们放在了 performFetchWithCompletionHandler 方法里:
然而官方文档上已明确该方法不再适用 iOS 13:
func application(_ application: UIApplication, performFetchWithCompletionHandler completionHandler: @escaping (UIBackgroundFetchResult) -> Void) {
GeTuiSdk.resume()
completionHandler(.newData)
TrackManager.track(event: .passiveLaunch, properties: ["push_status": pushStatus])
}
然而官方文档上已明确该方法不再适用 iOS 13:
并给了新的后台任务的方案:BGAppRefreshTask
该新方法的使用可以参考如下链接:
https://developer.apple.com/videos/play/wwdc2019/707/
https://medium.com/snowdog-labs/managing-background-tasks-with-new-task-scheduler-in-ios-13-aaabdac0d95b
虽然实现起来不是很麻烦,但是如何测试是个问题,在Xcode 上 配置 Fetch 数据已不能进行模拟测试,文档中给了私有命令执行后台任务。我还是有点没太搞明白~(我用命令测试,不是很好用。。。)
希望知道正确测试姿势的小伙伴,留言交流哈~
该新方法的使用可以参考如下链接:
https://developer.apple.com/videos/play/wwdc2019/707/
https://medium.com/snowdog-labs/managing-background-tasks-with-new-task-scheduler-in-ios-13-aaabdac0d95b
虽然实现起来不是很麻烦,但是如何测试是个问题,在Xcode 上 配置 Fetch 数据已不能进行模拟测试,文档中给了私有命令执行后台任务。我还是有点没太搞明白~(我用命令测试,不是很好用。。。)
希望知道正确测试姿势的小伙伴,留言交流哈~

评论
发表评论