ios从我的应用程序中启动appstore导致我的应用程序终止

时间:2012-11-29 15:30:53

标签: objective-c ios app-store

我正在尝试将我的应用程序的用户带到AppStore以获得几个不同的功能 - 例如升级到完整版,评分/评论或只是查看我开发的另一个应用程序。但是,所有这些都导致我的应用程序在设备上启动iTunes时终止。我正在使用一些简单的代码和 尝试了很多URL组合,所有这些组合都能成功地到达目的地。以下是行为:

  • 用户点击率应用
  • 代码通过以下方式将其引导至网络:

    [[UIApplication sharedApplication] openURL:
    [NSURL URLWithString:[[MyApp defaultApp] itunesLink]]];
    
  • 我的应用程序转到后台,我的委托的applicationDidEnterBackground被成功调用

  • 随着iTunes的推出,我的应用程序终止了。无论是通过X-Code还是直接在设备上运行都会发生。
  • 当我退出商店并查看设备上正在运行的进程时,我的应用程序仍会显示在那里。我知道它已经从X-Code控制台终止了,当我尝试重新启动它时它开始新鲜。

我已尝试将itunesLink作为itms://itunes.apple.com/app/或使用http - 所有这些都达到了正确的终点。如果我使用www.google.com它工作正常,我的应用程序没有终止,只是发送到后台,网站显示确定。

其他一点是,当我通过模拟器运行时,openURL调用返回失败并且不会打开任何URL。

有关为什么我的应用程序将终止的任何见解?它的行为类似于iOS安全功能或关闭我的应用程序的东西,但我认为我所做的是相当标准的东西。

如果有人见过类似的话,我真的很感激有关情况的建议。

1 个答案:

答案 0 :(得分:1)

您的应用可能因多种原因而被终止。最好的方法是使用Xcode的管理器查看设备控制台:

enter image description here

您的应用可能会因内存不足通知而被终止。一旦它移动到后台并且应用程序商店启动(iTunes和应用程序商店都使用大量内存),它就可以被杀死以释放内存。在这种情况下,您将设置来自“jetsam”的消息,如下所示:

<Notice>: jetsam: kernel termination snapshot being created
<Warning>: Application 'UIKitApplication:com.yourapp[0x6337]' exited abnormally with signal 9: Killed: 9

您应该使用Instruments中的Activity Monitor来查看您的应用程序使用了多少内存。 iOS将首先终止大多数内存密集型应用程序,因此您应该尝试减少应用程序的内存占用。