ユニバーサルiPhone/iPadアプリ(iPhoneのみから移行)を作成しましたが、将来のバージョンでは、iOS4のみの機能に大幅に切り替える予定です。
アプリの次のアップデートで、iPhoneバージョンのみをアップデートできますか?
iPadはiOS3.2を実行しているため、コードは両方を処理する必要があります。
if ([[UIDevice currentDevice].systemVersion isEqualToString:@"4.0"]) {
[self doOs4Stuff];
} else {
[self doOs3Stuff];
}
4.0固有のAPIの使用には注意する必要がありますが、NSClassFromString()古いOSバージョンでクラッシュしないようにするために、のようなトリックでクラスをロードします。
私の例では、より堅牢なバージョンチェックを使用することもできます。たとえば、文字列を解析して、メジャーバージョンが「4」か「3」かをテストできます。
両方のアプリケーションは1つのバイナリにバンドルされているため、更新する必要があります。ただし、条件付きコーディングを使用すると(たとえばif !(UIUserInterfaceIdiom() == UIUserInterfaceIdiomPad) {、OS3.1.3以前のようにiPhone/ iPod Touchを常にチェックすることに注意してください。何も返されません)、iPadのバージョンのみが異なるようにすることができます。
逆にしてユニバーサルにする場合は、プロジェクトとターゲットの設定に移動し、[ターゲットデバイスエントリ]をiPhoneまたはiPadに変更します。ターゲットをアップグレードするオプションが再び表示されます。