移転しました。

約3秒後に自動的にリダイレクトします。

Chrome拡張機能のminimum_chrome_versionを安易に設定してはいけない

最近Chrome拡張機能を触ってる id:mstssk です。

つい先日、Chrome拡張機能の審査でハマったのでのでそのまとめです。

3行まとめ

  • manifest.jsonminimum_chrome_versionフィールドには、ちゃんと機能上必要なAPIのサポートバージョンに準じた値を設定しよう。またはいっそ設定しない。
  • 2020年11月発表のポリシーの改定の際に、おそらく審査システムも変更され、minimum_chrome_versionが最近すぎると即審査が不承認にされるようになった。
  • 安易に「最新のChrome 87でだけ動作確認したから"87"にしておこう。古いChromeで動かされても困るし」とかやってはいけない。

何があったか

ここしばらくChrome拡張機能を仕事でいじっています。 その中でminimum_chrome_versionを安易に指定していたためにハマりました。

minimum_chrome_versionとは

Chrome拡張機能のメタ情報を管理するmanifest.jsonファイルにはminimum_chrome_versionというフィールドがあります。 このフィールドは必須ではないですが、バージョン番号を設定しておくと「このバージョン未満では動作しないのでインストール不可」という制御が行なえます。

developer.chrome.com developer.chrome.com

そこで「動作確認してない古いChromeで動かされても困るから、とりあえず今の最新verにしておこう」と考えて、開発当時のChromeが83だったので"minimum_chrome_version": "83" とmanifest.jsonに設定しました。

しばらくは、それでChromeウェブストアの審査は何事もなく通り、ちょくちょくアップデートを上げる際も問題なく審査が通っていました。

突然の不承認の嵐

11月中旬に少し大きめの変更を審査に出したときのことです。 「説明に表記されている機能を提供していない。」という理由で初めて不承認となりました。

そんなばかな!? 大きめの変更とはいえUIの更新が主で機能は変わってないぞ!?

アプリストアの類で審査に落ちる事自体はよくある話なのですが、この時は変更内容と指摘事項が乖離していて混乱しました。
たまたま厳しいレビュアーにあたってしまったか、ログイン必須なものなので公の機能を提供できていないと判断されたか…など考えたものの、不承認となったのはしょうがないので怪しいところを直して再提出をしました。
UIの動線を変えたり、実装上の都合で付けていたpermissionを外して何とか代替実装にしたり、といった事をしましたが、その後3連続で不承認となりました。

サポート問い合わせと拍子抜け

提出物を詳しく調べたところ、ポリシーに準拠していることがわかりました。

サポートに異議申し立てを送信したところ、そんな内容の返信がすんなり返ってきました。
なんじゃそりゃと思いつつ、返信に従って同じものを再度審査に送信し直したら、無事審査を通過しました。 *1

たぶん審査システムが変更された?

その後もサポートとやり取りしたところ*2、審査側で「システムが"This extension requires Google Chrome version 83 or greater. Could not load manifest."というエラーで不承認にしたがその後詳細に調べたところChrome 83以降で動作することを確認した」といった返信が来ました。

そうしてやっと合点がいきました。
ちょうど不承認をくらったあたりで、Chromeウェブストアのポリシー改定が発表されており、ストアのダッシュボード上の入力項目が増えたりしていました。

blog.chromium.org

あくまで推測ですが、ポリシー改定のタイミングで審査システムも変更が入ったのではないでしょうか。 それが審査システムの不具合なのか、それともある程度古いバージョンもサポートすることを念頭に置いたものだから新しめのバージョンでは不承認となってしまのか、詳しいことはわかりません。

しかし、この後minimum_chrome_versionフィールドの値を機能上必要なAPIが実装されたバージョンまで落としてから審査に出した際は、すんなり審査が通りました。

参考

*1:実際は、再送信したらまたそれがrejectされて、また異議申し立てしたら"今度はこっちで通過させておきます"的な返事が来てやっと通ったりした。

*2:その次のリリースでまた不承認になってまた異議申し立てしたの意