Qiita Teams that are logged in
You are not logged in to any team

Log in to Qiita Team
Community
OrganizationEventAdvent CalendarQiitadon (β)
Service
Qiita JobsQiita ZineQiita Blog
2
Help us understand the problem. What are the problem?

iOS/iPadOS 15 での App Tracking Transparency framework 実装

日本の皆さん、你好です

iOS 15で私の既存アプリを動かしたら ATTプロンプトが表示されませんでした。
調べてみたら許可プロンプトを連続で出してる場合は表示されないことが判明。

アイヤー

あらためて目を皿のようにして公式リファレンスを読み込みました。
すると

あら!

Calls to the API only prompt when the application state is: UIApplicationStateActive.

ちゃんと書いてた・・・


ちなみにこの変更がされたのは iOS 15 beta3 か4 くらいです。
その後 beta5, beta6 でも変わらないので Appleはこの仕様を押し通す模様。

私のアプリでは複数の許可プロンプトを連続で表示しています。
通知の許可プロンプトで 許可or拒否 された後に ATTプロンプトを表示する、という算段なのです。

そして直前のプロンプトが表示され、閉じられた直後は UIApplicationState は active じゃなかったアルよ

アイヤー

じゃあ、どうするの?
UIApplicationState を KVO する?
ノーノーノー
それは現実的じゃあないさ

HIG

HIGを読むと許可プロンプトはユーザにとって自然で適切なタイミングで出すことが推奨されてます。
その思想からするとAppleとしては「他の許可プロンプトのついでに許可してもらおう」的な出し方は許せないのかもしれません。
同様にアプリ起動直後に ATTを表示しようとしてもダメです。なぜなら activeじゃないから。
ひどいよapple
なんでだよapple
やめてよapple

解決した

解決しました。日本の皆さん、
謝謝

Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
2
Help us understand the problem. What are the problem?