Androidの古いアプリをメンテナンスしたらREAD_PHONE_STATEが勝手に追加された問題

私は技術的な部分には正直あんまり興味ないし詳しくもないのでブログにはそんなに書かないんですが、それにしたって丸二日ぐらい無駄にしたので今日は書きます。

TimeMachineのメンテをしたんですよ。もう2年も前に作ったゲームですが、気が向いた時にメンテしているので最新の端末でもきちんと動作します。そんなTimeMachineをまたメンテして延命を図っていたわけです。

そしたら表題の問題ですよ。いきなりREAD_PHONE_STATEとかいうPermissionを勝手に追加しよる。AndroidManifestにも記載してないのに。そしてGooglePlayで警告されちゃう。なんか新しいPermissionを要求してるぞと。お客さん、嫌がっちゃうかもよ、と。

仕方ないから原因を調べるじゃないですか。最初にいきついたのは、「Android Build toolが新しいとそうなる」という話。

UnityでAndroidをビルドしたときに勝手にREAD_PHONE_STATEが付与される - Qiita

なるほど、minSdkVersionとtargetSdkVersionを指定してあげればいいのね?簡単じゃん。

・・・直らないんですけど。

TimeMachineは中身がかなりグズグズなのでAndroidManifestが3つもあるのですが、そのすべてを編集しても直らない。何回やってもREAD_PHONE_STATEが追加されちゃう。もうこの時点で1日終わっちゃってるんですけど、引き続き調べた結果「新しいAdmobを入れてるとそうなる」というありがたくない情報が。

12.0.0 release requests READ_PHONE_STATE permission (update 12.0.1 question) - Google グループ

マジかよドキュメントにそんなこと書いてある?よく読んでないだけ?

不要なのについてるということは、無理やり消してしまってもいいはず・・・ということで無理やり消す方法を調べて実行。検索「お前を消す方法」。ちがう。

【Android】アプリに不要なパーミッションが追加されているときの対処法 – 株式会社シーポイントラボ | 浜松のシステム開発会社

・・・今度は広告が表示されないんですけど!

さらに詳しく調べた結果、動画広告はダメだけどインターステイシャルはイケるとかなんとか書いてあるブログを見つけたりしたんですが、私のケースではなにも表示されませんでした。

正直言ってAdmobがそれほど利益になっているというわけでもないので、もう消しちゃってもいいような気はするのですが、課金アイテム「広告オフ」を購入してくださったお客様がいる限りそう簡単には広告は消せません。ううーむ。

結論。

諦める。

ここまでほぼ2日かかった結論としては虚しいですが、READ_PHONE_STATEを消すのを諦めるのが1番都合がいいようです。プライバシーポリシーもバッチリ記載してるし、もういいよね・・・。っていうか疲れたし。

そんなわけでREAD_PHONE_STATEとかいう魔物に大量の時間と精神力を食われた話でした。個人開発者あるある。

こういうの辛いから有料アプリにしてやろうかと思わなくもないです。

じぃーまでした。