iPhone沙箱如何阻止其他沙盒应用程序中文件的可访问性?

时间:2013-12-13 00:53:47

标签: ios iphone objective-c sandbox

我在Objective c中创建了一个越狱应用程序,它以“/”路径开头枚举整个iPhone系统,并输出可使用isReadableFileAtPath可读的文件路径here。但是,运行在2个不同环境/Applications/var/mobile/Applications中具有相同代码的应用程序后,我意识到在输出中检索的文件路径是相同的。我在/Applications中的应用程序将能够检索任何文件路径,因为它不在沙盒文件夹中。但是/var/mobile/Applications中的相同应用程序能够读取从Appstore安装的另一个应用程序中的文件(我认为沙箱会阻止它)。

所以我的问题是沙盒以何种方式阻止文件的可访问性,因为使用isReadableFileAtPath根本不起作用。  我是否必须编写能够通过打开文件来检查文件是否可访问的内容(如此代码,如果内容为NULL,如果无法访问)?我真的希望有人能清除我的误解,因为我是IOS的新手

NSString* content = [NSString stringWithContentsOfFile:path
                                              encoding:NSUTF8StringEncoding
                                                 error:NULL];

1 个答案:

答案 0 :(得分:0)

沙箱不会阻止应用打开某些类型的文件。它只允许应用程序从有限数量的目录(应用程序的“沙盒”目录)中读取和写入文件。文件系统不会授予应用程序对整个“磁盘”的完全访问权限。越狱手机打破了这一限制。