根据Mac App Store Review Guidelines:
2.4.5通过Mac App Store分发的应用还需要记住一些其他要求:
(i)必须将它们适当地沙箱化,并遵循macOS文件系统文档。他们还应该仅使用适当的macOS API来修改其他应用存储的用户数据(例如书签,地址簿或日历条目)。
...
(iv)他们可能不会下载或安装独立的应用程序,kexts,其他代码或资源,以添加功能或与我们在审阅过程中看到的内容大为不同。
(v)他们可能不请求升级为root特权或使用setuid属性。
沙箱操作已经无法使用诸如AuthorizationCreate()
之类的API,无论如何,第(v)项非常清楚。
在某些情况下,例如Parallels(MAS link)之类的应用程序一定无法在不诉诸特权提升的情况下进行编码。确实,常规(非MAS)Parallels应用程序会安装至少3个kext,其中之一是虚拟机管理程序,否则我相信Parallels绝对没有用。因此,他们显然违反了这些规则。
如果开发人员希望编写一个像Parallels这样的应用程序,该应用程序需要特权升级并且没有特权就完全没有用,那么开发者将如何绕过这些限制?还是仅仅是足够大的问题而使苹果公司在审查过程中对此视而不见?您可以要求苹果公司例外吗?
答案 0 :(得分:0)
(不幸的是)对App Store政策问题没有评论,但我可以回答您有关Parallels的问题。 Mac App Store上的Parallels版本不不使用kext,也不需要使用kext。 Hypervisor framework使得可以编写类似Parallels的应用程序而无需root特权,也无需编写和分发自定义的kext(需要Apple的单独批准)。 Hypervisor框架也可以从沙盒应用程序中使用。我相信此框架是专门为解决此问题而创建的。希望这会有所帮助!