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