1

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

  • 用户点击评分应用
  • 代码通过以下方式将他们定向到网络:

    [[UIApplication sharedApplication] openURL:
    [NSURL URLWithString:[[MyApp defaultApp] itunesLink]]];
    
  • 我的App进入后台,成功调用了我的delegate的applicationDidEnterBackground

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

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

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

关于我的应用程序为什么会终止的任何见解?它就像一个 iOS 安全功能或关闭我的应用程序的东西,但我认为我所做的是非常标准的东西。

如果有人看到过类似的情况,我非常感谢您对这种情况提出建议。

4

1 回答 1

1

您的应用程序可能因多种原因而终止。最好的办法是使用 Xcode 的 Organizer 查看设备控制台:

在此处输入图像描述

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

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

您应该使用 Instruments 中的活动监视器来查看您的应用程序正在使用多少内存。iOS 将首先终止最占用内存的应用程序,因此您应该尝试减少应用程序的内存占用。

于 2012-11-29T15:48:33.243 回答