【问题标题】:How to add CocoaHTTPServer to an iOS project on XCode 4如何在 XCode 4 上将 CocoaHTTPServer 添加到 iOS 项目
【发布时间】:2013-06-11 06:33:51
【问题描述】:

我正在尝试将CocoaHTTPServer 添加到我的项目中。我在路上遇到了很多问题——我的问题(将 CocoaHTTPServer 添加到项目中(并让它工作))仍然存在——但我也将我在路上遇到的错误和解决方案包括在内,以供其他人参考。

首先我查看了有关添加框架的教程,但它看起来不像是一个框架。

接下来我右键单击我的项目(在左侧边栏上),并使用“添加文件”手动添加它。我按照SimpleHTTPServer 示例进行操作,但出现“cocoa/cocoa.h”未找到错误。我四处搜索,发现 Cocoa 是用于 mac 而不是 iOS。但是 CocoaHTTPServer 描述也谈到了 iOS 应用程序,所以我只是删除了示例文件夹(如果我记得,错误来自 DynamicHTTPServer 示例。

然后我收到“未找到词汇或预处理器问题 libxml/parser.h”错误。我尝试将其添加为框架,但这不起作用。我在adding libxml to the header search path(最后)上找到了本教程,但我最终遇到了 46 个“Apple Mach-O Linker Error _CFHTTPMessage ...”错误,我决定在这里问我的问题。我尝试了this answer,但遇到了许多 Apple Mach-O 链接器错误

我添加了 CFNetwork 和安全框架(项目 => 构建阶段 => 将二进制文件与库链接),但出现 2 个错误:

ld: warning: path '/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator6.1.sdk/usr/lib/libxml2.dylib' following -F not a directory
Undefined symbols for architecture i386:
  "_NSlog", referenced from:
      -[AppDelegate application:didFinishLaunchingWithOptions:] in AppDelegate.o
ld: symbol(s) not found for architecture i386
clang: error: linker command failed with exit code 1 (use -v to see invocation)

我看到 i386 是 intel,而不是 iDevices 上的 ARM 架构。然而,真正的问题是我拼错了NSLog(仔细看——错误消息中没有大写)。当我用谷歌搜索时 - 其他可能的原因可能是缺少框架。

现在它可以编译了。当我运行示例应用程序时,我得到“服务器在 X 端口上启动”,当我转到 localhost:X 时,我得到欢迎/成功屏幕。当我对我的项目执行相同操作时,我仍然会收到“服务器在 X 端口上启动”消息,但是当我转到 localhost:X 时,浏览器会给出“无法连接”消息。 XCode 控制台中没有错误。

[httpServer start:&error] 没有错误,httpServer.isRunning 为 true。


那么将 CocoaHTTPServer 添加到我的项目中的最佳方法是什么?就干净的设置而言 - 例如,当我检查示例 iPhone project 时,我没有看到任何添加 libxml 的杂乱步骤 - 我什至在任何地方都看不到 libxml。在配置一切方面,使其真正工作并提供文件。现在,我怀疑可能需要启用一些项目设置才能使其真正成为服务器。

【问题讨论】:

    标签: ios xcode xcode4 cocoahttpserver


    【解决方案1】:

    在添加外部文件时,您是否将您的项目检查为“构建目标”?

    【讨论】:

    • 另外,您是否已将 CFNetwork 框架添加到您的项目中?
    • 其实是的,这就是我开始做的(导入示例项目,并比较构建设置)。现在错误减少了很多(也导入了安全性),我会在我到达下一个块后通知你
    • 用我目前的进度更新了问题。你知道从开始(克隆 git repo)到完成设置它的说明吗?编辑:天哪,最后一个错误只是 NSLog/NSlog 的拼写错误。但由于它看起来像其他 Apple-Mach-O 错误,我认为它与 CocoaHTTPServer 有关。一旦我确认了其他一些事情,我会更新
    • 现在,我收到“服务器在端口 X 上启动”消息,但是当我转到 localhost:X 时,我收到无法连接消息。当我在示例应用程序上启动服务器时,我得到相同的“服务器启动”消息并且它确实连接
    • 嗯,我回答了这个问题,因为我知道如何解决链接器错误。我没有使用 CocoaHTTPServer 的经验。对不起。
    猜你喜欢
    • 2011-07-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-10-20
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多