ios8.1.2越狱 无法列表系统文件目录

目的:根据系统路径得到手机中安装的app应用列表
NSString *basePath = @"/private/var/mobile/Containers/Bundle/Application/"; //ios8的文件系统路径变了,我已经改了
NSArray *apps = [NSFileManager defaultManager] contentsOfDirectoryAtPath:basePath error:NULL];
打印出apps为null
测试ios6和7都可以得到apps的值 但是ios8.1.2就是得不到,请问为什么啊?

注:手机越狱以后用iFile可以打开/private/var/mobile/Containers/Bundle/Application/这个目录

解决方法:
是由于sandbox机制,不能访问其他app
我把app放到了/Applications/目录下面,然后执行文件的文件属性group的权限改成了wheel
access permission 都加上了execute 就能得到我想要的输出信息了

你的代码运行在哪个进程里?

写在了ViewController.m的-(void)viewDidLoad方法里面了
只有这几行代码。
得到的apps是null。用这几行代码测试ios8以下的都没问题

@interface ViewController ()

@end

@implementation ViewController

  • (void)viewDidLoad {

    [self filelist];
    [super viewDidLoad];

    // Do any additional setup after loading the view, typically from a nib.
    }

  • (void)didReceiveMemoryWarning {
    [super didReceiveMemoryWarning];
    // Dispose of any resources that can be recreated.
    }
    -(void)filelist{
    NSString *basePath = @"/private/var/mobile/Containers/Bundle/Application/";
    NSArray *apps = [NSFileManager defaultManager] contentsOfDirectoryAtPath:basePath error:NULL];

    NSLog(@“apps = %@”,apps);
    if ([apps count] == 0) {
    NSLog(@“APP COUNT = 0”);
    return ;
    }

}
@end

哪个

不好意思,想成线程了。。
下面用ps命令得到的
PID TTY TIME CMD
1862 ?? 0:00.36 /var/mobile/Containers/Bundle/Application/6F687B69-85C

这个目录下的App都是被沙盒严格限制的,当然读不到其他App的信息了

唔~ 了解了 看来我还是没有对沙盒概念了解太透彻,以为越狱以后就没有沙盒概念了。。

我把app放到了/Applications/目录下面,然后执行文件的文件属性group的权限改成了wheel
access permission 都加上了execute 就能得到我想要的输出信息了
谢谢您了~!