App 不能启动错误:“failed to launch in time”

App不能启动。设备日志输出:

MyApp failed to launch in time

Elapsed total CPU time (seconds): 13.700 (user 8.580, system 5.120), 67% CPU  Elapsed application CPU time(seconds): 6.180, 30% CPU

 

同时:

1、该App在模拟器中不会出现此问题。

2、在Debug模式(连接设备)也不会出现此问题,App能正常启动。

3、App 商店不会拒绝App的提交。当然,很可能苹果测试人员使用的设备要比你的快。

4、如果用户使用一些老设备,如3GS,则会出现此问题。

……

 

凡此种种,都表明,你在didFinishLaunchingWithOptions方法中加入了太多的代码。

这是因为,如果App主线程的启动时间过长,iOS会强制终止App运行。

 

解决的办法很简单,将didFinishLaunchingWithOptions方法中比较“费时”的代码(比如openURL其实是一个很费时的操作)放到后台线程中进行:

dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT,0),  { () -> Void in

if true== UIApplication.sharedApplication().canOpenURL(NSURL(string: "xxx://")!){

    UIApplication.sharedApplication().openURL(NSURL(string:"xxx://")!)

}

})

 

郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。