Xcode 4 - 初始设置的命令行目标

时间:2012-03-15 13:04:25

标签: ios xcode4 xcodebuild command-line-tool

我正在实现一个依赖于命令行工具的应用程序 这是因为有一些预设要做 命令行工具负责创建一个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文件?

提前感谢您的帮助!
修改 目前,我的应用目标的构建阶段如下: enter image description here

2 个答案:

答案 0 :(得分: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模式下启动initialCoreDataSetup

答案 1 :(得分:0)

我建议让Xcode在这种情况下进行构建,因为你应该能够通过使用构建规则来生成sqllite文件,以便在其他构建规则运行之前运行脚本。

enter image description here