2014-10-17 5 views
5

모든 것을 시도하고 모든 항목을 읽었지만 NSUbiquitousKeyValueStore가 iCloud에 저장되지 않는 이유를 찾을 수 없습니다.NSUbiquitousKeyValueStore가 iCloud와 동기화되지 않습니다.

• 특정 응용 프로그램의 ID 작성이 응용 프로그램의 ID

• 프로비저닝 프로파일

에 아이 클라우드를 사용

에게 • 작성 • 프로젝트에 키 값에 대한 자격

• 설정을 iCloud에 사용 : $ (TeamIdentifierPrefix) $ (CFBundleIdentifier) ​​

• 장치의 iCloud 드라이브를 켜십시오.

그러나 NSUbiquitousKeyValueStore는 로컬에만 저장됩니다. 앱을 다시 설치할 때 iCloud에서 정보를 얻지 못합니다.

NSUbiquitousKeyValueStore *cloudStore = [NSUbiquitousKeyValueStore defaultStore]; 

if ([[cloudStore stringForKey:@"testString"] length] == 0) { 
    NSLog(@"Nothing in iCloud - setting a value..."); 
    [cloudStore setString:@"I'm live in iCloud!" forKey:@"testString"]; 
    [cloudStore synchronize]; 
    [[NSUbiquitousKeyValueStore defaultStore] synchronize]; 

} else { 
    NSString *result = [cloudStore stringForKey:@"testString"]; 
    NSLog(@"Found something in iCloud - here it is: %@", result); 
} 

[self registerForiCloudNotificatons]; 

내가 응용 프로그램을 삭제하거나 iCloud에 아무것도 찾을 수없는 새로운 장치에 시도하는 경우 :

이것은 내가 노력하고있어 방법이다. 아이 클라우드가 작동하는지

그래서 내가 알아이 시도 :

NSURL *ubiq = [[NSFileManager defaultManager] URLForUbiquityContainerIdentifier:nil]; 
if (ubiq) { 
    NSLog(@"iCloud at %@", ubiq); 

} else { 
    NSLog(@"No iCloud access, %@", ubiq); 
} 

을 그리고 이것은 항상 "어떤 아이 클라우드 액세스"를 반환하지 않으며 그 이유를 알아낼 수 없습니다. URLForUbiquityContainerIdentifier가 무엇을 하든지 관계없이 항상 nil을 반환합니다.

iCloud가 활성화 된 iOS 8 기기에서 실행됩니다.

내가 누락 된 항목이 있습니까?

감사합니다.

+3

며칠 후 iCloud에서 간단한 로그 오프 후 다시 로그인합니다. 이제는 모든 것이 작동합니다 ... URLForUbiquityContainerIdentifier는 여전히 nil을 반환하므로 iCloud가 켜져 있는지 여부는 확인할 수 없지만 적어도 클라우드에 데이터를 동기화하고 저장하는 것은 아닙니다. – tomDev

답변

3

나는 동일한 문제가있었습니다. 기기의 iCloud 계정에서 로그 오프하여 나에게도 해결되었습니다.

이 문제는 장치에 동일한 번들 식별자가있는 응용 프로그램을 으로 설치하고 전에 iCloud 인 타이틀먼트를 사용하도록 설정 한 경우 나타납니다. 2 개의 테스트 장치에서이 문제가 발생했습니다. iCloud가 활성화 된 상태에서 처음으로 앱을 설치 한 세 번째 기기는 문제가되지 않았습니다.