无法在iOS 6启动调试IPA,它完美地运行在iOS 5
问题描述:
在控制台中,我有这样的信息:无法在iOS 6启动调试IPA,它完美地运行在iOS 5
backboardd [51]:BKSendGSEvent ERROR发送事件类型23: (IPC /发送)超时(0x10000004)
然后它崩溃。崩溃报告:
Hardware Model: iPad2,1
Process: abc [3243]
Path: /var/mobile/Applications/...
Identifier: abc
Version: ??? (???)
Code Type: ARM (Native)
Parent Process: launchd [1]
Date/Time: 2012-10-...
OS Version: iOS 6.0 (10A403)
Report Version: 104
Exception Type: 00000020
Exception Codes: 0x000000008badf00d
Highlighted Thread: 0
Application Specific Information:
com.abc failed to launch in time
Elapsed total CPU time (seconds): 20.910 (user 20.910, system 0.000), 52% CPU
Elapsed application CPU time (seconds): 19.898, 50% CPU
发行版本工作正常两者的iOS 5和6
答
最可能的原因是您的应用程序初始设置需要很长时间才能完成。尝试修改您的应用程序:didFinishLaunching方法来执行更少的任务。
新的iOS6有一个内置的定时器,如果启动时间太长,它会关闭应用程序。
答
您的应用程序正在长开始,然后通过iOS的杀害。
检查- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
是否会立即返回。
可能在didFinishLaunchingWithOptions:
中有一些东西在iOS 6上有所不同,并且需要更多时间。一个好主意是派遣那个任务。
答
只是试图将application:didFinishLaunchingWithOptions:
方法代码划分到不同的函数调用和使用线程其他则主要使背景这些电话,并确保application:didFinishLaunchingWithOptions:
方法尽快
返回您可以使用
dispatch_async(dispatch_get_main_queue(), ^{
//put your code
}
谢谢,把这个放入didFinishLaunchingWithOptions和applicationDidFinishLaunching解决了崩溃问题。但是,它仍然无法启动,并且收到超时错误。 (CoreAnimation和BKSendGSEvent。) – iOSdev
当我从XCode运行它时,它会很好。但是,当我使用归档工具制作IPA时,或者只需将.app文件拖放到iTunes时,它就会冻结。 (至少不会崩溃了。) – iOSdev
然后你可以尝试使新线程伊娃和使用该线程,而不是dispatch_get_main_queue() –