我有崩潰的在App Store審覈啓動,但完全否則工作在設備和模擬器的應用程序。以下是具體細節。應用程序崩潰 - 完美的作品上的設備
該應用爲IOS 7寫入,並且在IOS 8.x中被測試我象徵着來自Apple的崩潰日誌,並且它首次嘗試訪問存儲在預填充的Core Data sqlite數據庫中的信息。
此代碼的數據庫副本啓動:
- (NSPersistentStoreCoordinator *)persistentStoreCoordinator
{
if (__persistentStoreCoordinator != nil)
{
return __persistentStoreCoordinator;
}
NSURL *storeURL = [[self applicationDocumentsDirectory] URLByAppendingPathComponent:@"CC.sqlite"];
NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
NSString *documentsDirectory = [paths objectAtIndex:0];
NSString *storePath = [documentsDirectory stringByAppendingPathComponent: @"CC.sqlite"];
// Check if the sqlite store exists
if (![[NSFileManager defaultManager] fileExistsAtPath:storePath]) {
NSLog(@"sqlite db not found... copy into place");
// copy the sqlite files to the store location.
NSString *bundleStore = [[NSBundle mainBundle] pathForResource:@"CC" ofType:@"sqlite"];
[[NSFileManager defaultManager] copyItemAtPath:bundleStore toPath:storePath error:nil];
}
else {
NSLog(@"Already exists");
}
NSError *error = nil;
__persistentStoreCoordinator = [[NSPersistentStoreCoordinator alloc] initWithManagedObjectModel:[self managedObjectModel]];
NSDictionary *options = @{ NSSQLitePragmasOption : @{@"journal_mode" : @"DELETE"} };
if (![__persistentStoreCoordinator addPersistentStoreWithType:NSSQLiteStoreType configuration:nil URL:storeURL options:options error:&error])
{
NSLog(@"error %@, %@", error, [error userInfo]);
}
return __persistentStoreCoordinator;
}
我們不會在任何問題上運行這幾百倍各種iOS設備(由幾個不同的人),但總能得到一個啓動在蘋果崩潰。
從崩潰日誌中可以明顯看出,應用程序(在應用商店評論期間)試圖通過核心數據訪問一個不存在的sqlite數據庫,但我不知道爲什麼這隻發生在Apple上,而且爲什麼我不能重現錯誤。我不確定還有哪些其他信息可以添加到問題中,但可以根據需要快樂地進行更新。
感激地收到任何意見....
他們可以做一個測試,看看你是如何處理的數據庫中不存在?也許這是設計。 – 2015-03-03 03:52:24
可能的,但對於完全依賴於db的存在的應用程序...似乎是一個有爭議的問題。我不知道在這樣的災難性故障的生產環境.... – jmf1205 2015-03-03 03:57:03
你檢查正被提交給蘋果,以確認該數據庫被包含在捆綁的情況下怎麼辦? – Paulw11 2015-03-03 05:07:30