使用Swift或Obj,我已经完成了一个应用程序,并将敏感数据存储在应用程序中的一个特定文件夹中。现在,我希望用户不能看到那个文件夹,也不能在他的计算机上复制它,或者最好的,用iMazing这样的软件来隐藏它。
我试图添加一个".",这根本不是一个解决方案:如何隐藏NSDocumentsDirectory中的文件夹并通过iTunes & iCloud禁止备份
我试图将它存储在Library文件夹中,这也不是一个解决方案,因为它可以在iMazing:如何隐藏ios中在文档目录中创建的文件夹?中访问
我不想使用应用程序支持iTunes文件共享,因为我需要使用iMazing从应用程序访问documents文件夹。
是否存在智能和精减解决方案,允许将一些文件存储在iPad中,iMazing无法访问,也没有极端,因为“全部或无”应用程序支持iTunes文件共享选项?
NSArray *paths = NSSearchPathForDirectoriesInDomains(NSLibraryDirectory, NSUserDomainMask, YES);
NSString *libraryDirectory = [paths objectAtIndex:0];
BOOL isDir = NO;
NSError *error;
if (! [[NSFileManager defaultManager] fileExistsAtPath:libraryDirectory isDirectory:&isDir] && isDir == NO) {
[[NSFileManager defaultManager] createDirectoryAtPath:libraryDirectory withIntermediateDirectories:NO attributes:nil error:&error];
}
NSString *pathLibToCreate = [libraryDirectory stringByAppendingPathComponent:@"testDoc"];
NSString *pathDocToCreate = [[self documentsDirectory] stringByAppendingPathComponent:@"testDoc"];
if (![[NSFileManager defaultManager] fileExistsAtPath:pathLibToCreate]) {
[[NSFileManager defaultManager] createDirectoryAtPath:pathLibToCreate withIntermediateDirectories:NO attributes:nil error:&error];
}
if ([[NSFileManager defaultManager] fileExistsAtPath:pathDocToCreate]) {
[[NSFileManager defaultManager] removeItemAtPath:pathDocToCreate error:nil];
}
NSError *copyError = nil;
if (![[NSFileManager defaultManager] copyItemAtPath:pathLibToCreate toPath:pathDocToCreate error:©Error]) {
NSLog(@"Error copying files: %@", [copyError localizedDescription]);
}
提前谢谢。
发布于 2017-12-14 09:23:05
如果您使用“文件共享”权限为NO,如果您使用分发配置文件,您将无法在“不可思议”中查看您的文件。我想这是因为你在应用程序中使用了一个开发人员配置文件,然后你就可以查看这些文件了。
发布于 2017-12-11 11:12:45
我认为这是不可能的,至少如果一个用户有一个越狱设备,他可以访问系统上的所有文件。
要防止用户访问文件的内容,可以选择加密文件的内容。使用CommonCryptor框架应该是一个简单的任务。
对于加密的数据库,您可以使用SQLCipher。
发布于 2018-03-01 10:43:32
我是iMazing的开发者之一。事实上,公认的答案是正确的: iMazing和其他类似的工具在开发过程中将允许访问应用程序的沙箱。但还有3起案件需要注意:
越狱设备
iMazing将显示所有文件,读写访问权限。
在 8.3之前运行iOS版本的iOS设备
这里也一样--在iOS 8.3之前,我们可以访问应用程序沙箱,也可以读写。
通过iTunes备份访问
iMazing和类似的工具都有备份浏览器,可以让用户看到应用程序沙箱。库和文档文件夹,而不是缓存或tmp。如果你真的想要安全,你需要显式的从备份中排除文件。当然,这有很大的缺点。
https://stackoverflow.com/questions/47751393
复制相似问题