久しぶりにiOSアプリをメンテナンスしたので審査申請を行いました。
しかし、iOS15で「App Tracking Transparency permission request」が表示されないとのことでリジェクトされましたので、対応方法をまとめました。
アプリ審査リジェクト
アプリ審査結果リジェクトのメールが来ました。
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アップデートで仕様が変わることはよくありますね。これからもしっかりと対応していきたいと思います。