是否可以在iOS上运行后台应用程序

时间:2013-06-05 21:16:09

标签: ios objective-c iphone-privateapi

这是一个奇怪的问题,我需要创建一个在iOS设备上在后台运行的iOS应用程序,但在设备的主屏幕上无法显示。该应用可能需要显示在设置中以配置一些选项,但它主要需要在幕后运行。

我不需要在应用商店发布此应用,它严格来说是我公司的企业应用。

有谁知道如何实现这种行为?配置文件? API' S?等?

编辑:越狱设备对我们来说不是一个真正的选择。我们必须保持设备不变。

5 个答案:

答案 0 :(得分:4)

<强> Backgrounding

有几种方法可以永久执行背景:

a)JRG-Developer提到的无声音频

b)使用beginBackgroundTaskWithExpirationHandler +打开/关闭位置管理器(它会将剩余时间重置为600秒)

让app隐身

您可以在Info.plist中使用SBAppTags(请看一下:How to remove app icon programatically from jail broken iPhone app?

它会使您的图标在主屏幕上不可见。

答案 1 :(得分:3)

我不知道如何处理not be visible on the home screen条件,但 某些服务可以在后台持续运行,特别是:

  • 背景音频(甚至无声音频)

虽然这确实非常hacky,但没有越狱设备,这可能是你最好的选择。

虽然不太可能/非常难以通过审核流程,但由于某种原因您需要(尝试)将此应用程序发布到App Store,甚至可以在App Store上使用某些应用程序这个hack,例如PasteBot

你一定要在这里阅读他们的文章,了解如何让他们的应用程序的剪切和粘贴功能在后台工作:

http://tapbots.com/blog/pastebot/pastebot-music-in-background

另一个开箱即用的想法,为什么不使用Android设备,哪些支持多任务处理?

答案 2 :(得分:2)

两种方法:

  1. 越狱。越狱的iPhone本质上是一台Mac,你可以使用所有的Mac UNIX编程技巧 - 产生一个守护进程(你甚至可以让launchd这样做),或者什么。你可以设置enteprise-wise Cydia源码。请参考saurik的网站进行演练并使用Ubuntu设置实验服务器(也使用apt)

  2. 可能会采用非越狱方式,但这取决于您的应用正在做什么。您可以尝试使用企业级推送通知。

答案 3 :(得分:1)

鉴于在非越狱手机上无法做到这一点,我建议如下:

  • 开发一个目录应用程序或电话列表应用程序,这是特定于贵公司的东西。

  • 让它每天连接一次网络服务以注册设备ID(因此您知道用户尚未删除该应用)

  • 告诉用户他们需要始终保持应用程序处于打开状态(如果用户的设备有一天没有注册,请向他们发送一封电子邮件,要求他们启动该应用程序。)

现在您可以使用该应用程序发回任何您想要的内容。如果他们杀了它,你会知道第二天你有一个脚本查看日志。

如果您认为这是一个糟糕的想法,那就是,但它是您现在最好的iOS版本。

编辑:您可以每天发送通知 - 例如在AM中 - 以确保用户在未运行的情况下打开该应用。

答案 4 :(得分:-2)

从我的经验来看,这种行为无法在iOS上实现。当应用程序进入后台时,它仅在很短的特定时间内处于活动状态。在那之后,它进入了hybernate状态。它停止工作。因此,如果不滥用iOS工作流程,就无法实现您所说的行为。这就是为什么有些人称iOS的多任务处理不是真正的多任务处理。只有越狱可能有助于你的情况。那是一个案例。在主屏幕上无法看到app的第二个也是不可能的。它必须在跳板上运行。