私はiCloud対応のiPhoneアプリを開発しましたが、私が直面している問題は、ユーザーがアプリのiCloudバックアップをオフにしても、iCloudにバックアップされ、他のデバイスに変更が反映されることです。その方法を知りたいですアプリが iCloud に対応しているかどうかを確認できますか。
デバイスではなくアプリ専用です。デバイスがiCloudに対応しているが、アプリがオフになっている場合、バックアップは必要ありません。
ドキュメントストレージではなくキー値を使用している場合は、代わりにこれを使用することをお勧めします。
id iCloudToken = [[NSFileManager defaultManager] ubiquityIdentityToken];
if ( iCloudToken != nil) {
// User has enabled icloud in your app...
} else {
// Icloud is not enabled for your app...
}
上記の方法をお勧めする理由は、新しい Xcode コンパイラでは、ドキュメント ストレージを使用するかどうかを指定できるようになったためです。キー値ストレージのみを使用することを選択した場合、エンタイトルメントで定義されたコンテナー識別子がないため、NSFileManager チェックは失敗します。ただし、ユーザーがアプリの実行を許可している場合、ubiquityIdentityToken は常に存在します。つまり、ユーザーがアプリに iCloud へのアクセスを許可している場合、常に true または false が発生します。
これを使用して、iCloud が有効になっているかどうかを確認してください。
NSFileManager *fileManager = [NSFileManager defaultManager];
NSURL *iCloudURL = [fileManager URLForUbiquityContainerIdentifier:nil];
NSLog(@"%@", [iCloudURL absoluteString]);
if(iCloudURL){
NSUbiquitousKeyValueStore *iCloudStore = [NSUbiquitousKeyValueStore defaultStore];
[iCloudStore setString:@"Success" forKey:@"iCloudStatus"];
[iCloudStore synchronize]; // For Synchronizing with iCloud Server
NSLog(@"iCloud status : %@", [iCloudStore stringForKey:@"iCloudStatus"]);
}
これは、オン/オフかどうかを示します:)