我正在使用连接到 Google Chrome 应用程序的 THEOS 对 iPhone 进行调整。 调整功能的一部分是使用 ASIHTTPRequest/ASINetworkQueue 处理下载和保存文件。 用户可以自由选择和设置下载目的地。 只要我将下载路径设置为“/tmp”或 Google Chrome 文档文件夹,就可以正常工作。当我尝试选择除这些之外的文件夹时,例如“/var/mobile/Documents/”,我没有收到权限错误:
Domain=NSCocoaErrorDomain Code=513 "The operation couldn’t be completed. (Cocoa error 513.)" UserInfo=0x1f53e230 {NSFilePath=/var/mobile/Documents, NSUnderlyingError=0x1f53b3d0 "The operation couldn’t be completed. Operation not permitted
我已查找此错误并尝试了 StackExchange 上建议的所有其他答案,但无济于事。
我正在为 IOS 6 进行开发,我将我在这里阅读的答案作为链接包含在内,以防你们认为我错过了一些东西:
1 - How to make a directory iOS?
2 - iphone create folder outside sandbox
3 - Cydia App Documents Folder Not Created
4 - Gaining root permissions on iOS for NSFileManager (Jailbreak)
最后一个链接是指以 root 身份运行应用程序以访问非移动目录,但不确定这是否合适,因为我只是针对 Chrome 进行了调整。
我希望有人可以帮助我解决这个问题或为我指明正确的方向。我正在撕扯我的头发。
这是一个用于创建目录的通用代码片段,但对我来说不起作用:
NSString* SaveDir = @"/var/mobile/Documents/Test";
NSFileManager* fileManager = [NSFileManager defaultManager];
NSMutableDictionary* attributes = [[NSMutableDictionary alloc] init];
NSNumber* permission = [NSNumber numberWithLong: 0755];
[attributes setObject:permission forKey: NSFilePosixPermissions];
NSError* error = nil;
if (![fileManager createDirectoryAtPath: SaveDir
withIntermediateDirectories: YES
attributes: attributes
error: &error])
{
NSLog(@"Unable to create data directory: %@", error);
}
[attributes release];
先谢谢大家了
最佳答案
我对 bigboss 的 Cocoanuts SandcaSTLe 的评论是正确的。 我已经链接到 SandcaSTLe dylib 并使用它的方法我能够在沙箱之外创建文件/目录。
另一个库是 H2Co3 Unbox ,它允许做同样的事情,唯一的区别是 unbox 命令由守护进程执行。
关于ios - 无法在沙箱外部为 THEOS Tweak 创建目录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15647717/