読者です 読者をやめる 読者になる 読者になる

むらかみの雑記帳

Android とか iOS とかソフトウェア開発に関するネタ帳

targetSdkVersion を明示しないと、Google Play がタブレット端末を除外してしまう模様

Android

これまで、普通にAndroidタブレットの Google Play 上に表示されていたアプリが、最近になって非対応とみなされダウンロードできなくなる現象が出ています。どうも 5月中旬くらいに Google Play 側のロジックが変わった模様です。アプリ開発者は要注意。

具体的には、クックパッドやヤフオク、NAVITIME、LINEバブルなどが表示されなくなっています。

タブレットといっても、7インチの Nexus 7 などは問題ありません。Nenus 10、Sony Tablet S、LifeTouch L などのいわゆる xlarge なデバイスのみが対象です。

いろいろ条件を調べたのですが、スクリーンサイズでフィルタがかかっているようで、以下の条件をすべて満たしてしまうと表示されないようです。

  1. AndroidManifest.xml に targetSdkVersion が指定されておらず minSdkVersion が 8 以下、もしくは targetSdkVersion が明示されているが 8 以下。
  2. AndroidManifest.xml<supports-screens> が指定されていない、または指定されているが android:xlargeScreens が true に設定されていない。
  3. 5月中旬(?)以降に Google Play で公開またはアップデートされている。

<supports-screens> の anroid:xlargeScreens 属性は、無指定の場合は暗黙に true とみなされるようになっています。しかし、この属性は API level 9 で追加されたものなので、API level 8 の時点では存在していません。どうも、targetSdkVersion が 8 以下の場合、最近までは xlargeScreens を true とみなしていたのが、5月中旬くらいから false とみなすように変更されたのではないかと思います。

なぜ、5月中旬くらいからかというと、それより前に公開されているアプリは 1. 2. の条件を満たしていても、xlarge デバイスの Google Play に表示されるケースがあるからです。

回避方法ですが、targetSdkVersion を 9以上にあげれば良いはずです。<supports-screens> の android:xlargeScreens も明示的に true にするのが推奨。

なお、Google のタブレット対応のガイドラインでは targetSdkVersion を 14 以上にすることになっています。ただし、targetSdkVersion を 11 以上に上げると、いわゆる互換メニュー(ステータスバーに出るメニューボタン)が出なくなるので要注意。ActionBar 使ってるアプリは関係ないので、心置きなく 14 以上にあげて OK なはずです。