CloudKitを利用すると、iCloudでログインしているユーザーのIDを取得することができます。
以下のように、CKContainer
に対してfetchUserRecordID
を実行すると、ユーザーIDがコールバックで取得できます。
let container = CKContainer(identifier: "iCloud.xxx.xxx.xxx") // 作成したコンテナのID
container.fetchUserRecordID { [weak self] (id, error) in
DispatchQueue.main.async {
if let error = error as? CKError {
switch error.errorCode {
case CKError.notAuthenticated.rawValue:
// 認証していない場合の処理
case CKError.managedAccountRestricted.rawValue:
// 利用制限をかけている場合の処理
default:
// その他のエラー処理
}
} else {
// IDが取得できた時の処理
}
}
}