見出し画像

Google Play の審査に3回落ちて、公開まで84日かかった話

8月1日の朝4時1分。メールが1通届いていました。

「あなたのアップデートは公開中です」

素っ気ない一文です。原文は「Your update is live」。

5月7日に最初のクローズドテストを提出してから、86日目でした。その間に、製品版の申請は3回落ちています。

同じところで止まっている個人開発者の方は、たぶん日本中にいます。何が起きて、最後に何が効いたのか。記録が残っている範囲で、正確に書きます。

2026年8月1日 4時01分、公開を知らせるメール

出そうとしていたもの

ブラウザで遊べるボードゲームを、Androidアプリにしようとしていました。

リバースターゴという、リバーシと囲碁を組み合わせた星型37マスのゲームです。40年前に紙で作ったものを、AI時代になってからアプリとして完成させました。その経緯は前の記事に書いています。

作り方はいわゆるTWA(Trusted Web Activity)です。すでに動いているWebアプリを、PWABuilder というツールでAndroidアプリの形に包む。中身はブラウザで動いているものと同じで、外側だけAndroidアプリになります。

コードを一から書き直す必要がないので、この方法自体は簡単です。難しかったのは、そこから先でした。


86日の記録

残っているメールとPlay Consoleの送信履歴から、時系列を起こしました。

  • 5月7日・5月12日 クローズドテストを提出

  • 5月下旬 製品版アクセスを申請 → 却下

  • 6月中旬 製品版アクセスを申請 → 却下

  • 7月9日 製品版アクセスを申請 → 却下

  • 7月22日 クローズドテストを提出し直す

  • 7月下旬 製品版アクセスを申請(4回目)

  • 7月30日 23:26 製品版アクセス承認

  • 7月31日 07:35 製品版としてリリース提出(177か国)

  • 8月1日 04:01 Google Play で公開

最初の提出から承認まで84日。公開までは86日でした。

テスターは14人。家族や知り合いに頭を下げて、インストールしてもらいました。


却下メールに書いてあったこと

3回とも、返ってきたのはほぼ同じ文面でした。

Google Play の製品版にアクセスするには、さらにテストを行う必要があります

Google Play からの却下メールより

理由として挙げられていたのは、次の2点です。

  • クローズドテストにテスターが関与しなかった

  • フィードバックを収集し、アップデートで対応するというベストプラクティスを実践しなかった

最初に読んだときは、正直、意味が分かりませんでした。人数は集めたし、期間も待った。それなのに「テスターが関与しなかった」と言われる。

あとから理解したのは、Googleが見ているのはインストールした人数そのものではなく、テスターが実際にアプリを起動して使い続けた形跡と、それを受けて開発者がアプリを更新した形跡だということです。

インストールして終わっている人が多ければ、人数を満たしていても「テストが行われた」とは見なされない。ここが最初の壁でした。

やったことは地味です。テスターに「入れるだけでなく、何回か遊んでみてほしい」と改めてお願いし直し、もらった感想を反映したアップデートをテスト版に出す。それを記録が残る形で繰り返しました。


つまずき その1:assetlinks.json の指紋が違っていた

ここからは技術的な話です。同じ作り方をしている方には、たぶんそのまま使えます。

TWAには、「このアプリと、このWebサイトは同じ持ち主です」と証明する仕組みがあります。サイト側に assetlinks.json というファイルを置き、そこにアプリの署名の指紋(SHA-256)を書いておく。これが一致しないと、アプリを開いたときに上部にブラウザのアドレスバーが残ってしまい、アプリらしく見えません。

PWABuilder が出力するzipには、この assetlinks.json が最初から同梱されています。だから私は、それをそのままサイトに置いていました。

これが効きませんでした。

理由は、書かれている指紋が「アップロード鍵」のものだからです。

Google Play には、開発者がアップロードした後、Google側が別の鍵(アプリ署名鍵)で署名し直してから配信する仕組みがあります。つまり利用者の端末に届くアプリの指紋は、手元でzipに入っていた指紋とは別物です。

正解は、Play Console の「アプリの整合性」から確認できる、アプリ署名鍵証明書のSHA-256を書くこと。アップロード鍵とアプリ署名鍵の両方を並べて登録しておくのが、いちばん安全です。

同梱されているファイルは、あくまで雛形でした。


つまずき その2:GitHub Pages は .well-known を配信しない

そしてもうひとつ、これと重なっていた問題があります。

