プロジェクト内に2つのアプリを同居させる方法

ほとんど同じソースから出来ているが別のアプリがある場合、プロジェクトに 新規ターゲットで 別アプリを追加する事が出来ます。 その作成手順は:

1. 新規ターゲットで 別アプリを作成する

別アプリのターゲットと info.plist が 出来ます。

2. 別アプリ用の AppDelegate の作成

別アプリ用 Application Delegate クラスを作成します。この際ターゲットを別アプリに設定して下さい。
元々あるAppDelegate.h, AppDelegate.m の内容をコピーし 別アプリ用クラス名、起動時に動かす ViewContoroller を変更します。

3. 別アプリ用の起動画面(ViewController)の作成

別アプリ用の起動時画面を 新規ファイル→ UIViewController subclass (With XIB) で作成します。この際ターゲットを別アプリに設定して下さい。

4. 別アプリ用 MainWindow の作成

別アプリ用 MainWindow を適当な 新規ファイル→UserInterface→Application XIB で作成します。
出来た .xib ファイルをInterfaceBuilderで開き

  • 3. で作った ViewController を追加
  • App Delegate のクラスを 1. で作った AppDelegate を設定
  • App Delegate の以下を関連付け
    • viewController を 3.で作った ViewController へ
    • window を MainWindow 上の window へ

5. 別アプリのinfo.plist を変更

起動時の画面、nib(.xib) はこの info.plist に書かれているので、 別アプリの-info.plist の Main nib file base name 項目を4.で作った 別アプリ用 MainWindow 名に変更します。

6. 別アプリ用の Prefix.pch を作成

元の_Prefix.pch をコピーして 別アプリ_Prefix.pch を作成します。 Objective-Cでけのアプリでは無くてもコンパイルできますが、C++を使っている場合はエラーになりす (ハマリました ^^;)


以下の画像は、このように作ったプロジェクトです。