【iOS Swift】「App Tracking Transparency permission request」が表示されない問題

副業

久しぶりにiOSアプリをメンテナンスしたので審査申請を行いました。

しかし、iOS15で「App Tracking Transparency permission request」が表示されないとのことでリジェクトされましたので、対応方法をまとめました。

この記事がオススメな人
  • 「App Tracking Transparency permission request」の表示方法が分からない人
  • 「App Tracking Transparency permission request」が表示されなくて審査が通らない人
この記事を書いた人

サラリーマンでソフト開発エンジニア。

節約、副業、投資でサイドFIREを目指してます!

  • 節約:支出を減らす
    • スマホは楽天モバイル
    • ふるさと納税で返礼品
    • 確定申告で節税
  • 副業:収入を増やす
    • スマホアプリで広告収益
    • ブログで広告収益
  • 投資:資産を増やす
    • つみたてNISA
    • 企業型確定拠出年金
    • 個人型確定拠出年金(iDeCo)

アプリ審査リジェクト

アプリ審査結果リジェクトのメールが来ました。

iOS15.0.1でレビューしたところ、「App Tracking Transparency permission request」が表示されないと書いてあります。

iOS14では表示されていたのですが、iOS15から仕様が変わったようです。

対応方法

「App Tracking Transparency permission request」を表示する処理の場所を変更しました。

修正前

AppDelegate.swift

// アプリが起動した時の処理
func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions:
    [UIApplication.LaunchOptionsKey: Any]?) -> Bool {

    if #available(iOS 14.0, *) {
        // iOS14以降の場合
        if ATTrackingManager.trackingAuthorizationStatus == .notDetermined {
            // StatusがNotDeterminedの場合、許可リクエストを行う
            ATTrackingManager.requestTrackingAuthorization(completionHandler: { status in
                /*
                 許可リクエストが完了した場合の初期化処理を行う
                */
            })
        }
    } else {
        // iOS13以前の場合
    }
    return true
}

修正後

AppDelegate.swift

// アプリがアクティブになった時の処理
func applicationDidBecomeActive(_ application: UIApplication) {
    if #available(iOS 14.0, *) {
        // iOS14以降の場合
        if ATTrackingManager.trackingAuthorizationStatus == .notDetermined {
            // StatusがNotDeterminedの場合、許可リクエストを行う
            ATTrackingManager.requestTrackingAuthorization(completionHandler: { status in
                /*
                 許可リクエストが完了した場合の初期化処理を行う
                */
            })
        }
    } else {
        // iOS13以前の場合
    }
}

まとめ

OSアップデートで仕様が変わることはよくありますね。これからもしっかりと対応していきたいと思います。

タイトルとURLをコピーしました