实际上,我依靠完整的文件路径来获取安全选项(因为我需要文件路径才能将其存储在钥匙串中)。这意味着当我重建应用程序时(或者当它发布到AppStore时会得到更新),由于文件路径中的包ID更改,这些功能会被破坏。
我已经想到了解决此问题的方法:只从Documents目录(/Documents/.../.../myFile.pdf)获取文件路径,而不是完整路径(/ var / mobile /。 .. / ...)。有没有办法做到这一点?
或者,我的问题还有其他解决办法吗?
提前致谢!
答案 0 :(得分:3)
从文档目录中获取文件路径
NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory,NSUserDomainMask, YES);
NSString *documentsDirectory = [paths objectAtIndex:0];
NSString *getPath = [documentsDirectory stringByAppendingPathComponent:[NSString stringWithFormat:@"%@",strFileName]];
答案 1 :(得分:0)
感谢@Larme和@ user3182143,我找到了一个解决方案:获取文档路径并将文件路径拆分为2:文档目录之前的一部分
System.js
和另一部分
bundlePath = [documentsDirectory stringByDeletingLastPathComponent];
如果我需要完整的路径,我会通过
获得documentsPath = [documentsDirectory lastPathComponent];
...
filepath = [documentsPath stringByApendingPathComponent:@"myFile.pdf"];