【问题标题】:How to build command line tool in iphone project如何在 iphone 项目中构建命令行工具
【发布时间】:2010-07-05 02:33:03
【问题描述】:

我刚开始在 Xcode 中编程,我正在尝试编写一个 iphone 应用程序。我从一个简单的 Iphone 开发模板开始,并从那里拿走了它。现在我想构建一个命令行工具(用于转换数据),它重用我 iphone 项目中的一些类。我设法添加了一个新目标“转换”,将适当的源代码链接到目标,使目标依赖于主目标。到目前为止一切都很好,但它不会生成正确的可执行文件,它只会构建无法从命令行运行的 build/Debug-iphonesimulator/convert(我猜是因为它没有与正确的库链接)。

~/Documents/XCode/SQLiteTutorial> ./build/Debug-iphonesimulator/convert
dyld: Symbol not found: _OBJC_CLASS_$_NSCharacterSet
  Referenced from: /Users/marc/Documents/XCode/SQLiteTutorial/./build/Debug-iphonesimulator/convert
  Expected in: /System/Library/Frameworks/Foundation.framework/Versions/C/Foundation
 in /Users/marc/Documents/XCode/SQLiteTutorial/./build/Debug-iphonesimulator/convert
Trace/BPT trap

这完全可以通过 xcode 实现吗?我不确定你需要什么样的额外信息来回答这个问题,所以如果有的话,请告诉我要提供什么。

亲切的问候, 马克·范·肯彭。

【问题讨论】:

    标签: iphone xcode


    【解决方案1】:

    如果您只是完全创建了一个不同的项目,然后将要重用的相关类拖入其中,而不是复制它们,而只是使用对它们的引用,那会怎样?当您将类文件拖到组和文件窗格中时,不要选择“将项目复制到目标文件夹”选项。这样一来,您的 CL 项目始终使用主 iPhone 的最新版本。

    不过,将所有这些都放在一个项目中无疑会更干净。

    【讨论】:

    • 谢谢,我尝试了这个解决方案,它有效。正如您所说,这不是最理想的情况,但现在可以了。仍然很好奇其他人是如何解决这个问题的,在更大的项目中这一定是个问题。
    • 这就是我为我的 Mac / iPhone 跨平台项目所做的,因为我还没有找到一种简单的方法来在一个项目中为两个平台构建不同的目标。我建议观看有关 Xcode 4 的 WWDC 2010 视频,因为(无需通过过多讨论来破坏 NDA)它更易于管理。
    • 我也做了同样的事,但它不起作用。我只需要使用一个类文件来完成在我的命令文件中链接的任务,所以我只需要引用那个类文件但是当我构建项目时它有很多错误,因为我引用的类文件使用了很多iphone主项目的底层核心类,我是否必须对iphone主项目中的所有文件进行引用?
    【解决方案2】:

    iPhone SDK 不正式支持构建命令行工具。 iPhone 不运行命令行工具;至少,不是没有越狱。

    【讨论】:

    • 对不起,它不是要在 iphone 上运行,而是要在我的开发机器上运行。它是一种转换数据以包含在 iphone 应用程序中的工具。所以我想要的是在同一个项目中构建一个 iPhone 应用程序和一个 Mac OS X 命令行应用程序,或者任何其他允许我能够重用 iPhone 应用程序中代表数据的类的配置。
    • 有道理。请更新您的问题并忽略我的回答:-)。
    猜你喜欢
    • 1970-01-01
    • 2011-08-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-01-22
    • 1970-01-01
    • 1970-01-01
    • 2017-01-20
    相关资源
    最近更新 更多