今回、新アプリをリリースする際に iPhoneのみ対応、iPadには非対応という形を試してみました。
これにより、iPhoneにはインストールできるがiPadにはインストールできない、という形が実現できました。
まず注意点です
App レビューガイドライン(App Store レビューガイドラインから名称が変わりました!)では、iPadを対象から除外することは避けるように求められています。
2.4 ハードウェアの互換性
2.4.1ユーザーがアプリを最大限に活用できるように、iPhone向けのアプリは可能な限りiPadでも実行できるようにしてください。
つまり、iPadを除外する正当な理由がない場合はアプリ審査リジェクト対象となる可能性があります。ちなみに私のアプリにはiPadを除外する理由があったためかアプリ審査で指摘されることはありませんでした。
対応方法
Appleのプラットフォームでは、デバイスに対応しているアプリだけをユーザがダウンロードできるように UIRequiredDeviceCapabilitiesキーが用意されています。
Xcodeでの開発時にプロパティリストにUIRequiredDeviceCapabilitiesキーを追加し、そのValueとして "telephony"を投入します。
これにより電話アプリであることを宣言でき、結果として電話機能のないデバイス(iPadやiPod touchなど)にはインストールができなくなります。
簡単ですね。
新規アプリにしか適応できない
アプリを一度リリースしてしまうと、UIRequiredDeviceCapabilities キーに対するvalueの追加はできなくなります。その理由は次のように説明されています。
アプリのアップデートを提出する場合、従来の機能要件を維持するか、要件を緩和することのみ許可されています。新しい要件を含むアップデートでは、以前にアプリをダウンロードした一部のユーザーがアップデートを実行できなくなる可能性があるためです。
つまり、このキーは初回リリース時に設定しておく必要があります。
最後に
上記の情報は私が夢で見た内容をテキトーに描いたものです。真実ではありません。