コマンドラインツールに依存するアプリを実装しています。
これは、実行するプリセットがいくつかあるためです。
コマンドラインツールは、アプリに必要なすべての初期情報を含むsqliteファイルを作成する役割を果たします(明確に言えば、アプリに初期データを追加するための単なるツールです)。
問題は、デバッグ中にすべてが正常に機能することですが、リリースビルドを実行すると、いくつかのエラーが発生します。
最初のエラーは
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ファイルをどのように提供しますか?
助けてくれてありがとう!
編集
現時点では、私のアプリターゲットのビルドフェーズは次のとおりです。