💊

Swift6 時代の ATTrackingManager.requestTrackingAuthorization()

に公開

Swift5まで主流のクロージャを付けるタイプはクラッシュしてしまう。

Swift6

Task {
    let status = await ATTrackingManager.requestTrackingAuthorization()
    switch status {
        case .authorized, .restricted, .denied:
            //広告の表示など
        case .notDetermined:
            break
        @unknown default:
            fatalError()
    }
}

Swift5まで

ATTrackingManager.requestTrackingAuthorization { status in
    switch status {
        //処理
    }
}

確認環境

Sequoia 15.4.1
Xcode 16.3
シミュレータ iPhone 16e iOS18.4

さいごに

もしかしたら、落ちる/落ちないの違いはSwiftのバージョンではなく別の原因かもしれないが、私はSwift6にしたタイミングで落ちたのでこのようなタイトルにした。

Discussion