Swift3 - 调试时后台获取崩溃

Posted

技术标签:

【中文标题】Swift3 - 调试时后台获取崩溃【英文标题】:Swift3 - Background Fetch Crash on Debug 【发布时间】:2016-10-20 20:01:05 【问题描述】:
func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplicationLaunchOptionsKey: Any]?) -> Bool 
    print(UIApplicationBackgroundFetchIntervalMinimum)
    UIApplication.shared.setMinimumBackgroundFetchInterval(UIApplicationBackgroundFetchIntervalMinimum)
    return true


func application(_ application: UIApplication, performFetchWithCompletionHandler completionHandler: @escaping (UIBackgroundFetchResult) -> Void) 
    completionHandler(.newData)

这是我的代码,当我在 XCode 中调试 > 模拟后台获取我的应用程序崩溃时,没有任何原因。我在功能>后台模式>后台获取...有什么想法吗?

它只在模拟器中的 iPhone 上崩溃我没有问题。

【问题讨论】:

你的应用在哪一行崩溃了? 检查我的答案 blog.newrelic.com/2016/01/13/ios9-background-execution @MuhammadNoman Swift 3 在 iOS 10 XCode 8 上 不管你用的是 swift 3 ,还是从这里拿个概念不要跟 【参考方案1】:

根据您的上述描述,我在我的项目中尝试过,但效果很好,performFetchWithCompletionHandler 也在后台工作。

首先我尝试不添加此属性,但未调用 performFetchWithCompletionHandler。所以,尝试在 info.plist 文件中添加这个

 <key>UIBackgroundModes</key>
    <array>
        <string>fetch</string>
    </array>

它会解决我的问题

【讨论】:

不,我收到libsystem_kernel.dylibmach_msg_trap: 0x182d38164 : movn x16, #0x1e 0x182d38168 : svc #0x80 -> 0x182d3816c : ret ` @BogdanBogdanov 你愿意和我分享你的项目吗?所以我可以理解,如果你不介意 Jecky 它可以在模拟器上运行,但在我的 iPhone 上崩溃了 在 Xcode 8.2.1 中,您必须点击“继续执行程序”(调试区域中的播放按钮)

以上是关于Swift3 - 调试时后台获取崩溃的主要内容,如果未能解决你的问题,请参考以下文章

切换后台任务时SIGPIPE崩溃

是啥导致应用程序在后台长时间运行后在恢复时崩溃?

0x8badf00d 在后台获取监听位置后崩溃

后台线程崩溃

未连接到 xcode 调试模式时,iOS7 后台获取 performFetchWithCompletionHandler 在设备上不起作用

iOS核心数据在后台获取导致崩溃