iPhone6が発売されて画面サイズがどんどん縦長になっている中、
旧デバイスのiPhone3Gにまで完全対応させるのは難しくなってきていますね。

最新デバイス向けに最適なレイアウトにすると3Gでは画面が切れてしまい、
3Gに合わせると最新デバイスで余白だらけになってしまう・・・。

旧デバイスを非対応ということに出来れば良いのですが、
Appleはそれを許可していないため、3Gで画面が切れてしまうとアプリが却下されてしまいます。

この件の対処方法としては、ストーリーボードをiPhone3G用の場合だけ
別に分けるという方法があります。

以下に手順をまとめましたので、ご参考にしてみて下さい。

1.ストーリーボードを選択し、File > Duplicate…をクリックします。
image01

2.ファイル名は「Storyboard_3」としてSaveをクリックします。
スクリーンショット 2014-11-13 17.05.55

3.Main.storyboardとは別にもう1つストーリーボードファイルが作成されます。
これがiPhone3G用のストーリーボードになります。
スクリーンショット 2014-11-13 17.27.03

このストーリーボードをクリックして、プレビュー機能で確認しながら
iPhone3G(3.5-inch)に最適表示になるようにレイアウトを調整します。

[プレビュー機能の使い方はこちら]
http://xn--iphone-uo4e6oqfp797b208bwzvcom2a.com/?p=307

4.iPhone3G用のストーリーボードが出来たら、
アプリ起動時にデバイスを自動判別し
iPhone3Gだった場合に上記ストーリーボードを適用させる、
という処理をAppDelegate.mに記述します。

AppDelegate.mに以下のメソッドがありますが、

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
    // Override point for customization after application launch.
    return YES;
}

これを以下のように書き換えます。

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
    // Override point for customization after application launch.

    // デバイスを判別してストーリーボードを適用する
    UIStoryboard *storyboard;
    NSString *storyBoardName;
    
    // 機種名の取得
    NSString *modelName = [[UIDevice currentDevice] model];

    storyBoardName = @"Main";

    if (![modelName hasPrefix:@"iPad"]) {
        // スクリーンサイズを取得
        CGRect r = [[UIScreen mainScreen] bounds];
        if (r.size.height == 320 || r.size.height == 480) {
            storyBoardName = @"Storyboard_3";
        }
    }
    storyboard = [UIStoryboard storyboardWithName:storyBoardName bundle:nil];
    
    // 画面の生成
    UIViewController *mainViewController = [storyboard instantiateInitialViewController];
    self.window = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]];
    self.window.rootViewController = mainViewController;
    [self.window makeKeyAndVisible];

    return YES;
}

これで、iPhone3Gで実行された場合に自動的に
専用のストーリーボードが適用されるようになります。

iPhoneアプリを作成する際に必要となる
アプリアイコンと起動画面(スプラッシュ画面)のサイズをまとめておきました。

新しいデバイスが出ることで高解像度になったり、画面サイズが大きくなったりして
様々なパターンが存在していますが、

iPhone5向けのアプリを作るのであれば、最低限ピンク色の画像だけ準備すればOKです。

iPhoneサイズ一覧
※クリックで拡大します。

設定の仕方などは講座の中でご説明していきます。