assetlinks.json は、サイトの .well-known/ というフォルダに置く決まりです。私のサイトは GitHub Pages で公開していました。

置いても、404が返ってきました。

GitHub Pages は内部で Jekyll という仕組みを通してサイトを組み立てるのですが、これはドットから始まるフォルダを「公開しないもの」として最初から除外します。.well-known/ はまさにドットから始まります。置いたのに、そもそも配信されていなかったわけです。

解決は一行です。サイトのルートに .nojekyll という空のファイルを置く。これでJekyllの処理が止まり、.well-known がそのまま配信されるようになります。

厄介だったのは、この2つが同時に起きていたことでした。

指紋を直しても、ファイルが配信されていないから効かない。配信を直しても、指紋が違うから効かない。片方だけ直しても症状が変わらないので、「直したのに効かない → じゃあ原因は別だ」と、何度も見当違いの方向に進みました。

うまくいったか確かめるには、自分のドメインの後ろに /.well-known/assetlinks.json を付けて、ブラウザで直接開いてみるのが早いです。中身がそのまま表示されれば配信はできています。

私の場合はこうなります。実際に開けます。

https://play.reverstargo.com/.well-known/assetlinks.json


署名キーは3か所に置いた

途中で知って青くなったことがあります。

アプリの署名キーを失うと、そのアプリは二度と更新できません。同じアプリとして出し直すこともできない。作り直しになります。

パソコンの中に1つだけ、という状態で数週間過ごしていました。今はローカル、OneDrive、Googleドライブの3か所に置いてあります。

まだの方は、この記事を閉じる前に済ませてしまってください。数分で終わります。


そして公開

4回目の申請の結果が届いたのは、7月30日の23時26分でした。承認。

翌朝すぐ製品版として提出し、8月1日の午前4時1分に公開。177か国で配信されています。

ReverStarGo公開画面

公開から3日たった今の数字も書いておきます。ダウンロードは10件台、Play Console 上のアクティブユーザーは12。

華々しくはありません。ただ、84日間ずっと「まだ出せません」だった数字が、ようやく動き始めたところです。


記憶は「4回」、記録は「3回」だった

この記事を書くにあたって、メールと送信履歴を全部たどり直しました。

書き始めるまで、私は「4回落ちた」と記憶していました。実際は3回でした。

体感としては4回落ちている。それくらい長く感じた、というだけの話ですが、書くときに記録を確認してよかったと思います。落ちた回数を1回多く書いても誰も困りませんが、こういう小さな盛りが積み重なると、書いたもの全体が信用されなくなります。


同じ壁の前にいる方へ

私がつまずいた順に並べます。

  1. テスターには、インストールだけでなく実際に何度か起動してもらう。人数を満たすことがゴールではありません

  2. もらった感想を反映したアップデートを、テスト期間中に出しておく

  3. assetlinks.json の指紋は、PWABuilder 同梱のものではなく、Play Console のアプリ署名鍵証明書のSHA-256を使う(アップロード鍵と両方書くのが安全)

  4. GitHub Pages を使っているなら、ルートに .nojekyll を置く

  5. 自分のドメインの後ろに /.well-known/assetlinks.json を付けてブラウザで直接開き、中身が見えることを確認する(私の例:https://play.reverstargo.com/.well-known/assetlinks.json)

  6. 署名キーを、今すぐ3か所にバックアップする

3と4は、どちらか片方だけ直しても症状が変わりません。両方いっぺんに直してください。私はここで一番時間を溶かしました。


最後に

60歳になってから、40年前に構想したゲームをアプリにしています。プログラミングは専門ではありません。

84日は長かったですが、止まっていた原因は結局、空のファイル1つと、コピーする文字列の取り違えでした。誰かの84日が1日でも短くなればと思って書いています。

ゲームそのものの話は、こちらに書いています。


第1回:40年前に構想したボードゲームをAI時代に完成させたら、作者がAIに勝てなくなった話
https://note.com/reverstargo/n/n1d5e6bb2f39a

第2回:オセロが打てる人なら3分で始められる、リバースターゴのルール解説
https://note.com/reverstargo/n/ndccdc64d93cf

第4回:盤を半分に縮めたら、ゲームは浅くなるのか。AI30万局で確かめた
https://note.com/reverstargo/n/n2313efb31a5b

第5回:読者にコメントをもらってから10日で、その人に追い抜かれた話
https://note.com/reverstargo/n/na900cb184e82

いいなと思ったら応援しよう!