iPhone应用程序可以在启动时启动吗?

现在我已经回答了两个不同的问题 ,都解释了VOIP应用程序如何在启动时启动,但人们似乎认为它们的确如此。

我不是100%肯定自己,有人把我链接到苹果文档的一部分 ,这并没有提到有关自动启动应用程序的任何内容。

我原本是在先前的知识和这个答案 ,但是一个人说他们这样做,我真的不知道。

据我所知,应用程序只对推送通知作出反应,并且在设备打开时不能启动到后台。

我们可以澄清是否可以自动启动应用程序?

看看这个文档中的UIBackgroundModes部分 – 似乎表示添加voip在启动时自动启动应用程序。

编辑: 示例应用程序似乎证实了这种行为。

我确认设置VOIP模式工作。 不过,我发现应用程序在上电后不会重新启动,除非它在设备断电时运行。 此外,应用程序将不会真正重新启动最近加电的设备,直到设备上电后解锁。

好吧,我不知道这个分类是不是答案,但我觉得有义务说。 我正在开发一个应用程序,它跟踪重大的位置变化,并提供VoIPfunction。 该应用程序在所需的背景模式下具有voip密钥。 我尝试了一些我想分享结果的案例:

  • 应用程序处于debugging模式 – 在应用程序运行时(主动或后台)closures – iOS 7.1.1(11D201)和iPhone 4(产品名称:iPhone3,2):

启动时,应用程序在后台运行,以及之前运行的其他应用程序。 我不认为这与VoIP有任何关系。

  • 应用程序处于debugging模式 – 应用程序终止时closures – iOS 7.1.1(11D201)和iPhone 4(产品名称:iPhone3,2):

当启动时,应用程序没有运行,configuration工具没有日志,服务器说用户没有注册我不能从其他设备调用它; 而其他与voip或位置跟踪无关的应用程序,但在closures之前打开的应用程序至less已加载到内存中。 意思是, voip键不起作用。

我已经继续使用相同的应用程序的testing,但这次从应用程序商店下载。 结果是一样的。 将设备和操作系统更改为iPhone 3G(产品名称:iPhone2,1)和iOS 6.1.6(10B500)。 在debugging和发布模式中都没有改变。

我告诉我的老板,苹果提供了这种行为,可以做到。 然后我有了第二个念头,试了一下,现在我拼命想找另外一个方法。 将这件事寄给苹果公司。

没有用户交互,您将无法启动应用程序。 用户必须点击自定义链接上的推送通知上的应用程序图标。 可能还有其他的方式,我不知道,但即使他们存在,他们需要用户互动故意启动应用程序。

编辑

事实certificate,正如蒂姆所说,VOIP应用程序可能有一个例外。

重要的位置更改或区域监视也会导致应用程序在启动时启动,只要其打开并保持开启状态即可。 没有UIBackgroundModes键是必要的。

我一直在开发VoIP应用程序,我可以确认VoIP应用程序将自动启动,当iPhone重新启动,只要用户不会在重新启动之前杀死它。 当iOS自动启动voip应用程序只application:didFinishLaunchingWithOptions:将运行,即applicationDidBecomeActive:将不会运行。

我曾经怀疑iOS是否会在崩溃时自动重新启动voip应用程序。 经过调查,我发现iOS会自动重新启动voip应用程序,但如果不断崩溃,iOS会在最终放弃之前尝试使用ser time声。

如果您检查xcode的iPhone控制台输出,您可以在第一次崩溃后看到类似这样的日志

 .. Service exited due to signal: Abort trap: xxx Unable to get short BSD proc info for xxxx: No such process Application 'UIKitApplication:xxxxx]' crashed. ...