我正在尝试将CocoaHTTPServer添加到我的项目中。我在途中遇到了很多问题 - 我的问题(将CocoaHTTPServer添加到一个项目中(并使其工作))仍然存在 - 但我还包括我在路上遇到的错误和解决方案供其他人参考。
首先,我查看了有关添加框架的教程,但它看起来不像框架。
接下来,我右键单击我的项目(在左侧边栏上),然后手动添加“添加文件”。我按照SimpleHTTPServer示例,但得到了“cocoa / cocoa.h”未找到错误。我四处搜索,发现Cocoa适用于mac而不是iOS。但是CocoaHTTPServer描述也讨论了iOS应用程序,所以我刚刚删除了samples文件夹(如果我记得的话,错误来自DynamicHTTPServer示例。
然后我收到“未找到libxml / parser.h的词法或预处理器问题”错误。我尝试将其添加为框架,但这不起作用。我在adding libxml to the header search path(最后)找到了这个教程,但我最终得到了46个“Apple Mach-O Linker Error _CFHTTPMessage ...”错误,我决定在这里提出我的问题。我尝试了this answer但得到了很多Apple Mach-O链接器错误
我添加了CFNetwork和安全框架(project => build phases => link binary with libraries),并留下了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
(仔细看 - 它在错误消息中没有大写)。当我用Google搜索时 - 其他可能的原因可能是缺少框架。
现在它编译。当我运行示例应用程序时,我得到“服务器在X端口上启动”,当我转到localhost:X
时,我得到欢迎/成功屏幕。当我在我的项目上做同样的事情时,我仍然得到“服务器在X端口上启动”消息,但当我转到localhost:X
时,浏览器会发出“无法连接”消息。 XCode控制台中没有错误。
[httpServer start:&error]
没有错误,httpServer.isRunning
为真。
那么将CocoaHTTPServer添加到我的项目中的最佳方法是什么?在干净的设置方面 - 例如,当我检查样本iPhone project时,我没有看到添加libxml的任何混乱步骤 - 我甚至根本没有看到libxml。并且在配置所有内容以使其实际工作和提供文件方面。现在,我怀疑可能有一些项目设置需要启用才能真正成为服务器。
答案 0 :(得分:2)
在添加外部文件时,您是否已将项目检查为“构建目标”?