URLForUbiquityContainerIdentifier returns nil even if configured correctly

后端 未结 8 2192
小鲜肉
小鲜肉 2020-12-31 06:47

I am having the problem, that URLForUbiquityContainerIdentifier is returning nil in some cases even if the user has set up everything correctly in the settings. My code:

相关标签:
8条回答
  • 2020-12-31 07:14

    URLForUbiquityContainerIdentifier alway return nil

    NSURL *ubiquityURL = [fileManager URLForUbiquityContainerIdentifier:nil]; if (ubiquityURL == nil)
    
    • app build by xcode4.5
    • app is enable icloud
    • ios is loginned icloud account

    ubiquityURL is normal in debug, but ubiquityURL is always nil after distribution to appstore.

    0 讨论(0)
  • 2020-12-31 07:17

    I'd look at your entitlement.plist on one app I needed to change $(TEAMID) to profile id the numbers and letter before the dns in the profile - here is some code that will work with UIManagedDocument

    /// test iCloud Access
    - (void)initializeiCloudAccess {
        dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{
            if ([[NSFileManager defaultManager]
                 URLForUbiquityContainerIdentifier:nil] != nil)
                NSLog(@"iCloud is available\n");
            else
                NSLog(@"This Application requires iCloud, but it is not available.\n");
        });
    }
    
    - (NSURL *)iCloudURL
    {
    
        return [[NSFileManager defaultManager] URLForUbiquityContainerIdentifier:nil];
    }
    
    - (NSURL *)iCloudDocumentsURL
    {
    
        return [[self iCloudURL] URLByAppendingPathComponent:@"Documents"];
    }
    
    - (NSURL *)iCloudCoreDataLogFilesURL
    {
    
        return [[self iCloudURL] URLByAppendingPathComponent:@"CoreDataLogs"];
    }
    
    0 讨论(0)
  • 2020-12-31 07:25

    If you still having issue o make sure you are running on a device as simulator wont always return a valid value . I tried you code on my app and Im not getting nil

    0 讨论(0)
  • 2020-12-31 07:27

    iPad mini with iOS7. I just have experienced that URLForUbiquityContainerIdentifier suddenly started to return nil. I tried restarting the device, but it didn't help.

    Inside the Settings app, under the 'iCloud' menu. I noticed that 'Documents & Data' was set to Off.

    Solution was to change 'Documents & Data' to 'On'.

    0 讨论(0)
  • 2020-12-31 07:28

    If anyone is having the same problem using the iOS8 Betas, there seems to be a bug with the way the Entitlements are generated in Xcode 6. I was banging my head against this for days until coming across this post in the Apple Developer Forums: https://devforums.apple.com/thread/229509?

    Essentially, Xcode generates a key named com.apple.developer.icloud-container-identifiers when it should be com.apple.developer.ubiquity-container-identifiers (ubiquity, not icloud). It may also have the value set as iCloud.$(CFBundleIdentifier) when it should be $(TeamIdentifierPrefix).$(CFBundleIdentifier).

    Of course this may get fixed in the next Beta but for anyone as confused as me I hope this helps.

    0 讨论(0)
  • 2020-12-31 07:32

    Check that you have enabled iCloud containers in your entitlement. The containers are not added by default when you enable entitlements. Click the "+" sign in Target/Summary/Entitlements to add your appId.

    0 讨论(0)
提交回复
热议问题