2012-07-16 3 views
4

사용자가 iCloud에 로그인 한 경우 , 특히을 어떻게 감지합니까? URLForUbiquityContainerIdentifier의 반환 값을 확인하는 것은 매우 제한적입니다.사용자가 iCloud에 로그인되어 있는지 확인하는 방법은 무엇입니까?

1) iCloud에 로그인하지 않은 사용자와 다른 시나리오를 구분할 수 없습니다 (예 : iCloud가 활성화되지 않았습니다. 2) 게임이 백그라운드에서 계속 실행되는 동안 사용자가 설정 앱에서 iCloud에 로그인 한 다음 앱으로 돌아와 iCloud 서비스에 액세스하려고 시도하면 동작이 변경되지 않는 것으로 보입니다.

사용자가 로그인되어 있는지 여부를보다 확실하게 감지 할 수있는 방법이 있습니까?

답변

1

"로그인하지 않은 사용자"와 "iCloud를 사용할 수 없습니다"를 구분할 방법이 없습니다. 앱에서 알아야 할 것은 앱이 현재 iCloud에 액세스 할 수 있는지 여부입니다. 그렇지만 대답이 '아니오'인 경우 이유를 알지 못합니다.

그러나 문제의 해결책이 있습니다. # 2-- 관찰하십시오 NSUbiquityIdentityDidChangeNotification. 사용자가 로그인하고 사용자가 로그 아웃하며 사용자가 계정을 전환 할 때마다 iCloud 상태가 변경 될 때마다 시작됩니다. iCloud를 사용할 수 있고 또한 사용자가 전환 한 경우는 계정 여부를 알려주는 방법 [[NSFileManager defaultManager] ubiquityIdentityToken], 거기에 아이폰 OS 6에서 또한

+0

내 iOS 앱 또는 내 tvOS 응용 프로그램 중 하나를 수신받을 수없는' NSUbiquityIdentityDidChangeNotification'입니다. 어쩌면 일이 수년에 걸쳐 변했을 것입니다 (?). 그러나 'NSUbiquitousKeyValueStoreAccountChange'는 여전히 작동합니다. – bio

4

,

+0

흥미롭게도'[[NSFileManager defaultManager] ubiquityIdentityToken]'은 내 iPhone에서 작동하지만 내 iPad에서는 항상 nil을 반환합니다. –

+0

iCloud에 로그인 한 상태에서 앱이 문서를 사용하지 않는 경우 'ubiquityIdentityToken'은'nil'입니다. - 상점 전용). iOS 9.3 이상에서 – bio

+0

ubiquityIdentityToken은 iPad에서도 작동합니다. –

관련 문제