"Lite"と "pro"バージョンのアプリケーションを簡単に作成するために、Xcodeで複数のターゲットをビルドしようとしています。理論的には、これは素晴らしいですし、自分のコードで使用するためにGCC_PREPROCESSOR_DEFINITIONS
に定義を渡すことができます。Xcodeの複数のターゲット:「シミュレートされたアプリケーションの起動に失敗しました:不明なエラー」
-
:ここ
- は、アプリのプロ/ liteのバージョンに基づいて動作を変更するために、ソースファイルに#ifdefのMYAPP_PRO追加(およびアプリケーションが期待通りに動作することを確認)メニューから>
New Target...
- 選択
Project
、及び「ココアタッチアプリケーション」(名前のMyAppPro」を選びます) - 新しいターゲット設定を編集する; 012を追加するユーザー定義の設定値を "MYAPP_PRO"(引用符なし)に設定します。
- 有効なターゲットを "MyAppPro"に設定します。ビルドして実行します。
Failed to launch simulated application: Unknown error.
- コピーのInfo.plistからすべての設定が-のInfo.plistをMyAppProと
Failed to launch simulated application: Unknown error.
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;
};
あなたは正しいですか?ソースファイルをターゲットに追加する方法がわかりませんが、既存のターゲットを複製して名前/設定を調整することは完全に機能しました。ありがとう! – pix0r