🎉

【個人開発】ストアの審査に引っかかった事例7選とその解決例

2023/12/04に公開

Qiita Advent Calendar 2023 個人開発 4日目の記事です。

今年、Forumbook という掲示板ビューアのアプリをリリースしました。
5chを始めとした有名フォーラムに対応しています。
https://forumbook-f883e.web.app/guides/download/
Windows、Mac、iOS、Androidのマルチプラットフォームでリリースしたわけですが、それぞれのストアで審査に引っかかることもありました。
この記事では、審査に引っかかった例とその解決例を7個ほど挙げていこうと思います。

Microsoft Store (Windows)

10.1.1.3 Inaccurate Representation

Images in the Metadata can't show other UI than Windows UI.
You may want to review the "Metadata is key" section of our App Quality
guidelines here: https://msdn.microsoft.com/en-us/library/windows/apps/mt652261.aspx
Found in: Screenshots

リリース時の記事 でも少し書いた事例です。
スクリーンショットに含まれる画像にWindows UIではないUIが含まれてるよと言われています。手間を惜しんで他のストアの画像をそのまま提出してしまったのが原因です。修正後に再提出で通過。

10.5.1 Personal Information - Privacy Policy

The privacy policy link did not resolve to a valid webpage, is inaccessible, or is blocked in China. Please fix the link or remove the product from the market.
Provided URL: https://forumbook-f883e.web.app/about/privacy/

プライバシーポリシーのリンクが有効なウェブページに解決されていないか、アクセスできないか、中国でブロックされています。リンクを修正するか、製品を市場から削除してください。(DeepL)

これがわからなかった‥‥😅
まず「有効なウェブページで解決」の意味がよくわからなかった。プライバシーポリシーのリンクは正常だし、文字化け等もなかったので何が問題なのかがわからない。アップルの審査でも何も言われてなかったし‥‥。検索しても何も出てこないし‥‥。おまけに中国でブロックと言われても確認のしようもないし‥‥困った😟
困ったのでサポートに問い合わせたら、全く同じ文面をそのまま返されたのでまた困った。
しょうがないのでプライバシーポリシーの内容を見直すことにした。最初は英語圏のプライバシーポリシー生成サイトから出力された文面を使っていたけど、それを自前で書き直した(日本語で)
確かに、最初の文章にはWindows版には含まれないAdmobや、アプリ全体に含まれないAnalitycsに関する記述があったので、それらを適切な形に修正して再提出したら通過した🎉

結局、プライバシーポリシーの内容が問題だったということだろうか‥‥😕 (だったらアクセスできないとか中国でブロックとか何なのよと思うけど)

10.1.2.10 Functionality

The product's primary functions are not useable. Application launches its process, but fails to launch any interface. The issue was observed on multiple devices running Windows build 22621.2428.
Observed On: Dell Latitude 5400, Dell Inspiron 14 5000
Tested on: Dell Latitude 5400, Dell Inspiron 14 5000
Steps to reproduce:

  1. Launch the app.
  2. Observe the lack of an interface coming up.
  3. Open the Task Manager.
  4. Observe the "Forumbook" process on the list of active programs.

Tested devices: Dell Latitude 5400

まともに起動しねーぞと怒られています。これは自分が設定をミスったままビルドして提出してしまったからです。修正して再提出で通過。

App Store (MacOS)

Guideline 2.3.10 - Performance - Accurate Metadata

We noticed that your submission includes information about third-party platforms that may not be relevant for App Store users.

Specifically, your app includes the Android - Google Play store option within the binary. (see screenshots)

Referencing third-party platforms in your app or its metadata is generally not relevant for App Store users, who are focused on the experiences offered by their current device.

アプリ内にGooglePlayStoreに関するデータが含まれているのはダメと言われています。
この時はアプリ内のダイアログでドキュメントサイトのページを開く箇所があって、「よくある質問」などがアプリ内で見れるようになっていたのですが、ここからレビュアーがサイト内のどこかのリンクを押して「インストール」のページを開いたらしく、そこにあったGooglePlayが目に止まったようでした。
いやでも他のアプリでもドキュメントサイトへのリンクなんて普通にあるし、そのサイトにはAndroid版へのリンクもあるはずだよな‥‥と考え、他のアプリをチェックしてみたら大体がブラウザで開く仕様になっていることに気づいた。
というわけで、こちらもアプリ内ではなくブラウザで開く仕様にして再提出したら通過。

Guideline 2.1 - Performance

We discovered one or more bugs in your app when reviewed on Mac running macOS 14.

Opening 2ch, returns a 403 error. (Please see attached screenshot)

Opening 2chとはおーぷん2chのことです。このときは外部アプリからアクセスすると403エラーが返ってきてました(今もですが)
しかし403エラーを何とかしろと言われても、「自分のサイトじゃないんで無理っす」なんて言ったらこっちの立場が悪くなりそうだったので、初期対応サイトからおーぷん2chを除外した状態で再提出したら通過した。(サイトは後から追加できます)

