我一直在爲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