2009-04-04 9 views
1

"Lite"と "pro"バージョンのアプリケーションを簡単に作成するために、Xcodeで複数のターゲットをビルドしようとしています。理論的には、これは素晴らしいですし、自分のコードで使用するためにGCC_PREPROCESSOR_DEFINITIONSに定義を渡すことができます。Xcodeの複数のターゲット:「シミュレートされたアプリケーションの起動に失敗しました:不明なエラー」

    :ここ

    Failed to launch simulated application: Unknown error.が、私は追加のターゲットを作成するために使用している単純なプロセスです。しかし、私は実際にそれがシミュレータで第二のターゲットを起動しようとするとエラーが原因で動作するようになって問題を抱えています

  1. は、アプリのプロ/ liteのバージョンに基づいて動作を変更するために、ソースファイルに#ifdefのMYAPP_PRO追加(およびアプリケーションが期待通りに動作することを確認)メニューから>New Target...
  2. 選択Project、及び「ココアタッチアプリケーション」(名前のMyAppPro」を選びます)
  3. 新しいターゲット設定を編集する; 012を追加するユーザー定義の設定値を "MYAPP_PRO"(引用符なし)に設定します。
  4. 有効なターゲットを "MyAppPro"に設定します。ビルドして実行します。
  5. Failed to launch simulated application: Unknown error.
  6. コピーのInfo.plistからすべての設定が-のInfo.plistをMyAppProと
  7. Failed to launch simulated application: Unknown error.

もう一度をしようとするビルドがうまく完了しますが、私は、シミュレータで実行することができませんでしだ。

.xcodeprojディレクトリにproject.pbxprojを編集すると、2つのターゲット定義のビルド設定にはいくつかの重要な違いがあることがわかります。私は手動でファイルを編集しようとしましたが、後でXcodeで読み込むことができなかったため、何か間違っていたに違いありません。

オリジナルターゲットの「デバッグ」ビルド設定:

 buildSettings = { 
      ALWAYS_SEARCH_USER_PATHS = YES; 
      ARCHS = "$(ARCHS_STANDARD_32_BIT)"; 
      "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; 
      GCC_C_LANGUAGE_STANDARD = c99; 
      GCC_WARN_ABOUT_RETURN_TYPE = YES; 
      GCC_WARN_UNUSED_VARIABLE = YES; 
      ONLY_ACTIVE_ARCH = YES; 
      PREBINDING = NO; 
      SDKROOT = iphoneos2.2.1; 
     }; 

Thew新しいMyAppProターゲットの「デバッグ」ビルド設定を:

 buildSettings = { 
      ALWAYS_SEARCH_USER_PATHS = NO; 
      CODE_SIGN_IDENTITY = "iPhone Developer"; 
      COPY_PHASE_STRIP = NO; 
      GCC_DYNAMIC_NO_PIC = NO; 
      GCC_OPTIMIZATION_LEVEL = 0; 
      GCC_PRECOMPILE_PREFIX_HEADER = YES; 
      GCC_PREFIX_HEADER = "$(SYSTEM_LIBRARY_DIR)/Frameworks/UIKit.framework/Headers/UIKit.h"; 
      INFOPLIST_FILE = "MyAppPro-Info.plist"; 
      INSTALL_PATH = "$(HOME)/Applications"; 
      OTHER_LDFLAGS = (
       "-framework", 
       Foundation, 
       "-framework", 
       UIKit, 
      ); 
      PREBINDING = NO; 
      PRODUCT_NAME = MyAppPro; 
      SDKROOT = iphoneos2.2.1; 
     }; 

答えて

5

あなたが実際にこれまでにソースファイルを追加するかどうかを言うことはありませんでしたターゲット。新しいターゲットとは異なり(新しいプロジェクトとは異なり)、ソースファイルテンプレートはありません。自分で追加する必要があります。だから、シミュレータはあなたに「あなたは正常に構築されましたが、実行するものはありません」と言っているかもしれません。

+2

あなたは正しいですか?ソースファイルをターゲットに追加する方法がわかりませんが、既存のターゲットを複製して名前/設定を調整することは完全に機能しました。ありがとう! – pix0r

0

ターゲットを複製します。私はちょうど同じミスを犯し、私がやったことを実現しました。「新しいターゲット」の作成は空白のスレートです(ただし、すぐにはわかりませんが)。

関連する問題