【发布时间】: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