見出し画像

【App Store Review】 ATTダイアログの文言でGuideline 2.5.1に抵触した話【リジェクト】

大人は質問に答えないとか本気で思ってそう


先日、スマホ向けゲーム「フレッシュチャージRURU」のβ1版をリリースするためにAppStoreのレビューに提出したところ、以下の理由でリジェクトされました。

Guideline 2.5.1 - Performance - Software Requirements

We noticed your app's binary contains references to App Tracking Transparency, but you have indicated you do not intend to ask users for permission to track at this time.

Since App Tracking Transparency is only intended to be used by apps requesting authorization to track, it would be appropriate to disable App Tracking Transparency before resubmitting your app for review.

Next Steps

To resolve this issue, remove any App Tracking Transparency-related keys in your app's info.plist and from localized string files.

In addition to removing these keys, you may also choose to fully remove other references to the AppTrackingTransparency framework from your app.

If your app does not track users, update your app privacy information in App Store Connect to not declare tracking. You must have the Account Holder or Admin role to update app privacy information.

Resources

- See developer documentation for the AppTrackingTransparency framework.

- Tracking is linking data collected from your app with third-party data for advertising purposes, or sharing the collected data with a data broker. Learn more about tracking.

要約すると「追跡の許可をユーザに求めるつもりでないならApp Tracking Transparency(以下、ATT)に関するフレームワークを全て削除せよ」という事らしいんです。

ですがこのアプリには広告が実装されていて、その場合、ATTの追跡許可をユーザに求めるダイアログを表示しなければならない義務があります。(このルールは2020年頃にAppleが定めました)

こういうダイアログです

そしてその対応は過去作「お昼バレー」「つかんで投げろ!」「そろえてCHEER☆UP!」などでも行なってきました。なので今作でも同じ対応をしたという訳ですが…今回はなぜかガイドラインに抵触してしまったのです。

広告を実装するならATT対応せよと言ってきたのはApple側なのですが…いやそもそもどうして私が追跡の許可をユーザに求めないつもりと判断されてしまったのでしょうか?

という事で私はすぐさま「私はユーザに追跡の許可を求めるつもりなので、それをどこで説明すればいいのか」といった内容の抗議文を送りました。すると1日後に以下の返答がきました。

Thank you for providing these information.

We continued to notice your app's binary contains references to App Tracking Transparency, but you have indicated you do not intend to ask users for permission to track at this time.

You need to change the setting for your app.

If you require additional support, it would be best addressed by Developer Technical Support, who can provide discrete code-level assistance.

https://developer.apple.com/support/

こちらはアプリの設定を変更する必要がありますとの事です。別に要約している訳ではありません。本当にただ、アプリの設定を変更する必要があります、と言ってるだけです。

い、いやいや!まてまて!

それをどこで設定するのかを聞いているのに回答がざっくりしすぎじゃないですか…???

なので設定する箇所はどこなのか何度か質問を投げたのですが「ATTフレームワークのドキュメントを見ろ」とか「開発者フォーラムでエンジニアに質問しろ」とか、その解答はどうも要領の得ないものばかり…。

…なんで私の質問に答えないの?それが大人なの?

ところでGuideline 2.5.1ってなんだ?

公式の説明によれば以下の通り。

2.5.1 Appでは公開APIのみ使用でき、現行のOSで動作する必要があります。公開APIについて詳しくは、こちらをご確認ください。Appは常に最新の状態に保ち、今後のOSバージョンでサポートが終了し、非推奨となる機能、フレームワーク、テクノロジーは段階的に使用を止めてください。Appではその用途に合ったAPIおよびフレームワークを使用し、その内容をAppの説明に記載してください。たとえば、HomeKitフレームワークを使用する場合はホームオートメーションサービスを提供するものである必要があります。HealthKitはヘルスケアとフィットネスの目的で、ヘルスケアAppに統合し使用される必要があります。

この説明だと使わないフレームワークはアプリに組み込むなと言っているように見えますが、他の方の技術ブログなどを見てみるとその機能の用途をどこかで説明しないと引っかかってしまうようでした。

例に挙がっているヘルスケアとフィットネスであればストアページの概要欄で説明する必要があるそうです。

じゃあATTの場合はどこで説明すればいいのでしょうか?
今まで引っかかった事はないですし、どこかに説明欄が新設されたとか…?

謎が深まります…。

