在越狱的iPhone上写文件到“/ var / mydir / files”时为什么会出现“Cocoa error 513”?
我的应用程序将一些文件写入文件系统,它被安装在/应用程序中而不是在/ var / mobile / Application中,在我开发的iPhone上,每一件事情都是正确的。但是当分发给别人时,他们得到了“Cocoa error 513”。文件写在/ var / mydir / files,那是什么问题? 哪里是我完全许可的地方? 谢谢。
码:
NSString *dir = @"/var/mydir/docs/"; NSFileManager *fileManager = [NSFileManager defaultManager]; if(![fileManager fileExistsAtPath:dir]) { NSError *error = nil; BOOL createdDir = [fileManager createDirectoryAtPath:dir withIntermediateDirectories:YES attributes:nil error:&error]; if (!createdDir) { UIAlertView *errorAlertView = [[UIAlertView alloc] initWithTitle:@"Attention" message:[error localizedDescription] delegate:nil cancelButtonTitle:@"OK" otherButtonTitles:nil]; [errorAlertView show]; } }
错误:
The operation couldn't be completed. (Cocoa error 513).
正如@cahn所说,你的应用程序由于权限问题而被拒绝。 即使安装在/Applications/
,应用程序通常以用户mobile
运行。 从这个login会话中可以看到:
$ ssh mobile@iphone5 mobile@iphone5's password: iPhone5:~ mobile$ cd /var iPhone5:/var mobile$ mkdir mydir mkdir: cannot create directory `mydir': Permission denied
移动用户直接在/var/
下没有写权限。
如果你看看这个关于在bigboss.org上构buildCydia应用程序的文档 ,你会发现他们build议越狱应用程序在/var/mobile/Library/YOURAPPNAME
创build文档目录:
1)Appstore应用程序在/ var / mobile / Applications / GUID /文件夹的沙箱中运行。 越狱应用程序运行在/应用程序
2)Appstore应用程序具有由安装过程创build的“文档”文件夹。 越狱应用程序不。 这是由应用程序创build自己的文件夹。 如果您需要这种types的文件夹,则必须在applicationDidFinishLaunching函数中使用简单的mkdir命令来创build此文件夹。 只需添加一个简单的函数:
mkdir(“/var/mobile/Library/YOURAPPNAME”, 0755);
如果文件夹已经存在,没有任何伤害。 您希望这样做,因为安装过程以root用户身份运行,应用程序以用户移动方式运行。 如果Cydia为你做这个,那么这个文件夹会有不正确的权限。
cocoa错误513是NSFileWriteNoPermissionError
。 你可以在Foundation Constants Reference中find它。 也许你没有/var
写入权限。
- CLLocationmanager setAuthorizationStatus不起作用(越狱)
- 从iOS应用程序截图 – 模拟显示logging(在内部查询)
- 在iphone中启动其他没有URL架构的应用程序?
- 使用私有框架以编程方式发送iMessage
- Xcode 7.3 – iOS 9.1 – 越狱 – 请检查您的设置,然后再试一次。 (0xE8000022)
- 来自Cydia的应用程序的Settings.bundle&keychain不起作用
- 在iPhone OS 4.0中以编程方式获取自己的电话号码
- 如何检测“LocallAPStore” – 新的iapcookies
- 如何在越狱的iOS设备上访问沙箱外的文件系统?