iOSデバイスの機能をUIRequiredDeviceCapabilitiesを使って調査 | HMDT Blog

iOSデバイスの機能をUIRequiredDeviceCapabilitiesを使って調査


iOSアプリでは、アプリの情報をInfo.plistというファイルに記述する。ここにはいろんな情報を書けるんだけど、その中に「どのデバイスでこのアプリが使用可能か?」ということを表すものがある。UIRequiredDeviceCapabilitiesというキーに指定する。

ここでの指定は、デバイスのモデル名を直接書くのではなく、どんな能力を持つデバイスをサポートするか、ということを使う。たとえば、電話機能があるとか、カメラがあるとか、GPSがあるとか、っていう感じのやつがある。指定できるキーの一覧は、”Information Property List Key Reference“で定義されている。

ということでデバイスモデル名からは独立した形で指定するんだけど、とはいっても実際にどのデバイスにインストール可能なのか知りたいよねぇ。ということで、調べてみた。手持ちのデバイスをつないで、UIRequiredDeviceCapabilitiesの値を設定してインストールできるかどうか実験した。

iPhone 4 (5.0) iPhone 3GS (5.0) iPhone 3G (4.2.1) iPod touch 4th (5.0) iPod touch 3rd (5.0) iPod touch 2nd (4.2.1) iPad 2 3G (5.0) iPad 2 WiFi (5.0) iPad WiFi (5.0)
telephony
wifi
sms
still-camera
auto-focus-camera
front-facing-camera
camera-flash
video-camera
accelerometer
gyroscope
location-services
gps
magnetometer
gamekit
microphone
opengles-1
opengles-2
armv6
armv7
peer-peer
bluetooth-le

こんな感じ。iPhone 4SとiPod touch 5thは、まだ入手していないので実験できなかった。iPod touch 1stは、iOS 3.0をビルドできる環境がなかったのでこれも実験できず。

この表を漫然と見ても、直感的に分かりにくいよね。ということで、これをベン図にしてみた。こんな感じ。

どうよ?少しは分かりやすくなったかな。

作ってて思ったのは、iPhoneの世代とiPod touchの世代は、微妙にかみ合っていないこと。iPod touchはiPhoneの機能を少し遅れくらいでとりこんでいる。

あと、iPhone 3Gはgamekitに対応していないのがちょっと意外だった。iPod touch 2ndは対応しているのに。これは、Bluetoothを持っているかいないかというのが効いているんだと思う。Bluetoothがないとpeer-peerができないので。

iPadはWiFiモデルでもmagnetometerを持っているのもちょっと驚きだった。GPSなしだとちょっと無駄な気もするのだが。

この図を見ていると、iOSデバイスがどういう風にハードウェアを拡張してきたかが分かるね。

追記:コメントの方で、iTunes Connect Developer GuideのAppendixに載っている、っていう情報をいただきました。ありがとうございます。そんなところにあったとは気づかなかったすよ。

    • Wolfard
    • 2011年 10月27日

    iPad Wifiでコンパスがあるのは、一応WifiによるGPSモドキがあるからかなと思います。少なくとも現時点で実用に値するかはともかく。

      • mkino
      • 2011年 10月27日

      それを言うと、iPod touchもWiFiによるGPSモドキが使えるんですよね。iPod touchには入れないでiPadには入っているのは、なんか理由があるのかも。

    • K
    • 2011年 10月27日

    4Sはまだ載っていませんが。

    iTunes Connect Developer Guide
    Appendix C: Device Compatibility Matrix

      • mkino
      • 2011年 10月27日

      そんなところにありましたか。気づきませんでした。
      いま確かめたら、iPhone 4Sも載ってました。
      自分で確かめたのも、楽しかったからいいですけど。

  1. 2011年 10月27日