見出し画像

新作リリースでApp Store審査リジェクト3件にハマッた話

6月7日に僕のシンプルスマホゲームシリーズの新作アプリ
「魔法のガチャぴんぼーる」をリリースしました。

Google Playの方は6月4日の17時に審査に出し2時間で審査通過と順調だったのですがApp Storeがハマりました。5日23時に審査に出してから7日朝までの間にApp Storeリジェクトで4往復することになります。(App Storeのリプライが毎回爆速レスだったことは感謝!!)

今回のアプリは昨年2023年6月に1本目を出してから9本目となり、リジェクトを3つ食らったうちの2件は過去8本のアプリでは問題無かった点でリジェクトになり久々にストア申請でハマッたので、ストアの方針が何か変わったのかたまたまなのかわかりませんが対応の記録を残しておこうと思いました。


リジェクト1件目: Guideline 5.1.2 - Legal - Privacy - Data Use and Sharing

The app privacy information provided in App Store Connect indicates the app collects data in order to track the user, including Crash Data, Product Interaction, Advertising Data, Performance Data, Coarse Location, and Device ID. However, the app does not use App Tracking Transparency to request the user's permission before tracking their activity.

Apps need to receive the user’s permission through the AppTrackingTransparency framework before collecting data used to track them. This requirement protects the privacy of users.

App Store Connect リプライより

ChatGPTで和訳すると、

App Store Connectで提供されたアプリのプライバシー情報によると、クラッシュデータ、製品の相互作用、広告データ、パフォーマンスデータ、大まかな位置情報、デバイスIDを含むユーザーを追跡するためのデータを収集していることが示されています。しかし、アプリはApp Tracking Transparencyを使用して、追跡する前にユーザーの許可を求めていません。

アプリはユーザーの活動を追跡するためのデータを収集する前に、AppTrackingTransparencyフレームワークを通じてユーザーの許可を得る必要があります。この要件はユーザーのプライバシーを保護するためのものです。

ChatGPT翻訳

Admob広告の為にユーザーデータ取得するとアプリ登録の際に宣言しているのにATT対応ができてないよ!という指摘です。ATTも実は過去7本はできてなかったのにリジェクトされず、8本目でやっと対応したのでATT対応あまり習慣化できてなかったのでした。
ATT対応のスクリプトはプロジェクトにコピーしてたけど、ヒエラルキーにATTのスクリプトをアタッチしたオブジェクトを置き忘れていたという凡ミス。空のオブジェクトをつくり、ATT対応のスクリプトを置いて解決。



リジェクト2件目:Guideline 1.5 - Safety

1.5 Developer Information People need to know how to reach you with questions and support issues. Make sure your app and its Support URL include an easy way to contact you; this is particularly important for apps that may be used in the classroom. Failure to include accurate and up-to-date contact information not only frustrates customers, but may violate the law in some countries or regions. Also ensure that Wallet passes include valid contact information from the issuer and are signed with a dedicated certificate assigned to the brand or trademark owner of the pass.

Issue Description
The Support URL provided in App Store Connect, https://x.com/gigabit_million, does not direct to a website with information users can use to ask questions and request support.

App Store Connect リプライより

これをChatGPTさんに和訳してもらったのが下記。

1.5 開発者情報
人々は質問やサポートの問題について連絡する方法を知る必要があります。あなたのアプリとそのサポートURLに、連絡しやすい方法が含まれていることを確認してください。これは特に教室で使用される可能性のあるアプリの場合に重要です。正確で最新の連絡先情報を含まないと、顧客のフラストレーションを引き起こすだけでなく、国や地域によっては法律に違反する可能性もあります。また、Walletパスには、発行者の有効な連絡先情報が含まれており、パスのブランドや商標所有者に割り当てられた専用証明書で署名されていることを確認してください。

