Copyright (C) iPhoneアプリ開発備忘録 All rights reserved.
ブログ内で記したコード、内容の正確性は保証いたしません。
記載内容を実装したことにより発生した不具合・損害等の責任は一切負いません。



2021年10月03日

iOS15でATTrackingManagerプロンプト表示が行われない時の対処法



iOS15では、App Tracking TransparencyのユーザへのIDFA取得許可プロンプト表示するAPI(ATTrackingManager requestTrackingAuthorizationWithCompletionHandler)の実行タイミングが適切ではない場合、プロンプト表示が行われない。

1. 原因
iOS15でATTrackingManagerプロンプト表示の実行条件が厳格化され、アプリの実行ステータスがUIApplicationStateActive
の時のみ実行されるようになったのが理由である。
Calls to the API only prompt when the application state is UIApplicationStateActive. The authorization prompt doesn’t display if another permission request is pending user confirmation. Concurrent requests aren’t preserved by iOS, and calls to the API through an app extension don’t prompt. Check the trackingAuthorizationStatus for a status of ATTrackingManager.AuthorizationStatus.notDetermined to determine if you need to make an additional call.

参考記事:
https://developer.apple.com/documentation/apptrackingtransparency/attrackingmanager/3547037-requesttrackingauthorization


AppDelegateのapplicationDidFinishLaunchingメソッドでプロンプト表示を実行している場合、アプリの実行ステータスがUIApplicationStateActiveではないので、iOS15ではプロンプト表示は行われない。


2. 対処法
アプリの実行ステータスがUIApplicationStateActiveとなる applicationDidBecomeActiveメソッドでプロンプト表示を実行する。
  
 
 
posted by mobileDeveloper at 10:16 | Comment(0) | 開発の流れ はてなブックマーク - iOS15でATTrackingManagerプロンプト表示が行われない時の対処法 | このブログの読者になる | 更新情報をチェックする
この記事へのコメント
コメントを書く
お名前:

メールアドレス:

ホームページアドレス:

コメント:

認証コード: [必須入力]


※画像の中の文字を半角で入力してください。
※ブログオーナーが承認したコメントのみ表示されます。
Apple、Appleのロゴ、App Store、iPodのロゴ、iTunesは、米国および他国のApple Inc.の登録商標です。
iPhone、iPod touch、iPadはApple Inc.の商標です。
iPhone商標は、アイホン株式会社のライセンスに基づき使用されています。
その他、本ブログに記載されている製品名、会社名は、それぞれ各社の商標または登録商標です。