そこで技術系ブログを漁ってGuideline2.5.1に関する情報をネットで探してみたのですが、ATT関連で2.5.1に抵触したケースを1件だけ見つけました。

それはNSUserTrackingUsageDescription記載漏れが原因との事。

NSUserTrackingUsageDescriptionとはATTの追跡許可を促すダイアログのこの部分のメッセージの事。ここは開発者が自由にカスタム可能なのですが、ここが空欄だったために却下されたとの事でした。

しかし私はここのメッセージはしっかりと記載していますし、その文言も過去作のものから一切変更を加えていません。なので、この時はここが問題であるとはまったく思いも寄らなかったのです…。

ATTダイアログとNSUserTrackingUsageDescriptionの文言(赤枠

言われたとおり開発者フォーラムを見てみる


はじめは開発者フォーラムを見ても解決方法が分かるのだろうか?と疑っていました。だってそもそも問題点が分からないのですから…調べようがないじゃないですか…。

ですがもうこれ以上他をあたる充てもありませんし、他にやりようもないので藁(わら)にすがる思いで開発者フォーラムをのぞく事にしたんです。

そこには多くの質問が投げられていました。そして私はその中から興味深い投稿を探し当てる事ができたのです。

こんにちは。

iOS > 14 は AppTrackingTransparency を実装することを望んでいるので、数日前に実装しました。
新しいバージョンを Appstore にアップロードしましたが、不十分な NSUserTrackingUsageDescription が原因で拒否されました。

ドキュメントには「アプリがユーザーまたはデバイスを追跡するためにデータを使用する許可を要求している理由をユーザーに通知するメッセージ」と記載されています。

私のメッセージは次のようなものでした:
アプリとアプリ自体のエクスペリエンスを向上させるために、行動データの一部を追跡したいと思います。
あなたのデータを他の誰かに渡すことはありません。

どうやら、ページビュー、ビュー時間など、追跡されたすべてのデータをリストする必要があるようです。それは私にとっては大丈夫です。

しかし、使いやすさの理由から、この説明はできるだけ短くしたかったのです。

私が知りたいのは、別の完全なセキュリティ ポリシーなどを作成する必要があるかどうかです。私たちはドイツで開発と配布を行っているため、アプリには既に優れたデータ セキュリティ ポリシーがあります (弁護士による評価済み)。
その場合は、弁護士に再度連絡します。

App Store Review は私の質問に答えることができなかったので、ここで試してみたいと思いました。お役に立てれば幸いです。

よろしくお願いします

これにはGuideline2.5.1に抵触したと明記されていた訳ではないですが、状況としては今の私とすごく似ている気がします。質問に答えない所とか…。

そしてここではNSUserTrackingUsageDescription の文言に原因があると書かれていました。

NSUserTrackingUsageDescription が原因で拒否されました。(中略)しかし、使いやすさの理由から、この説明はできるだけ短くしたかったのです。

そしてさらにはこの質問に対する以下の回答です。

レビュアーの気分次第のようです。ガイドラインはまさにそれです - ガイドラインはルールではありません。ただし、Apple はある日アプリを受け入れ、翌日にはまったく同じ NSUserTrackingUsageDescription で拒否することができます。

…なんかもう色々と込み上げてくる話ですね。

という事でNSUserTrackingUsageDescriptionのメッセージ内容に問題があると判断し、以下のように変更しました。

■変更前
好みに合わせた広告を表示するために使用されます。

■変更後
許可をした場合、広告出稿のために活用いたします。今後のサービス改善の為、トラッキングの許可をお願いします。※トラッキングの設定は端末の設定からいつでも変更できます。

追跡の許可をユーザに求めるつもりである事を明記し
、さらに長文にしてみたところ、その効果はてきめんだったようで、ようやく審査が通ったのでした。めでたしめでたし。

まとめ

・以前審査が通ったからと言って次も審査が通るとは限らない
・なにかしら同様のケースをネットで探す場合、開発者フォーラムを根気よく探すと見つかる場合がある
・NSUserTrackingUsageDescriptionの説明が足りないとGuideline 2.5.1に抵触する事がある
・話の通じないレビュアーに当たると大変

この記事がどなたかのお役に立てれば幸いです。

おまけ


そんな紆余曲折を経てリリースされたアプリ「フレッシュチャージRURU」β版。もしよろしければダウンロードしてみてください!

【iOS版】

【Android版】


この記事が気に入ったらサポートをしてみませんか?