問題の説明
App Store Connectで提供されたサポートURL(https://x.com/gigabit_million)は、ユーザーが質問をしたりサポートを依頼したりするための情報が含まれているウェブサイトにリダイレクトされません。

ChatGPTの翻訳

App Store Connectのアプリ登録で入力する「サポートURL」がX(旧Twitter)のURLじゃ直接ユーザーが連絡とれないからダメだよ、ということでした。過去のアプリはサポートURLはずっとTwitterのアドレスを貼ってOKだったのでここでリジェクトは初めてでした。

メールアドレスが載ってないとダメそうだったので、対応は下記。

サポートURLの項目をXから変更

サポートURLに貼ってあるのはGoogleフォームで作ったお問い合わせページです。すぐ作れるので便利で元々ゲームから不具合報告として設置していたものをここに貼って解決。

↓Googleフォームのページはこんな感じです。なんとなく英文も。



リジェクト3件目:Guideline 2.1 - Performance 

2.1 App Completeness Submissions to App Review, including apps you make available for pre-order, should be final versions with all necessary metadata and fully functional URLs included; placeholder text, empty websites, and other temporary content should be scrubbed before submission. Make sure your app has been tested on-device for bugs and stability before you submit it, and include demo account info (and turn on your back-end service!) if your app includes a login. If you are unable to provide a demo account due to legal or security obligations, you may include a built-in demo mode in lieu of a demo account with prior approval by Apple. Ensure the demo mode exhibits your app’s full features and functionality. If you offer in-app purchases in your app, make sure they are complete, up-to-date, and visible to the reviewer, or that you explain why not in your review notes. Please don’t treat App Review as a software testing service. We will reject incomplete app bundles and binaries that crash or exhibit obvious technical problems.

Issue Description
The app exhibited one or more bugs that would negatively impact App Store users.
Bug description: 広告を見て5倍にする button was unresponsive.

App Store Connectリプライより

これをChatGPTに翻訳してもらうと、

2.1 アプリの完全性
App Reviewへの提出物、プレオーダーで提供するアプリも含め、すべての必要なメタデータと完全に機能するURLが含まれた最終バージョンであるべきです。プレースホルダーテキスト、空のウェブサイト、その他の一時的なコンテンツは提出前に削除してください。アプリを提出する前に、デバイス上でバグや安定性をテストし、ログインを必要とするアプリの場合はデモアカウント情報を含めてください(バックエンドサービスをオンにしてください)。法的またはセキュリティ上の義務によりデモアカウントを提供できない場合は、事前にAppleの承認を得た上で、デモアカウントの代わりに内蔵のデモモードを含めることができます。デモモードはアプリの全機能と機能性を展示する必要があります。アプリ内購入を提供している場合、それらが完全で最新であり、レビュー担当者に見えるようにするか、レビューのメモにその理由を説明してください。App Reviewをソフトウェアテストサービスとして扱わないでください。未完成のアプリバンドルやクラッシュする、または明らかな技術的問題を示すバイナリは却下されます。

問題の説明
アプリには、App Storeのユーザーに悪影響を与えるバグが1つ以上ありました。
バグの説明:広告を見て5倍にするボタンが反応しませんでした。

ChatGPT翻訳

これは他の開発者さんの事例で聞いたことがあるリジェクト事例なのですが、僕は初めてリジェクトになりました。
Admob広告はアプリをリリース後にAdmobアカウントとストアを紐づけることで初めて広告が表示される為リリース前のアプリではAdmob広告を表示できないので、リワード広告のメニューのボタンが使用できないよ!このアプリは不完全だ!不完全なアプリは許さん!という内容です。

1回目は、App Storeにリリースされたら広告表示されて使えるようになるから審査通してちょ、と返信してみたのですがまったく同じ文面のリジェクトが返ってきたので「Googleの広告の事情なんか知らん!うちはAppleだ!」ということのようでした。

仕方ないので対応は下記としました。

旧:
・広告ボタンを押してリワード広告が表示されたら報酬が入る
・リワード広告が取得できなかったら報酬が入らない

新:
・広告ボタンを押してリワード広告が表示されたら報酬が入る
・リワード広告が取得できなかったらネットワーク接続を確認し、ストアページを表示して報酬が入る
・ネットワーク接続できなかったら報酬が入らない

ネットワーク接続チェックはUnity標準機能のウェブリクエストで実装しました。

using (var www = new UnityEngine.Networking.UnityWebRequest("https://google.com"))
{
     yield return www.SendWebRequest();

     if (www.result != UnityEngine.Networking.UnityWebRequest.Result.ConnectionError &&
         www.result != UnityEngine.Networking.UnityWebRequest.Result.ProtocolError)
     {
                // Internet is available, open the website
       #if UNITY_ANDROID
            Application.OpenURL("https://play.google.com/store/apps/dev?id=8895619426552086233&hl=ja");
       #elif UNITY_IOS
            Application.OpenURL("https://apps.apple.com/jp/developer/naoki-hashimoto/id1689052682");
       #else
            Application.OpenURL("https://gigabit.stars.ne.jp/");
       #endif
       
       // リワード獲得処理を書く
     }
}

自分のストアページを表示するのは一応自社広告の位置づけです。リワード広告が表示できなくても僕の他のアプリを表示させて頂いて他のアプリに興味を持ってもらえたら嬉しいなと…

この対応は前作「きまぐれ幻獣」でリリース直後Admob広告のアクセスが急増したことで広告制限を受け、ユーザーさんから「広告が表示できない!ブーストできない!」とクレームの嵐を受けた時に他の開発者さんから教えて頂いた対応方法です。ここで役に立つとは、やはり必要なのは開発者仲間、そしてリリース経験数、場数!!


昨年末のきまぐれ幻獣の時の悲劇。なつかしい…


無事にリリース!!

というわけで6月5日夜23時から約26時間で4往復のやりとり、3つのリジェクト要件を乗り越え、無事に6月7日にリリースとなりました。
「魔法のガチャぴんぼーる」、気軽に遊べる無課金ガチャ引き放題の「暇つぶし専用」アプリです。このリジェクトを乗り越えてリリースにこぎつけた本作、この記事が良いと思われましたらぜひ遊んでみて下さると開発者は嬉しいです♪

iOS

Android

Gigabitのつくったゲームたち


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