All Projects → rob2468 → Httpserverdebug

rob2468 / Httpserverdebug

Licence: mit
Debug your iOS app remotely in web browser.

Labels

Projects that are alternatives of or similar to Httpserverdebug

xr
Lightweight debug server utility for PHP.
Stars: ✭ 116 (-61.97%)
Mutual labels:  debug
Bistoury
Bistoury是去哪儿网的java应用生产问题诊断工具,提供了一站式的问题诊断方案
Stars: ✭ 3,198 (+948.52%)
Mutual labels:  debug
Pylane
An python vm injector with debug tools, based on gdb.
Stars: ✭ 282 (-7.54%)
Mutual labels:  debug
Charles-Proxy-Mobile-Guide
The mobile hackers' guide to Charles Proxy 👍
Stars: ✭ 105 (-65.57%)
Mutual labels:  debug
Xvg
🔬 debug SVG paths in the browser
Stars: ✭ 258 (-15.41%)
Mutual labels:  debug
Redux Remotedev
Redux DevTools for production (web and React Native) with a highly flexible API.
Stars: ✭ 265 (-13.11%)
Mutual labels:  debug
vscode-leetcode-cpp-debug
Debug support for LeetCode with C++
Stars: ✭ 14 (-95.41%)
Mutual labels:  debug
Tensorwatch
Debugging, monitoring and visualization for Python Machine Learning and Data Science
Stars: ✭ 3,191 (+946.23%)
Mutual labels:  debug
Debugo
一个可能有点用的 iOS 调试工具~
Stars: ✭ 258 (-15.41%)
Mutual labels:  debug
Layoutmaster
An Android Studio Plugin for ui debugging.
Stars: ✭ 278 (-8.85%)
Mutual labels:  debug
ddquery
Django Debug Query (ddquery) beautiful colored SQL statements for logging
Stars: ✭ 25 (-91.8%)
Mutual labels:  debug
Lua Debug
Lua Debug Adapter for Visual Studio Code
Stars: ✭ 254 (-16.72%)
Mutual labels:  debug
Ray
Debug with Ray to fix problems faster
Stars: ✭ 263 (-13.77%)
Mutual labels:  debug
debot
A simple Android library to create Debugging menu
Stars: ✭ 78 (-74.43%)
Mutual labels:  debug
Beagle
A smart, reliable, and highly customizable debug menu library for Android apps that supports screen recording, network activity logging, and many other useful features.
Stars: ✭ 287 (-5.9%)
Mutual labels:  debug
ignition-code-editor
Add inline code editing to your ignition page
Stars: ✭ 44 (-85.57%)
Mutual labels:  debug
Yoshi
A convenient wrapper around the UI code that is often needed for displaying debug menus.
Stars: ✭ 263 (-13.77%)
Mutual labels:  debug
Xia0lldb
LLDB python scripts for iOS arm64 reversing by xia0
Stars: ✭ 299 (-1.97%)
Mutual labels:  debug
Profiling
Was an interactive continuous Python profiler.
Stars: ✭ 2,989 (+880%)
Mutual labels:  debug
Requester
Powerful, modern HTTP/REST client built on top of the Requests library
Stars: ✭ 273 (-10.49%)
Mutual labels:  debug

HttpServerDebug (HSD)

Build Status License

中文文档

Overview

HSD offers debug utilities (exploring file system, inspecting database, etc.) with the help of http server. HSD will start http server in your device, and you can connect to the server through user agents in the local area network.

Requirements:

  • iOS 8.0 or later (armv7, armv7s or arm64)

Demo screenshot

index file explorer view debug

Integration

Packaging way

In the root directory, there is the "archive.sh" script. cd to the root directory, then bash archive.sh. This script will generate files in the "output" folder in the same directory. The "output" folder contains three kinds of files, headers, library and bundle. These are all files that needed.

HttpServerDebug utilizes some third party libraries, e.g. FMDB. "archive.sh" script will compile all source files and integrate all contents in one static library, libHttpServerDebug.a. But sometimes you may want to exclude some third party libraries if your project has already import. You can update "archive.sh". For example, if you want to remove FMDB, set FMDB_INCLUDE=0.

# Dependencies onfiguration
FMDB_INCLUDE=0            # exclude FMDB

Source code way

You can copy source code files to your project directly. Classes/ and Resources/ in the root directory contains HSD codes and resources. ThirdParties/ contains dependent libraries, and you should copy as needed.

CocoaPods way

Add following statements in your Podfile.

pod 'HttpServerDebug', '~> 0.2'

Access HSD

As HSD is started as a http server in your device, you can access it just like browsing normal websites in your favorite web browser. HSD also provides some useful server apis, you can get these apis' description from Documents/ Directory. There are several ways you can get the HSD host name.

HSD Control Pannel

HSD provides a control pannel, where you can make HSD running in the way that you want.

control pannel

Public Host Name Resolving Interface

HSD also makes the host name resolving interface, +[HSDManager resolveHostName:] used in the control pannel, public. You can call this method and display host name in your custom views.

Browse And Lookup

If you start up HSD silently, the following method is another way to access HSD.

When HSD is started, the builtin bonjour broadcasting of _http._tcp type service is also published. You can browse for instances of service type _http._tcp in domain local.. When you get the instance name, you can lookup the target hostname to contact. In the following example, we use the dns-sd tool to browse and lookup the target hostname.

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)

Manually

AS HSD runs on a http server, with your device's ip address and http server's listening port number, you can construct the complete URL.

FAQ

  1. Why does Xcode produce dupliate symbol errors. ("duplicate symbol xxx in:/xxx/libHttpServerDebug.a(xxx.o) /xxx/xxx(xxx.o) ld: xxx duplicate symbols for architecture xxx")

When your project contains some same classes, the linker produces these errors.

As HttpServerDebug imports some third party libraries, if your project has already import one, then exclude it in the "archive.sh" as described above.

  1. How to link HttpServerDebug in specific configuration?

For example, import HttpServerDebug only in Debug configuration.

  • Search HttpServerDebug Headers in Debug configuration.

    • "Build Settings -> Header Search Paths", add header searching paths for Debug configuration.
  • Link Binary With Libraries in Debug configuration.

    • "Build Settings -> Other Link Flags", add "-lHttpServerDebug" for Debug configuration.

    • "Build Settings -> Library Search Paths", add libHttpServerDebug.a searching path for Debug configuration.

  • Copy Bundle Resources in Debug configuration.

    • Add copy bundle resources script in "Build Phases -> Run Script".
if [ "${CONFIGURATION}" == "Debug" ]; then
  cp -r "${PROJECT_DIR}/HttpServerDebug.bundle" "${BUILT_PRODUCTS_DIR}/${PRODUCT_NAME}.app"
fi

Acknowledgments

CocoaHTTPServer, FLEX, Custom-Context-Menu, ZipArchive, GCDWebServer

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].