アプリで iCloud の特定の部分を複数のデバイスに同期させようとしています。アプリで iCloud ドキュメントを有効にし、iCloud コンテナを追加しました。表示された方法で Info.plist ファイルを編集しました。私のコードでは、plist ファイルが作成され、デバイスのドキュメント ディレクトリに簡単に保存できますが、iCloud に保存しようとするたびにクラッシュします。Ubiquitous コンテナーのログは常に表示されます (null)
id plist = [NSPropertyListSerialization dataWithPropertyList:self.theShow format:NSPropertyListXMLFormat_v1_0 options:nil error:nil];
NSArray *paths = NSSearchPathForDirectoriesInDomains
(NSDocumentDirectory, NSUserDomainMask, YES);
NSString *documentsDirectory = [paths objectAtIndex:0];
NSString *devotionals = [documentsDirectory stringByAppendingPathComponent:@"devotionals"];
UITextField *textField = [alertView textFieldAtIndex:0];
NSString *theName = textField.text;
NSString *iCloudsave = [theName stringByAppendingString:@".plist"];
//make a file name to write the data to using the documents directory:
NSString *fileName = [NSString stringWithFormat:@"%@/%@.plist",
devotionals, theName];
NSLog(@"%@", fileName);
[plist writeToFile:fileName atomically:YES];
NSURL* ubiq = [[NSFileManager defaultManager]URLForUbiquityContainerIdentifier:nil];
NSURL *ubiquitousPackage = [[ubiq URLByAppendingPathComponent:@"Documents"] URLByAppendingPathComponent:iCloudsave];
NSLog(@"UBIQ%@", ubiquitousPackage);
[plist saveToURL:ubiquitousPackage forSaveOperation:UIDocumentSaveForCreating completionHandler:^(BOOL success)
{
if (success)
{
NSLog(@"Synced with icloud");
}
else
NSLog(@"Syncing FAILED with icloud");
}];