1

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

提前感谢您的帮助!
编辑 目前我的应用程序目标的构建阶段如下: 在此处输入图像描述

4

2 回答 2

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"

诀窍是始终在调试模式下启动 initialCoreDataSetup

于 2012-07-12T09:41:58.723 回答
0

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

在此处输入图像描述

于 2012-03-15T13:23:54.387 回答