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

是否可以在iOS上运行后台应用程序,ios,objective-c,iphone-privateapi,Ios,Objective C,Iphone Privateapi,这是一个奇怪的问题,我需要创建一个iOS应用程序,它在iOS设备的后台运行,但在设备的主屏幕上不可见。应用程序可能需要在设置中显示来配置一些选项,但它主要需要在后台运行 我不需要在app store上发布此应用,它严格地说是我公司的企业应用 有人知道这种行为是如何实现的吗?配置文件?空气污染指数?等等 编辑:越狱不是我们真正的选择。我们必须保持设备的原样。鉴于这在非越狱手机上是不可能做到的,我建议如下: 开发一个目录应用程序或电话列表应用程序,这是特定于您的公司的 让它每天连接一次web服务以

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

我不需要在app store上发布此应用,它严格地说是我公司的企业应用

有人知道这种行为是如何实现的吗?配置文件?空气污染指数?等等


编辑:越狱不是我们真正的选择。我们必须保持设备的原样。

鉴于这在非越狱手机上是不可能做到的,我建议如下:

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

  • 让它每天连接一次web服务以注册设备ID(这样你就知道用户没有删除该应用)

  • 告诉用户他们需要随时打开应用程序(如果用户的设备某一天没有注册,请向他们发送电子邮件,要求他们启动应用程序)

现在你可以通过应用发回你想要的任何东西。如果他们杀了它,你第二天就会知道当你有脚本的时候,看看日志

如果你认为这是一个糟糕的想法,那是的,但这是你现在在iOS上能得到的最好的


编辑:你可以每天发送一个通知(比如在AM中),以确保用户在应用程序未运行时打开应用程序。

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

两种方法:

  • 越狱。越狱的iPhone本质上是一个Mac,你可以使用所有Mac UNIX编程技巧——生成一个守护进程(你甚至可以要求launchd这样做),或者其他什么。您可以设置Enterprise wise Cydia source。请参考saurik的网站了解演练,并使用Ubuntu(也使用apt)设置一个实验服务器

  • 非越狱方式可能是可行的,但这取决于你的应用程序在做什么。您可以尝试使用企业级推送通知


  • 我不知道如何解决
    在主屏幕上不可见的问题
    标准,但允许在后台连续运行某些服务,特别是:

    • 背景音频(甚至无声音频)
    虽然这确实是非常黑客,除了越狱的设备,这可能是你最好的选择

    虽然不太可能/很难通过审查过程,但如果出于某种原因您确实需要(尝试)将此应用发布到应用商店,应用商店上甚至可以使用利用此黑客的一些应用,例如
    PasteBot

    你绝对应该阅读他们在这里写的关于让他们的应用程序的剪切粘贴功能在后台工作的文章:


    另一个开箱即用的想法是,为什么不使用支持多任务的Android设备呢

    有几种方法可以获得永久后台执行:

    a) JRG开发者提到的无声音频

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

    使应用程序不可见

    您可以在Info.plist中使用SBAppTags(请看以下内容:)


    这将使您的图标在主屏幕上不可见。

    我可能完全错了,但根据我的经验,这是无法做到的,因为当移动到后台时,应用程序处于空闲状态@凯文的方法可能是唯一的选择。@ldav也许你误解了这个问题。他在问如何获得一款不会出现在springboard(主屏幕)上的应用程序。@izuriel,破解everone的手机!祝你好运@凯文,应用程序是如何启动的?无论如何,答案中的HIG链接中可能有一些限制:不,你不能这么做。@ldav1可能是在启动时,就像后台守护程序一样。实际上,我认为这是可能的,不需要越狱(注意,他不需要AppStore的批准)。当然,我不能添加答案,因为这个问题是作为另一个问题的复本结束的,而这个问题显然提出了一些不同的问题。我认为在Info.plist中添加
    voip
    作为后台模式也会在手机启动时自动启动应用程序,不再需要应用程序图标。我在我的越狱手机上测试了这个,但我认为它应该也能在越狱设备上工作。问题指出它不需要AppStore的批准
    SBAppTags
    Info.plist中的值将隐藏图标(参见Victor的答案),而
    voip
    模式将自动启动应用程序。IMHO,“不可能”和“黑客”是两个不同的东西。。。我想作者知道这不是iOS的设计目的,也不是一个好主意。。。但是,嘿,这是StackOverflow,“不是一个好主意”的意思是“可以做到”(你真的不应该这么做):)