0

私のプロジェクトでは、CoreData と iCloud で UIManagedDocument を使用しています。特にネットワーク サービスがない場合、iCloud で UIManagedDocument を作成するときに多くのバグがあるようです。

しかし、作成のためにドキュメントを保存するときに、ネットワーク サービス (wifi も含む) で奇妙なエラー/アプリ クラッシュが発生します。

-[PFUbiquitySetupAssistant validateOptionsWithError:](262): CoreData: Ubiquity:  Error attempting to read ubiquity root url: file://localhost/private/var/mobile/Library/Mobile%20Documents/XXXXXXXXXX~com~companyname~AppName/TransactionsFolder/.
Error: Error Domain=LibrarianErrorDomain Code=1 "The operation couldn’t be completed. (LibrarianErrorDomain error 1 - Unable to initiate item download.)" UserInfo=0x1f56d140 {NSURL=file://localhost/private/var/mobile/Library/Mobile%20Documents/XXXXXXXXXX~com~companyname~AppName/TransactionsFolder/, NSUnderlyingError=0x1d89b4a0 "The operation couldn’t be completed. (UBErrorDomain error 0.)", NSDescription=Unable to initiate item download.}
userInfo: {
NSDescription = "Unable to initiate item download.";
NSURL = "file://localhost/private/var/mobile/Library/Mobile%20Documents/XXXXXXXXXX~com~companyname~AppName/TransactionsFolder/";
NSUnderlyingError = "Error Domain=UBErrorDomain Code=0 \"The operation couldn\U2019t be completed. (UBErrorDomain error 0.)\"";
}

*** Terminating app due to uncaught exception 'NSInternalInconsistencyException', reason: 'This NSPersistentStoreCoordinator has no persistent stores.  It cannot perform a save operation.'
*** First throw call stack:

トランザクション ログ フォルダからのダウンロード操作を完了できませんでした。アプリはドキュメントを作成し、何もダウンロードしないはずなので、これを理解できません。

ところで、アプリの iCloud フォルダは空です!

デバイスから iCloud アカウントを削除し、再度ログインしても問題は解決しませんでした。デバイスは、iOS 6 を実行する iPhone 4S です。

似たような経験をした人はいますか?

編集:

現在、数百回の削除と再構築の後、同じデバイスで別のエラーが発生します。

-[PFUbiquitySafeSaveFile waitForFileToUpload:](268): CoreData: Ubiquity: <PFUbiquityPeerReceipt: ...>(0)
permanentLocation: <PFUbiquityLocation: ...>: /private/var/mobile/Library/Mobile Documents/XXXXXXXXXX~com~companyname~AppName/TransactionsFolder/mobile.XXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX/Document/Q0_AoYZV8MTbAihmdWBiEFhxmCgziT9RyrvylTHgQP4=/receipt.0.cdt
safeLocation: <PFUbiquityLocation: ...>: /private/var/mobile/Library/Mobile Documents/XXXXXXXXXX~com~companyname~AppName/TransactionsFolder/mobile.XXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX/Document/Q0_AoYZV8MTbAihmdWBiEFhxmCgziT9RyrvylTHgQP4=/mobile.XXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX.0.cdt
currentLocation: <PFUbiquityLocation: ...>: /private/var/mobile/Library/Mobile Documents/XXXXXXXXXX~com~companyname~AppName/TransactionsFolder/mobile.XXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX/Document/Q0_AoYZV8MTbAihmdWBiEFhxmCgziT9RyrvylTHgQP4=/mobile.XXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX.0.cdt

kv: (null)

Safe save failed for file, error: Error Domain=NSCocoaErrorDomain Code=512 "The file upload timed out." UserInfo=0x1de36dc0 {NSLocalizedDescription=The file upload timed out.}
*** Terminating app due to uncaught exception 'NSInternalInconsistencyException', reason: 'This NSPersistentStoreCoordinator has no persistent stores.  It cannot perform a save operation.'
*** First throw call stack:

どういうわけか、iCloud トークンを取得し、到達可能性に問題がないにもかかわらず、デバイスが iCloud サービスにアクセスできないようです...

4

3 に答える 3

1

はい、よく似た経験をたことがあります。これらは Core Data の iCloud 統合における内部バグです。それらはあなたが何か間違ったことをしたという意味ではなく、それらを修正するためにコードでできることは何もありません。その通りです。コード内で何もダウンロードしていませんが、Core Data は舞台裏でダウンロードしようとして失敗しています。これは完全に制御不能です。

最初のエラーは、フレームワークが既存のトランザクション ファイルをダウンロードできなかったことを示しています。何もないかもしれませんが、それはわかりません。2 番目のエラーは、新しいトランザクション ファイルを作成できなかったことを示しています。その通りです。API にはアクセスできると書かれていますが、iCloud にアクセスすることはできません。

[設定] --> [iCloud] でアプリを見つけてそこにあるデータをすべて削除し、デバイスからアプリを削除し、ニワトリを生け贄に捧げ、もう一度やり直すことで、再び機能するようになる可能性があります。しかし、問題は戻ってきます。Apple にバグを報告し、修正されることを望みます。

于 2013-03-16T00:05:54.357 に答える