Xcode 4 - цель командной строки с начальной настройкой - PullRequest
1 голос
/ 15 марта 2012

Я реализую приложение, которое зависит от инструмента командной строки.
Это потому, что есть несколько предустановок.
Инструмент командной строки отвечает за создание файла 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?

Заранее спасибо за любую помощь!
EDIT На данный момент этапы сборки моего целевого приложения следующие: enter image description here

Ответы [ 2 ]

1 голос
/ 12 июля 2012

Кстати: я наконец-то понял, что работает по следующей строке:

#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"

Хитрость заключается в том, чтобы запуск initialCoreDataSetup всегда находился в режиме отладки

0 голосов
/ 15 марта 2012

Я бы предложил разрешить Xcode выполнять сборку в этой ситуации, поскольку вы должны иметь возможность сгенерировать файл sqllite, используя правило сборки для запуска сценария до запуска других правил сборки.

enter image description here

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...