2012-03-15 13 views
1

私はコマンドラインツールに依存するアプリケーションを実装しています。
これは、いくつかのプリセットがあるためです。
コマンドラインツールは、アプリケーションに必要なすべての初期情報を含むsqliteファイルを作成します(明示的には、アプリケーションに初期データを追加するツール)。Xcode 4 - 初期設定のコマンドラインターゲット

問題は、デバッグ中はすべて正常に動作しますが、リリースビルドを行うとエラーが発生します。
最初のエラーは、私のメインアプリがターゲットの依存関係などのコマンドラインツールを持っていたので、これはだった

target specifies product type 'com.apple.product-type.tool', but there's no such 
product type for the 'iphoneos' platform" 

ました。 私はターゲットの依存関係を削除することによって、これを解決し、実行スクリプトのフェーズにビルドを追加しました:

#Build the initial setup target 
xcodebuild -target InitialCoreDataSetup -sdk macosx -configuration $CONFIGURATION 

#Run initializing data target to get current sqlite file 
cd "$CONFIGURATION_BUILD_DIR" 
cd .. 
cd "$CONFIGURATION" 
current_dir=$(pwd) 
./InitialCoreDataSetup "$current_dir" "$SRCROOT" "$CONFIGURATION" 

今の問題は、私は次のエラーを取得することを、次のとおりです。私は絶対にないアイデアを持っていない

=== BUILD NATIVE TARGET InitialCoreDataSetup OF PROJECT XY WITH CONFIGURATION AdHoc  === 
Check dependencies 
SDK Configuration Error: no wrapper for product type @ 

をこれを修正する方法。 提案がありますか?

あなたのアプリに最初のsqliteファイルをどのように提供しますか?

ありがとうございました!
EDIT 現時点では私のアプリのターゲットのビルドフェーズは次のとおりです。 enter image description here

答えて

1

はところで:

#Build the initial setup target 
export DYLD_FRAMEWORK_PATH="$SYMROOT/Debug" 
/usr/bin/env -i xcodebuild -target InitialCoreDataSetup -sdk "macosx" -configuration Debug OBJROOT="$SYMROOT/Debug" SYMROOT="$SYMROOT" 
echo "$SYMROOT/Debug" 
#Run initializing data target to get current sqlite file 
cd "$SYMROOT/Debug" 
./InitialCoreDataSetup "$SYMROOT/Debug" "$SRCROOT" "$CONFIGURATION" 

トリックはあなたが少しを指定することができ、オーケーDEBUGモード

+0

'/ usr/bin/env -i'を使用してxcodebuildを呼び出すと、このメッセージが表示されます:' SDK Configuration Error:製品タイプのラッパーがありません。ありがとう – Berik

0

私はあなたが使用してsqlliteファイルを生成することができるはずですので、Xcodeのは、このような状況でビルドを行うせることを示唆しています他のビルド・ルールが実行される前にスクリプトを実行するルールを作成します。

enter image description here

+0

に常にinitialCoreDataSetupを開始することです:私は最終的に以下の行で作業することになりました?私は、主なアプリケーションターゲットからInitialCoreDataSetupターゲットへのターゲット依存関係が必要です。そして、ターゲット依存性を介してxcodeによって構築されたターゲットを実行するために、上記のスクリプトを使用してアプリケーションターゲットにビルドルールを追加しますか? – Alexander

+0

ビルド・フェーズ(ビルド・フェーズはあなたの答えにあるように)は、私が提案したビルド・ルールよりも良い場所だと思います。このようにしてもまだ問題が発生していますか?問題は何ですか? – Sam

関連する問題