2013-04-09 69 views
5

我正在写一个机构的(iOS应用)来检测设备是否通过检查通过做fork();应用程序沙箱的完整性越狱。有谁知道尝试这个调用是否会违反App Store指南?iOS应用程序中的fork()可能会被Apple的审查流程拒绝吗?

+0

它已经一段时间,因为你已经问过这个在AppStore上的应用程序。你是否可以用'fork()'将应用程序加入商店?我很好奇。 – mpontillo 2015-01-26 23:36:10

+0

我也想知道 - 我有一个应用程序,它是Unix cmdline实用程序的一个包装器,如果我能'fork()'然后调用该实用程序的main()'函数而不是在一个线程中运行它[该实用程序有很多地方可以调用'exit()',所以分支进程会比线程更好] – Alnitak 2016-03-30 11:45:22

回答

4

不能在非越狱的设备上的iOS应用程序创建新的进程(你会得到一个错误,如“不允许操作”),但可以使用并行线程库中创建新的线程。

编辑:但是,如果您试图检测设备是否越狱,我认为这不会违反商店准则只是为了“尝试”做一个分支,但这更像是一个法律问题而不是技术题。

我什么也没找到在禁止使用调用一些低级API的应用程序商店的指导方针。这是合乎逻辑的,因为越狱不存在,他们会怎样禁止你做一些你无法做到的事情?

我发现的最接近的东西是:

  • 应用程序读取或写入其指定的容器区域之外的数据将被拒绝
  • 应用程式下载的代码以任何方式或形式将被拒绝
  • 应用安装或启动其他可执行代码将被拒绝
+2

如果调用fork(),实际上只会得到一个返回码'-1' )'在一个普通的iOS设备上。 (也许像'星期二4月9日3时06分41秒未知sandboxd [84] :HelloWorld的(80)拒绝在您的记录过程fork')的OP肯定是希望把这个简单地看看它是否工作。 – Nate 2013-04-09 10:09:22

+0

是的,我起初误解了这个问题,所以我编辑了我的回复。 – zakinster 2013-04-09 10:12:56

+0

@Nate感谢编辑 – Ocelot 2013-04-09 17:20:40

0

fork(2)可能会使您被拒绝。如果您的目的是检查设备是否越狱,您可以检查APT的存在。

从我的经验,试图检查一个文件夹存在于/private/{etc,var}/apt(APT的配置和缓存目录,通过Cydia的工作必需的,但在香草iOS设备不存在)使用NSFileManager不会被拒绝存在的应用程序。

+0

这个问题并没有要求替代解决方案。 – Ocelot 2014-05-21 23:58:50

5

fork()的(等)不会让你拒绝;在提交时无法复制被vanilla os拒绝的操作。 我有使用fork()和()调用来检查越狱环境,他们没有得到拒绝了这个:)