macos – Mac App Store上出售的沙盒应用程序可以访问系统文件夹吗?

macos – Mac App Store上出售的沙盒应用程序可以访问系统文件夹吗?,第1张

概述通过Mac App Store销售的应用程序是否可以访问系统文件夹? 我的意思是:我的应用程序需要读取沙箱区域之外的目录的内容,让我们说/ Library / StartupItems,如果用户需要,可能会删除那里的文件. 沙盒应用程序是否可以访问系统文件夹并删除其中的文件?如果无法删除,至少可以读取吗? 如果我想在Mac App Store上销售,是否必须启用沙箱? 我已经随机尝试了一个目录: 通过Mac App Store销售的应用程序是否可以访问系统文件夹?

我的意思是:我的应用程序需要读取沙箱区域之外的目录的内容,让我们说/ library / StartupItems,如果用户需要,可能会删除那里的文件.

沙盒应用程序是否可以访问系统文件夹并删除其中的文件?如果无法删除,至少可以读取吗?

如果我想在Mac App Store上销售,是否必须启用沙箱?

我已经随机尝试了一个目录:

Nsstring *path = @"/library/StartupItems";  NSArray *dirfiles = [[NSfileManager defaultManager] contentsOfDirectoryAtPath:path error:nil];

我可以获得目录列表.如果应用程序标记为沙盒,我该如何阅读?我不明白.

解决方法 不,通过Mac App Store销售的OS X应用程序无法以您描述的方式访问资源.还要求所有应用程序都使用有效的Mac开发人员计划证书进行沙盒化和编码.

至于当你的应用被标记为“沙盒”时,能够读取/ library / StartupItems(已弃用);这不仅仅是检查选项的问题.您还必须确保选中“使用权利文件”,并且应用程序已正确编码.完成后,您可以使用以下命令检查以确认它是否在Terminal中正确沙盒化:

codesign -dvvv --enTitlements :- Some.app/Contents/MacOS/Executable

此外,某些目录中可以读取“世界可读”的文件:

/bin/sbin/usr/bin/usr/lib/usr/sbin/usr/share/System

为了允许OS X应用程序与您的(早期)示例一样与文件系统进行交互,应用程序需要使用提升权限,通常使用授权服务 – App SandBox不允许这样做.看看标题为“Determine Whether Your App Is Suitable for Sandboxing”的部分,它应该回答您可能遇到的任何其他问题.

沙盒在很多方面都很好,但同时也非常严格.如果您的应用需要执行的 *** 作不在允许的范围内,您可以选择不通过Mac App Store进行销售而不使用沙盒.一些开发人员还创建了两个不同版本的应用程序(Mac App Store版本和非Mac App Store).如果您的应用程序依赖于外出它的容器,您肯定要考虑/权衡沙盒的优缺点.

> App Sandbox Guide
> File System Programming Guide
> Authorization Services C Reference

总结

以上是内存溢出为你收集整理的macos – Mac App Store上出售的沙盒应用程序可以访问系统文件夹吗?全部内容,希望文章能够帮你解决macos – Mac App Store上出售的沙盒应用程序可以访问系统文件夹吗?所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/1013511.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-22
下一篇 2022-05-22

发表评论

登录后才能评论

评论列表(0条)

保存