ios - 如果没有 Xcode,应用程序无法在后台正常运行

标签 ios iphone objective-c xcode multitasking

我正在为 iPhone 构建一个事件分析器应用程序,我使用的是 iOS 7。为了执行这些操作,我使用 CMMotionManager 并访问加速度计数据。在此之后,我将数据写入数据库。我的应用程序也必须在后台工作,我在我的代码中使用了队列、GCD、 block 和其他类似的东西来正确地做到这一点。问题是,当 iPhone 插入 Xcode 时,所有这些都正常工作,但如果我在没有 Xcode 的情况下运行应用程序,应用程序运行大约 4 或 5 分钟。之后,它被终止。这是什么原因?

最佳答案

iOS 应用程序只能在后台运行,如果它们适合苹果定义的后台模式之一,例如“应用程序注册位置更新”、“应用程序提供 IP 语音服务”、“应用程序播放音频”、“应用程序处理报刊亭”套件下载”,“应用程序使用 CoreBluetooth 进行通信”,应用程序使用 CoreBluetooth 共享数据”等等。您将在项目的功能部分的 xcode 中找到所有背景模式(单击左上角的项目名称->主窗口->第二个选项卡)。

如果您的应用适合这些模式之一,您必须通过在功能部分设置复选框来在您的 app.plist 中启用它。

如果您的应用不适合这些模式中的任何一种,您只能在后台运行有限的时间,然后 iOS 会停止所有事件。

为了测试,您可以启动任何后台模式。但是当你的应用程序被审查通过应用程序商店部署时,如果你使用未经授权的后台模式,苹果将拒绝该应用程序。

关于ios - 如果没有 Xcode,应用程序无法在后台正常运行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20446123/

相关文章:

ios - 如何在 iPad 上创建 TIFF

ios - xCode 在应用内 map 服务上显示应用用户

ios - UITableViewControllers 上的 prepareforSegue 方法

ios - 在 ViewController 之间推送数据不起作用

android - Cordova /Phonegap : run FileTransfer plugin in background thread

iphone - 使用 MFMailComposeViewController iphone sdk 将用户的邮件添加到密件抄送

iphone - 如何在 UIWebView 的长按手势上创建点击事件?

iphone - itunesconnect iPhone 应用程序状态 - 无效的二进制文件

ios - 如何让 iOS 应用程序与 Mac 服务器应用程序通信?

objective-c - 你如何在 Xcode 之外编译和运行 objective-c 文件?