2012-12-31 170 views
8

我開始了一個應用測試,使用Core DataiCloud(使用魔法記錄)。經過很多配置Provisioning Profiles和權利的麻煩後,應用終於運行。拋出這個消息::iCloud超時。 (使用iCloud +核心數據+神奇記錄

2012-12-31 03:42:07.079 iCloudTest[252:1103] -[PFUbiquitySafeSaveFile waitForFileToUpload:](268): CoreData: Ubiquity: <PFUbiquityPeerReceipt: 0x1cd5a420>(0) 
permanentLocation: <PFUbiquityLocation: 0x1cd57b30>: /private/var/mobile/Library/Mobile Documents/MA5BADG5AW~com~gazapps~iCloudTest/mobile.4088E03C-763E-5A81-BB1B-64CABAFA73E3/com.gazapps.iCloudTest/v8GumdiUYmkE0aO9iGtPTPHX07qqWk7kRytsQwHKjwU=/receipt.0.cdt 
safeLocation: <PFUbiquityLocation: 0x1cd57a80>: /private/var/mobile/Library/Mobile Documents/MA5BADG5AW~com~gazapps~iCloudTest/mobile.4088E03C-763E-5A81-BB1B-64CABAFA73E3/com.gazapps.iCloudTest/v8GumdiUYmkE0aO9iGtPTPHX07qqWk7kRytsQwHKjwU=/mobile.4088E03C-763E-5A81-BB1B-64CABAFA73E3.0.cdt 
currentLocation: <PFUbiquityLocation: 0x1cd57a80>: /private/var/mobile/Library/Mobile Documents/MA5BADG5AW~com~gazapps~iCloudTest/mobile.4088E03C-763E-5A81-BB1B-64CABAFA73E3/com.gazapps.iCloudTest/v8GumdiUYmkE0aO9iGtPTPHX07qqWk7kRytsQwHKjwU=/mobile.4088E03C-763E-5A81-BB1B-64CABAFA73E3.0.cdt 

kv: (null) 

Safe save failed for file, error: Error Domain=NSCocoaErrorDomain Code=512 "The file upload timed out." UserInfo=0x1cd5b7d0 {NSLocalizedDescription=The file upload timed out.} 
2012-12-31 03:42:07.083 iCloudTest[252:1103] +[MagicalRecord(ErrorHandling) defaultErrorHandler:](0xe5ac0) Error: The file upload timed out. 
2012-12-31 03:42:07.085 iCloudTest[252:1103] +[MagicalRecord(ErrorHandling) defaultErrorHandler:](0xe5ac0) Error Message: The file upload timed out. 
2012-12-31 03:42:07.086 iCloudTest[252:1103] +[MagicalRecord(ErrorHandling) defaultErrorHandler:](0xe5ac0) Error Domain: NSCocoaErrorDomain 
2012-12-31 03:42:07.087 iCloudTest[252:1103] +[MagicalRecord(ErrorHandling) defaultErrorHandler:](0xe5ac0) Recovery Suggestion: (null) 
2012-12-31 03:42:07.089 iCloudTest[252:907] *** Terminating app due to uncaught exception 'NSRangeException', reason: '*** -[__NSArrayI objectAtIndex:]: index 0 beyond bounds for empty array' 
*** First throw call stack: 
(0x3a7702a3 0x3465f97f 0x3a6bae8d 0xdd453 0x38a6311f 0x38a624b7 0x38a671bd 0x3a743f3b 0x3a6b6ebd 0x3a6b6d49 0x38a842eb 0x338f62f9 0xd101d 0x37f22b20) 
libc++abi.dylib: terminate called throwing an exception 

我用這個方法來設置核心數據堆棧:

[MagicalRecord setupCoreDataStackWithiCloudContainer:@"XXXXXXXX.com.gazapps.iCloudTest" localStoreNamed:@"PersonDB.sqlite"]; 

任何人都遇到過這個問題

Enviroment: 
OSX 10.8.2, 
Xcode 4.5.2, 
app -> iOS 6, 
device -> iPhone 4S 

回答

13

是的,比我還記得更多次。

這意味着Core Data的內部部件無法以某種模糊和無證的方式連接到iCloud。沒有恢復途徑或解決方法 - 您只需稍後再試。這些錯誤不是來自Magical Record或您的代碼,而是內部Core Data/iCloud失敗。

這是事:這並不意味着你做錯了什麼。而推論是,沒有什麼可以做的,以解決它。當使用Core Data和iCloud時,有時會發生,您只需要處理它。提出一個錯誤,並向任何你相信的神或神祈禱他們有一天會修復它。使用iCloud的核心數據基本上是片狀的,你遇到了最瘋狂的部分之一。

有時候它有助於再次嘗試呼叫。但魔法記錄返回void,因此在代碼中檢測失敗並不像您希望的那麼簡單。

在測試過程中,它威力幫助刪除所有從iCloud的應用程序數據的,開始清理。您可以在iOS設置 - > iCloud - >存儲&備份 - >管理存儲 - >(您的應用名稱在這裏) - >編輯 - >全部刪除。另外,請務必查看http://developer.icloud.com/以查看雲中存在的內容。此外,當您遇到問題時,請務必從設備中刪除您的應用程序,以避免舊數據出現。

+0

我會稍後再試。謝謝,湯姆! – Sebastian

+0

Tom,你知道iCloud + CoreData的其他選擇嗎? – Sebastian

+1

是的,但我沒有認真使用過。查看http://www.wasabisync.com和https://simperium.com,這兩者都與Core Data合作。還有Dropbox的API,但它不會直接與Core Data一起工作。 –