App Store (iOS)

Guideline 2.1 - Performance - App Completeness

We discovered one or more bugs in your app.

Specifically, when we tapped on three dots button was not responsive. Please review the details below and complete the next steps.

Review device details:

  • Device type: iPad
  • OS version: iOS 16.6.1

反応しないボタンがあるよと言われています。
バグではなくて作りかけだっただけですが、次のバージョンでちゃんと仕上げて再提出で通過。

Guideline 1.2 - Safety - User Generated Content

Your app enables users to post content anonymously but does not have the proper precautions in place.

Next Steps

To resolve this issue, please revise your app to implement all of the following precautions:

  • Require that users agree to terms (EULA) and these terms must make it clear that there is no tolerance for objectionable content or abusive users
  • A method for filtering objectionable content
  • A mechanism for users to flag objectionable content
  • A mechanism for users to block abusive users
  • A mechanism for users to immediately remove posts from the feed
  • Developer must provide contact information in the app itself, giving users the ability to report inappropriate activity

あなたのアプリでは、ユーザーが匿名でコンテンツを投稿することができますが、適切な予防措置が講じられていません。

この問題を解決するために、以下のすべての予防措置を実施するようにアプリを修正してください:

  • ユーザーが規約(EULA)に同意することを義務付け、その規約には、好ましくないコンテンツや虐待的なユーザーを許容しないことを明確にすること。
  • 好ましくないコンテンツをフィルタリングする方法
  • ユーザーが好ましくないコンテンツにフラグを立てる仕組み
  • 罵倒するユーザーをブロックする仕組み
  • ユーザーが即座にフィードから投稿を削除できる仕組み
  • デベロッパーは、アプリ自体に連絡先情報を提供し、ユーザーが不適切な行為を報告できるようにしなければならない。
    (DeepL)

公開から1ヶ月ちょっと経ってから来ました、これ。
確かにユーザーがコンテンツを投稿できるアプリは大体「非表示・ブロック・報告」があるなあと感じてたので、いずれ来るだろうな、と。
ただ、5chでは(外部アプリからは)どうやったって無理な仕組みもあるんですが、やはりそこも正直にレビュアーに伝えたところでこちらが不利になるだけだろう思ったので、可能な限り要求を満たす形で実装を目指すことにした。

とりあえず、規約への同意はアプリ起動時に表示する形で実装。

  • 好ましくないコンテンツのフィルタリング
  • 好ましくないコンテンツにフラグを立てる

似たような機能に見えますが、要は任意のキーワードが含まれるコンテンツ(スレタイやレス)をわかりやすくするとか非表示にするとかでいいだろうと解釈。ユーザーが自由にキーワードを入力できて、そのキーワードでコンテンツをフィルタリングする仕組みで対応した。

  • ユーザーが即座にフィードから投稿を削除できる仕組み

これは削除というか、上の機能を使って非表示にする形で実装。ユーザーが「非表示」を選択したら、スレタイや投稿者のIDを非表示キーワードに突っ込んでます。

  • 罵倒するユーザーをブロックする仕組み

アカウント制ではないので、一般的な「ユーザーのブロック」は不可能です。
しかし、必要とされてるのは「ブロック」を選択したらその投稿者のすべてのレスが非表示になることだと思うので、IDが出る板なら投稿者のIDを非表示キーワードに登録することでブロックということにしました。IDが出ない板はどうしようもないので、投稿の本文を非表示キーワードに登録してレスを非表示にします。もうこれで許してという感じです。

  • アプリ自体に連絡先情報を提供し、ユーザーが不適切な行為を報告できるようにしなければならない。

これはいわゆる「お問い合わせ」ではなく、報告フォームのことを言ってるんだろうと思うんですが、流石に外部アプリでそれをやるのはちょっと無理があるので、各サービスの報告ページをブラウザで表示する形で実装。

以上のことをやったら審査を通過できました🎉

Play Store (Android)

なし!

今のところ、Androidは審査で何かを言われたことはないです。
ただ、本当にちゃんと審査してるんだろうか‥‥と思うところもあって、Windows版と同様にこちらのミスでまともに起動しないビルドを提出してしまったんですが、ストアに掲載されてしまいました🙃
それ以来、クローズドテストで確認してから製品版をリリースすることにしてます。

まとめ

Microsoft Storeのプライバシーポリシーの件だけはよくわからなかったんですが、それを除けば概ね理解できる指摘が多かったと思います。ユーザー目線で考えれば403を何とかしてくれよと思うでしょうし、アカウント制でなくても不快なユーザーはブロックしたいでしょうし。そういった指摘に正面から答えることができたとは言えませんが、可能であれば適切な形に修正するのが望ましいのは確かです(今回は無理でした)

お読みいただきありがとうございました。
よかったらアプリもどうぞー。

(最初はFlutterのアドベンドカレンダーで予約してたけど、これFlutter関係ないなって思ったので個人開発に移動したっす)

Discussion