我正在尝试将CocoaHTTPServer添加到我的项目中。我在路上遇到了很多问题——我的问题(将 CocoaHTTPServer 添加到项目中(并让它工作))仍然存在——但我也将我在路上遇到的错误和解决方案包括在内,以供其他人参考。
首先,我查看了有关添加框架的教程,但它看起来不像框架。
接下来我右键单击我的项目(在左侧边栏上),并使用“添加文件”手动添加它。我按照SimpleHTTPServer示例进行操作,但出现“cocoa/cocoa.h”未找到错误。我四处搜索,发现 Cocoa 是用于 mac 而不是 iOS。但是 CocoaHTTPServer 描述也谈到了 iOS 应用程序,所以我只是删除了示例文件夹(如果我记得,错误来自DynamicHTTPServer示例。
然后我收到“找不到词汇或预处理器问题 libxml/parser.h”错误。我尝试将其添加为框架,但这不起作用。我找到了关于将 libxml 添加到标头搜索路径的本教程(最后),但我最终遇到了 46 个“Apple Mach-O Linker Error _CFHTTPMessage ...”错误,我决定在这里问我的问题。我尝试了这个答案,但得到了许多 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 是英特尔的,而不是 iDevices 上的 ARM 架构。然而,真正的问题是我拼错了NSLog
(仔细看——错误消息中没有大写)。当我用谷歌搜索时 - 其他可能的原因可能是缺少框架。
现在它编译了。当我运行示例应用程序时,我得到“服务器在 X 端口上启动”,当我去时,localhost:X
我得到欢迎/成功屏幕。当我在我的项目上做同样的事情时,我仍然会收到“服务器在 X 端口上启动”消息,但是当我转到localhost:X
浏览器时会给出“无法连接”消息。XCode 控制台中没有错误。
没有错误,[httpServer start:&error]
并且httpServer.isRunning
是真实的。
那么将 CocoaHTTPServer 添加到我的项目中的最佳方法是什么?就干净的设置而言 - 例如,当我检查示例iPhone 项目时,我没有看到任何添加 libxml 的混乱步骤 - 我什至在任何地方都看不到 libxml。在配置一切方面,使其真正工作并提供文件。现在,我怀疑可能需要启用一些项目设置才能使其真正成为服务器。