【SwiftUI】ATT(AppTrackingTransparency)を表示する

SwiftUIでのATTダイアログの表示を日本語で検索してもあまり検索結果にいいものがなかったのでとりあえずコードだけ

struct ContentView: View {
    var body: some View {
        Text("こんにちわ")
        }
        /* 追記 */
        .onReceive(NotificationCenter.default.publisher(for: UIApplication.didBecomeActiveNotification)) { _ in
            ATTrackingManager.requestTrackingAuthorization(completionHandler: { status in })
        }
        /* 追記終了 */
    }
}

SwiftUIのプロジェクト作成時からあるContentViewにonReceiveを追記するだけ。

UIApplication.didBecomeActiveNotificationでアプリ起動時にATTrakingManagerでリクエストを送りATTダイアログを表示しています。

ATTダイアログは1回のみ表示されるので2回目の起動ではダイアログが表示されることはありません。

参考元

https://stackoverflow.com/questions/69283661/ios-15-how-to-display-att-dialog-when-the-app-starts-in-swiftui