Objective C - 终止在后台运行的所有其他应用程序

时间:2016-02-29 19:13:58

标签: ios objective-c iphone multithreading enterprise

我需要开发一个企业应用程序,它应该能够在非越狱 iOS设备上关闭当前通过多线程运行的所有其他应用程序。

几年前,我有一个名为PKiller or Process Killer的应用程序,它列出了所有当前正在运行的应用程序,包括它们的程序ID,并能够关闭它们。这是一个在AppStore官方发布的应用程序,但当然苹果公司因为违反了他们的指导方针而将其删除了。

有人知道如何获取当前正在运行的进程并将其关闭吗?

(再次,这个应用程序不会去Apple / AppStore,因为它是一个企业应用程序)

修改

我做了更深入的研究,发现你甚至无法在iOS 9中获得任何正在运行或安装的应用程序以及PID之类的连接信息。Apple made the sysctl no longer accessible to sandboxed iOS 9 apps.另外other methods为了获得任何第三个PID在iOS 9中都失败了。

2 个答案:

答案 0 :(得分:2)

我相信您不能这样做,因为Apple不允许您访问应用程序沙箱中的数据。

答案 1 :(得分:2)

过去有一种方法可以做到这一点,但从iOS 9开始,它将不再有效。沙盒iOS 9应用程序不再可以访问用于此的库,sysctl。

  

在iOS 9中,沙箱现在阻止进程访问   其他的kern.proc,kern.procargs和kern.procargs2值   过程

  

不允许iOS应用查看正在运行的其他应用

https://developer.apple.com/videos/play/wwdc2015-703/

可能还有另一种方式,但它肯定不会像几年前那么容易,并且即使对于企业应用程序,Apple也不会没有做出重大努力。