Folder na iCloud nie pokazuje folderu mojej aplikacji.Dlaczego moja aplikacja nie jest wyświetlana w folderze folderu iCloud
ten sposób mogę wysłać plik do iCloud Dysk:
- (IBAction)btnStoreTapped:(id)sender {
// Let's get the root directory for storing the file on iCloud Drive
[self rootDirectoryForICloud:^(NSURL *ubiquityURL) {
NSLog(@"1. ubiquityURL = %@", ubiquityURL);
if (ubiquityURL) {
// We also need the 'local' URL to the file we want to store
//NSURL *localURL = [NSURL fileURLWithPath:[[NSBundle mainBundle] pathForResource:@"Photo" ofType:@"pdf"]];
NSURL *localURL = [self localPathForResource:@"document" ofType:@"doc"];
NSLog(@"2. localURL = %@", localURL);
// Now, append the local filename to the ubiquityURL
ubiquityURL = [ubiquityURL URLByAppendingPathComponent:localURL.lastPathComponent];
NSLog(@"3. ubiquityURL = %@", ubiquityURL);
// And finish up the 'store' action
NSError *error;
if (![[NSFileManager defaultManager] setUbiquitous:YES itemAtURL:localURL destinationURL:ubiquityURL error:&error]) {
NSLog(@"Error occurred: %@", error);
}else{
NSLog(@"Succeed");
}
}
else {
NSLog(@"Could not retrieve a ubiquityURL");
}
}];
}
- (void)rootDirectoryForICloud:(void (^)(NSURL *))completionHandler {
dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{
NSURL *rootDirectory = [[[NSFileManager defaultManager] URLForUbiquityContainerIdentifier:nil]URLByAppendingPathComponent:@"Documents"];
if (rootDirectory) {
if (![[NSFileManager defaultManager] fileExistsAtPath:rootDirectory.path isDirectory:nil]) {
NSLog(@"Create directory");
[[NSFileManager defaultManager] createDirectoryAtURL:rootDirectory withIntermediateDirectories:YES attributes:nil error:nil];
}
}
dispatch_async(dispatch_get_main_queue(), ^{
completionHandler(rootDirectory);
});
});
}
- (NSURL *)localPathForResource:(NSString *)resource ofType:(NSString *)type {
NSString *documentsDirectory = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES)[0];
NSString *resourcePath = [[documentsDirectory stringByAppendingPathComponent:resource] stringByAppendingPathExtension:type];
return [NSURL fileURLWithPath:resourcePath];
}
Właściwie zrobiłem everyting wyjaśnił in this post
Wszystko wygląda grzywny. Mogę przesyłać pliki z powodzeniem i mogę je pokazać w moim komputerze za pośrednictwem terminala.
I widzę pliki Właśnie przesłanych z moim iPhone.
Ale nic nie jest wyświetlane w moim folderze iCloud Drive na moim komputerze mac lub icloud.com. Dlaczego nie wyświetlają folderu mojej aplikacji, nawet jeśli wszystko wygląda dobrze i nie ma błędu?
Wydaje mi się, że obaliłem twoje oświadczenie, że "NSUbiququousContainerIsDocumentScopePublic = true wchodzi w życie tylko wtedy, gdy aplikacja (i uprawniony kontener iCloud) nie została sprawdzona i zatwierdzona". W istniejącej aplikacji sklepu aplikacji nie ma kluczy NSUbiquitousContainers w pliku plist. Dodałem NSUbiquitousContainerIsDocumentScopePublic = true, i zderzyłem się z CFBundleVersion bez przesyłania do sklepu z aplikacjami - a pojemnik wszechobecny staje się widoczny w aplikacji iCloud Drive na iOS ** i ** kontener staje się widoczny w systemie OS X zalogowanym do tego samego konta iCloud (I nawet nie zsynchronizował pliku). –
Zgadzam się z Michaelem Rourke. To nie ma nic wspólnego z App Store. Naprawiono dla mnie nowy identyfikator aplikacji na http://stackoverflow.com/questions/25203697/exposing-an-apps-ubiquitous-container-to-icloud-drive-in-ios-8/32801479#32801479 . Moja aplikacja nie jest jeszcze w App Store. Musisz mieć NSUbiquitousContainerIsDocumentScopePublic = true w Info.plist przed uruchomieniem aplikacji po raz pierwszy. – BillF
Mam ten sam problem. Moja aplikacja jest już dostępna w sklepie z aplikacjami, więc nic nie mogę zrobić, aby folder aplikacji stał się widoczny na dysku iCloud. Nawet odinstalowałem aplikację i ponownie ją zainstalowałem, ale ona się nie wyświetla. – gbotha