netfox

A lightweight, one line setup, iOS / OSX network debugging library!

Subscribe to updates I use netfox


Statistics on netfox

Number of watchers on Github 2065
Number of open issues 10
Average time to close an issue 24 days
Main language Swift
Average time to merge a PR about 8 hours
Open pull requests 29+
Closed pull requests 1+
Last commit 7 months ago
Repo Created almost 3 years ago
Repo Last Updated 7 months ago
Size 7.82 MB
Organization / Authorkasketis
Latest Release1.10.3
Contributors11
Page Updated
Do you use netfox? Leave a review!
View open issues (10)
View netfox activity
View on github
Latest Open Source Launches
Trendy new open source projects in your inbox! View examples

Subscribe to our mailing list

Evaluating netfox for your project? Score Explanation
Commits Score (?)
Issues & PR Score (?)

Netfox: A lightweight, one line setup, network debugging library

Version CI Status Cocoapods Compatible Carthage Compatible Platform License

Netfox provides a quick look on all executed network requests performed by your iOS or OSX app. It grabs all requests - of course yours, requests from 3rd party libraries (such as AFNetworking, Alamofire or else), UIWebViews, and more

Very useful and handy for network related issues and bugs

Supports Swift 3.2 and 4 - bridged also for Objective-C

Feel free to contribute :)

Overview

Installation

CocoaPods

CocoaPods is a dependency manager for Cocoa projects. To integrate netfox into your Xcode project using CocoaPods, specify it in your Podfile:

use_frameworks!
pod 'netfox'

Carthage

Carthage is a decentralized dependency manager that builds your dependencies and provides you with binary frameworks. To integrate netfox into your Xcode project using Carthage, specify it in your Cartfile:

github "kasketis/netfox"

Manually

If you prefer not to use dependency managers, you can integrate netfox into your project manually.

You can do it by copying the netfox folder in your project (make sure that Create groups option is selected)

The above folder contains 3 subfolders: Core, iOS and OSX.

  • If you target on iOS keep only Core and iOS folders (remove OSX folder)
  • If you target on OSX keep only Core and OSX folders (remove iOS folder)

Start

Swift

// AppDelegate
import netfox_ios
NFX.sharedInstance().start() // in didFinishLaunchingWithOptions:

Objective-C

// AppDelegate
[[NFX sharedInstance] start]; // in didFinishLaunchingWithOptions:

Just simple as that!

Note: Please wrap the above line with

#if DEBUG
. . .
#endif

to prevent librarys execution on your production app.

You can add the DEBUG symbol with the -DDEBUG entry. Set it in the Swift Compiler - Custom Flags section -> Other Swift Flags line in projects Build Settings

Usage

Just shake your device and check what's going right or wrong! Shake again and go back to your app!

Stop

Call

NFX.sharedInstance().stop()

to stop netfox and clear all saved data. If you stop netfox its view will not be displayed until you call start method again.

If you want to just enable/disable logging functionality or clear the data please use the buttons provided in the settings view

Custom gestures

By default the library registers for shake motion. If you want to open the logs with a different gesture, add the following line after the installation one

NFX.sharedInstance().setGesture(.custom)

Then you can use

NFX.sharedInstance().show()

when you want to show the logs and

NFX.sharedInstance().hide()

when you want to hide them.

Prevent logging for specific URLs

Use the following method to prevent requests for specified URL from being logged. You can ignore as many URLs as you want

NFX.sharedInstance().ignoreURL("the_url")

Tip: You can use the url of the host (for example https://www.github.com) to ignore all paths of it

Features

  • Search: You can easily search among requests via
    • Request url: github.com, .gr, or whatever you want
    • Request method: GET, POST, etc
    • Response type: Like json, xml, html, image and more
  • Sharing: You can share your log via email with backend devs or someone who can help.
    • Simple log option includes only request/response headers and small request/response bodies (when applicable)
    • Full log option includes request/response headers and request/response bodies (as attachments)
  • Filtering: Select what types of responses (JSON/XML/HTML/Image/Other) you want to see
  • Enable/disable logging within the app
  • Clear data within the app
  • Statistics: Check cool things like average response time, total response size and more for your selected types of responses
  • Info: Check your IP address, your app version and build number and other things within the app
  • More to come.. ;)

Other

  • If you experience any problems with request logging please check this. If you don't get your answer please open an issue
  • Due to the large size of request/response bodies, the library provides disk storage for low memory overhead

Thanks

Special thanks to tbaranes and vincedev for their contribution on OSX library!

Licence

All source code is licensed under MIT License. Which means you could do virtually anything with the code. I will appreciate it very much if you keep an attribution where appropriate.

netfox open issues Ask a question     (View All Issues)
  • about 2 years Issue with Carthage
  • about 2 years SSL pinning support
  • over 2 years Crash in NFXProtocol's startLoading()
  • over 2 years UIWebView does not behave as expected when netfox is enabled.
  • over 2 years Something wrong if there is oauth implemented in project
  • over 2 years Caching broken with Netfox protocol
  • over 2 years Large increase in memory usage with netfox enabled
  • almost 3 years Remote Logging
  • almost 3 years Proper casing in project naming
  • almost 3 years Using Netfox without modal presentation
  • almost 3 years Netfox & Parse: can't see my Parse requests
  • almost 3 years New features
  • almost 3 years Doesn't work with AFNetworking 2.6.1
  • almost 3 years KFSwiftImageLoader
netfox open pull requests (View All Pulls)
  • Post notifications for opening/closing NetFox
  • FIX: Fix crasher found via Crashlytics.
  • Correct the spelling of CocoaPods in README
  • OSX Support
  • fix possible crashes in NFXProtocol
  • add hide button
  • Public exposing of NFXListController
  • Making it possible to manually save requests and responses
  • Update to swift 2.2 syntax
  • Xcode 7.3 / Swift 2.2 Update
  • Added done button
  • Added all logs to be merged into one session.log file
  • Swift 3.0 Port for Issue 63 (https://github.com/kasketis/netfox/issue…
  • Updated Year in License File
  • Fix macOS podspec
  • add Swift 2.3 compatibility
  • Swift 3 support
  • Support Swfit 2.3
  • Updating to Swift 3
  • Syntax updates to conform Swift 2.3
  • Updated the workaround to Swift 3
  • Fix warning on NFXGenericController.swift
  • `NFX.sharedInstance()` accessibility in ObjC when mixed with Swift 4
  • Read request body fix using HTTPBodyStream
  • NSURLRequest httpBodyStream
  • Issue #62 suggested fix
  • Исправлен крэш
  • Realtime updates
  • Added curl functionality
netfox list of languages used
Other projects in Swift