ios – URLForUbiquityContainerIdentifier总是返回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总是返回nil.任何帮助表示赞赏!

解决方法

您是否在模拟器上启用了iCloud Drive?

根据我自己的测试,如果使用iOS 8.1模拟器禁用iCloud Drive,则URLForUbiquityContainerIdentifier始终返回nil.但是,如果您在具有相同设置的设备上进行测试,则会返回有效值.同样,如果启用了iCloud Drive,则模拟器将返回正确的值.如果您不想启用iCloud Drive,那么除了在真实设备上进行测试之外,没有其他解决方法.

相关文章

在有效期内的苹果开发者账号(类型为个人或者公司账号)。还...
Appuploader官网--IOS ipa上传发布工具,证书制作工具跨平台...
苹果在9月13号凌晨(北京时间)发布 iOS 16,该系统的设备可...
计算机图形学--OpenGL递归实现光线追踪
Xcode 14打出来的包在低版本系统运行时会崩溃,报错信息是Li...