HttpServerDebug 0.2.2

HttpServerDebug 0.2.2

HttpServerDebug维护。




HttpServerDebug (HSD)

Build Status License

中文文档

概述

HSD借助HTTP服务器提供调试工具(如文件系统探索、数据库检查等)。HSD将在您的设备上启动HTTP服务器,您可以通过局域网内的用户代理连接到该服务器。

演示截图

index
file explorer
database inspect
view debug
console log

访问HSD

因为HSD作为HTTP服务器在设备上启动,您可以用您的首选网页浏览器像浏览普通网站一样访问它。HSD还提供了一些有用的服务器API,您可以从Documents/目录中获取这些API的说明。您可以通过几种方法获取HSD主机名。

HSD控制面板

HSD提供了一个控制面板,在那里您可以按照您的方式运行HSD。

control pannel

公共主机名解析接口

HSF也将控制面板中使用的公共主机名解析接口+[HSDManager resolveHostName:]公开。您可以调用此方法并在自定义视图中显示主机名。

浏览和查找

如果您静默启动HSF,以下方法是另一种访问HSF的方式。

当HSF启动时,还会发布内置的Bonjour广播_http._tcp类型服务。您可以在local.域中浏览_http._tcp类型服务的实例。当您获得实例名称后,您可以查找要联系的目标主机名。在以下示例中,我们使用dns-sd工具来浏览和查找目标主机名。

chenjundeMacBook-Pro:~ chenjun$ dns-sd -B _http
Browsing for _http._tcp
DATE: ---Wed 04 Apr 2018---
10:10:14.738  ...STARTING...
Timestamp     A/R    Flags  if Domain               Service Type         Instance Name
10:10:14.738  Add        2  13 local.               _http._tcp.          陈军的iPhone 7

chenjundeMacBook-Pro:~ chenjun$ dns-sd -L "陈军的iPhone 7" _http
Lookup 陈军的iPhone 7._http._tcp.local
DATE: ---Wed 04 Apr 2018---
10:10:45.715  ...STARTING...
10:10:45.879  陈军的iPhone\0327._http._tcp.local. can be reached at chenjundeiPhone-7.local.:5555 (interface 13)

手动组装

作为HSF运行在http服务器上,可以使用您的设备的IP地址和HTTP服务器监听端口号来构造完整的URL。

打包

在根目录中,有一个名为"archive.sh"的脚本。切换到根目录,然后执行bash archive.sh。此脚本将在同一目录的"output"文件夹中生成文件。该"output"文件夹包含三种类型的文件,头文件、库和捆绑包。这些都是必需的文件。

集成HttpServerDebug后,您可能需要在项目中添加libxml2。在"构建相位 -> 链接二进制与库"中添加libxml2。

自定义打包

HttpServerDebug使用了一些第三方库,包括CocoaAsyncSocket、CocoaLumberjack、CocoaHttpServer和FMDB。"archive.sh" 脚本将编译所有源文件并将所有内容集成到一个静态库中,即libHttpServerDebug.a。但有时候如果您已经在项目中引入了某个第三方库,您可能希望排除它。您可以更新"archive.sh"。例如,如果您想移除FMDB,请设置FMDB_INCLUDE=0

# Dependencies onfiguration
FMDB_INCLUDE=1
CocoaLumberjack_INCLUDE=1
CocoaAsyncSocket_INCLUDE=1
CocoaHttpServer_INCLUDE=1

常见问题解答

  1. 为什么Xcode会产生重复符号错误。("在/xxx/libHttpServerDebug.a(xxx.o) /xxx/xxx(xxx.o) 中存在重复符号 xxx,架构 xxx")

当您的项目包含一些相同的类时,链接器会产生这些错误。

由于HttpServerDebug导入了一些第三方库,如果您的项目中已经导入了某个库,那么请如上所述在"archive.sh"中排除它。

  1. 如何将HttpServerDebug链接到特定配置中?

例如,仅在Debug配置中导入HttpServerDebug。

  • 在Debug配置中搜索HttpServerDebug头文件。

    • “构建设置 > 头文件搜索路径”,为Debug配置添加头文件搜索路径。
  • 在Debug配置中链接二进制文件与库。

    • “构建设置 > 其他链接标志”,为Debug配置添加"-lHttpServerDebug"。

    • “构建设置 > 库搜索路径”,为Debug配置添加libHttpServerDebug.a的搜索路径。

  • 在Debug配置中复制Bundle资源。

    • 在“构建阶段 -> 运行脚本”中添加复制Bundle资源的脚本。
if [ "${CONFIGURATION}" == "Debug" ]; then
  cp -r "${PROJECT_DIR}/HttpServerDebug.bundle" "${BUILT_PRODUCTS_DIR}/${PRODUCT_NAME}.app"
fi

鸣谢

CocoaHTTPServer

FLEX