我的意思是:我的应用程序需要读取沙箱区域之外的目录的内容,让我们说/ 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上出售的沙盒应用程序可以访问系统文件夹吗?所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)