URLForUbiquityContainerIdentifier 总是 return 无
URLForUbiquityContainerIdentifier always return nil
模拟器在 iOS8.1 中,我正在使用 Xcode 6.1.1.
我尝试了几个不同来源的解决方案:
- URLForUbiquityContainerIdentifier alway return nil
- URLForUbiquityContainerIdentifier returns nil even if configured correctly
- https://devforums.apple.com/thread/229509?
似乎没有任何效果。我的设置:
权利和能力:
代码:
dispatch_async(dispatch_get_global_queue (DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^(void) {
NSURL *myContainer = [[NSFileManager defaultManager] URLForUbiquityContainerIdentifier:nil];
// unarchive journal object from iCloud
if (myContainer != nil) {
NSString *filePath = [NSString stringWithFormat:@"%@/%@", myContainer.path, ARCHIVE_FILE_NAME];
self.journal = [NSKeyedUnarchiver unarchiveObjectWithFile:filePath];
// initialize journal from local storage if there's no iCloud archive
if (self.journal == nil)
[self initJournalFromLocalStorage];
else
[self.journal validateUserDefines];
self.journal.cloudURL = myContainer;
dispatch_async (dispatch_get_main_queue (), ^(void) {
// On the main thread, update UI and state as appropriate
});
}
});
我的 Apple ID 为开发和分发启用了 iCloud;我已经尝试创建和下载新的配置文件。
我还尝试将 .entitlements 中的 iCloud.$(CFBundleIdentifier) 更改为 $(TeamIdentifierPrefix)$(CFBundleIdentifier)。
无论我做什么,URLForUbiquityContainerIdentifier 总是 returns nil。感谢您的帮助!
你的模拟器有没有开启iCloud Drive?
根据我自己的测试,如果使用 iOS 8.1 模拟器禁用 iCloud Drive,URLForUbiquityContainerIdentifier 总是 returns nil。但是,如果您在具有相同设置的设备上进行测试,它将 return 一个有效值。同样,如果启用了 iCloud Drive,则模拟器将 return 正确的值。如果您不想启用 iCloud Drive,那么除了在真实设备上进行测试之外没有其他解决方法。
模拟器在 iOS8.1 中,我正在使用 Xcode 6.1.1.
我尝试了几个不同来源的解决方案:
- URLForUbiquityContainerIdentifier alway return nil
- URLForUbiquityContainerIdentifier returns nil even if configured correctly
- https://devforums.apple.com/thread/229509?
似乎没有任何效果。我的设置:
权利和能力:
代码:
dispatch_async(dispatch_get_global_queue (DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^(void) {
NSURL *myContainer = [[NSFileManager defaultManager] URLForUbiquityContainerIdentifier:nil];
// unarchive journal object from iCloud
if (myContainer != nil) {
NSString *filePath = [NSString stringWithFormat:@"%@/%@", myContainer.path, ARCHIVE_FILE_NAME];
self.journal = [NSKeyedUnarchiver unarchiveObjectWithFile:filePath];
// initialize journal from local storage if there's no iCloud archive
if (self.journal == nil)
[self initJournalFromLocalStorage];
else
[self.journal validateUserDefines];
self.journal.cloudURL = myContainer;
dispatch_async (dispatch_get_main_queue (), ^(void) {
// On the main thread, update UI and state as appropriate
});
}
});
我的 Apple ID 为开发和分发启用了 iCloud;我已经尝试创建和下载新的配置文件。
我还尝试将 .entitlements 中的 iCloud.$(CFBundleIdentifier) 更改为 $(TeamIdentifierPrefix)$(CFBundleIdentifier)。
无论我做什么,URLForUbiquityContainerIdentifier 总是 returns nil。感谢您的帮助!
你的模拟器有没有开启iCloud Drive?
根据我自己的测试,如果使用 iOS 8.1 模拟器禁用 iCloud Drive,URLForUbiquityContainerIdentifier 总是 returns nil。但是,如果您在具有相同设置的设备上进行测试,它将 return 一个有效值。同样,如果启用了 iCloud Drive,则模拟器将 return 正确的值。如果您不想启用 iCloud Drive,那么除了在真实设备上进行测试之外没有其他解决方法。