2012-01-17 73 views
1

我试图在应用程序委托中断点didFinishLaunchingWithOptions以捕获应用程序终止后报亭问题下载完成时正在启动的应用程序(在后台)。我相信这可能会发生,例如,如果用户手动请求下载,然后终止应用程序。在Xcode中检测后台应用程序以调试报亭应用程序

在Xcode方案编辑器中运行方案的信息选项卡上,有一个选项可以等待应用程序启动。它下面的评论说,它是用来当你想手动启动你的应用程序。虽然这不是我想要的,但我仍然尝试过,并不奇怪,它似乎没有做我想做的事。其他人有没有办法做到这一点?

+0

是不是[NKIssueDownloadCompletedNotification](http://developer.apple.com/library/ios/documentation/StoreKit/Reference/NKIssue_Class/NKIssue/NKIssue.html#//apple_ref/c/data/NKIssueDownloadCompletedNotification)是什么你需要?我不确定当应用程序在后台下载它时是否可以使用它?你怎么想? – DanSkeel 2012-09-25 14:11:17

+0

如果应用程序在下载完成时运行(或者在后台运行),那么这将起作用。我已经确定了两种情况,在下载完成之前应用程序可能已被终止(请参阅下面的注释)。我现在假设终止的应用程序将不会在下载完成时启动。 – 2012-09-29 12:57:58

回答

3

Wait for your.app to launch可用于延迟调试器的启动。它在模拟推送通知后测试报刊更新中非常有用。

你可以把一个断点的application:didFinishLaunchingWithOptions:然后触发推送通知,将模拟抵达

记住一个报刊亭的问题,如果你测试 - 你要确保你不油门报刊亭更新。在生产中,你每天只能得到1个,所以加上:

#ifdef DEBUG 
    // For debugging - allow multiple pushes per day 
    [[NSUserDefaults standardUserDefaults] setBool:YES forKey:@"NKDontThrottleNewsstandContentNotifications"]; 
    [[NSUserDefaults standardUserDefaults] synchronize]; 
#endif 

这是你在找什么?如果不是请详细说明。

+0

不可以。我想在下载完成时捕获应用程序启动。但是,我看不出为什么等待启动可用于通知(UIApplicationLaunchOptionsRemoteNotificationKey),但不适用于UIApplicationLaunchOptionsNewsstandDownloadsKey。尽管我已经给你提供了关于节流的提示+1。谢谢! – 2012-01-18 09:44:25

+0

你在期待什么?下载完成后,该应用程序不会启动。通过报摊,您的应用程序会收到报摊推送消息,如果它在后台醒来(但仍保留在后台) - 则下载问题,然后重新进入休眠状态。它不会成为前台应用程序。 UIApplicationLaunchOptionsNewsstandDownloadsKey用于下载目前正在进行中吗? – bandejapaisa 2012-01-18 11:59:25

+1

我可以想到两种情况:1用户启动以前购买,下载并存档的产品的下载;然后终止该应用程序。 2:推送通知启动后台下载,在此下载过程中,用户使用该应用程序,然后终止它。由于有一个UIApplicationLaunchOptionsNewsstandDownloadsKey用于启动应用程序,我认为它表示指定的资产已被下载并需要注意。如果不是,它是为了什么?正如你现在解释说,这不会发生,我会把它作为解决我的问题。 – 2012-01-18 13:33:45