我一直在为iPad开发企业分布式应用程序约一年。当时我们已经发布了5个生产版本,从未遇到过任何问题。每当我们的用户在旧版本上安装新版本时,我们的核心数据迁移一直运行良好。直到我们将视频录制添加到应用程序。将应用程序更新到最新版本后文件不再可读
我们一直在核心数据外部管理数据类型中存储'媒体'。直到我们开始允许用户创建大型视频时,这一切都运行良好。于是我们发现核心数据迁移垃圾超过〜5mb的任何文件。此时我们推出了自己的文件管理方案。这个结果非常好,我们自己写了我们自己的文件从Core Data手动迁移到我们自己的方案中。这是发布没有问题。
那么,当推出我们的下一组功能时,突然出现一个问题。从Xcode构建时从来没有任何问题......但是,在使用企业部署重新部署之后,写入到以前版本中的文件系统的任何文件都突然无法读取。如果设备插入XCode,则文件在管理器中清晰可见。但NSFileManager/NSFileHandle/NSData找不到这些文件。他们总是报告说,他们经历:
error: {
NSFilePath = "/var/mobile/Applications/3CFB07B3-D17F-45D7-A233-4E56930D794C/Documents/ep_binary_data/9465C282-7ED2-428E-B7D3-545BCFE4DFC5";
NSUnderlyingError = "Error Domain=NSPOSIXErrorDomain Code=2 \"The operation couldn\U2019t be completed. No such file or directory\"";
}
就像我说的,我可以验证该文件并不实际存在于使用Xcode组织者路径。任何帮助将不胜感激。整天试图弄清楚这件事,我一直把头从桌子上拨开。
用于读取看起来像代码:
NSError *err = nil;
NSData *data = [[NSData alloc] initWithContentsOfFile:self.thumbnail_url
options:NSDataReadingMappedIfSafe
error:&err];
if (err != nil) logger(@"error: %@",[err userInfo]);
而写:
NSError *error = nil;
[thumbnail_ep_managed writeToFile:filePath options:NSDataWritingAtomic error:&error];
if(error != nil)
{
NSLog(@"error writing file to path: %@\nerror: %@",filePath,[[error userInfo]description]);
}
我很为难
如何验证企业部署设备上的文件是否存在? – Mundi 2013-02-11 22:47:29
我已经在Xcode Organizer中的应用程序菜单下说过,您可以检查您拥有代码签名的应用程序包。 – 2013-02-18 21:15:48