Latest 1.0.1
Homepage https://github.com/stanwood/Stanwood_Debugger_iOS
License MIT
Platforms ios 10.0
Dependencies StanwoodCore, Toast-Swift
Authors

StanwoodCore framework

[Swift Version]()
[iOS 10+]()

Debugging and testing iOS applications can be quite a long task due to the nature of Software Development. StanwoodDebugger tool provides reach information on Analytics, Errors, Logging, Networking, and UITesting to simplify this process.

[Demo StanwoodDebugger]()

Table of contents

Author

Tal Zion [email protected]

Installation

pod 'StanwoodDebugger', :configurations => ['Debug'] # Make sure to only use StanwoodDebugger for development only.

Usage

#if DEBUG
import StanwoodDebugger
#endif

@UIApplicationMain
class AppDelegate: UIResponder, UIApplicationDelegate {

    var window: UIWindow?

    #if DEBUG
    lazy var debugger: StanwoodDebugger = StanwoodDebugger()
    #endif

    func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplicationLaunchOptionsKey: Any]?) -> Bool {

        #if DEBUG
        debugger.isEnabled = true
        #endif
    }
}

Other options

debugger.enabledServices: [Service] = [.logs, .errors] /// The services you would like to enable. Default is se to `allCases`
debugger.tintColor = .red /// Change the tint color
debugger.errorCodesExceptions = [4097] /// Add error code exceptions
debugger.isEnabled = true

Adding logs

Analytics

Option 1.

Set up your tracking payload:

public func payload() -> [String:String] {

    var payload: [String:String] = ["eventName": eventName]

    if let itemId = itemId {
        payload["itemId"] = itemId
    }

    if let category = category {
        payload["category"] = category
    }

    if let contentType = contentType {
        payload["contentType"] = contentType
    }

    if let screenName = screenName {
        payload["screenName"] = screenName
    }

    let dateFormatter = DateFormatter()
    dateFormatter.dateFormat = "yyyy-MM-dd'T'HH:mm:ssZ"

    payload["createdAt"] = dateFormatter.string(from: Date())

    return payload
}

Post it to:

func post(_ payload: [String:String]) {
    let notificationCentre = NotificationCenter.default
    let notification = Notification.init(name: Notification.Name(rawValue: "io.stanwood.debugger.didReceiveAnalyticsItem"), object: nil, userInfo: payload)
    notificationCentre.post(notification)
}
Option 2.

Use StanwoodAnalytics as your tracking framework

#if DEBUG
analyticsBuilder = analyticsBuilder.setDebuggerNotifications(enabled: true)
#endif

Networking

StanwoodDebugger works by default with URLSessiosn.shared and request are beeing logged for free. You can also register a custom condiguration:

let configuration = URLSessionConfiguration.waitsForConnectivity

debugger.regsiter(custom: configuration)

/// Use with URLSession || any networking libraries such as Alamofire and Moya
let session = URLSession(configuration: configuration)

Module

Error

StanwoodDebugger will log NSError by default. To add log exceptions:

debugger.errorCodesExceptions = [4097] /// Add error code exceptions

Logs

StanwoodDebugger will log print && debugPrint by default.

Configuration:

  1. Create a new Bridging-Header file and add -DEBUG suffix

logs-1

  1. Import StanwoodDebugger
@import StanwoodDebugger;

Note: Make sure to add any other imported libraries from your main header file

  1. Set Bridging-Header-DEBUG.h in the relevant configurations in the build settings.

logs-3

Crashes

StanwoodDebugger will log Signal and NSException crashes by default.

Licence

StanwoodDebugger is under MIT licence. See the LICENSE file for more info.

Changelog

A brief summary of each StanwoodDebugger release can be found in the CHANGELOG.

Latest podspec

{
    "name": "StanwoodDebugger",
    "version": "1.0.1",
    "summary": "Stanwood debugger provide live view debugging",
    "description": "Live debugger for:n    1. Analyticsn    2. Crashesn    3. Logsn    4. Networkingn    5. Errors",
    "homepage": "https://github.com/stanwood/Stanwood_Debugger_iOS",
    "license": {
        "type": "MIT",
        "file": "LICENSE"
    },
    "authors": {
        "stanwood": "[email protected]"
    },
    "source": {
        "git": "https://github.com/stanwood/Stanwood_Debugger_iOS.git",
        "tag": "1.0.1"
    },
    "swift_version": "4.2",
    "platforms": {
        "ios": "10.0"
    },
    "source_files": [
        "StanwoodDebugger/Controller/**/*",
        "StanwoodDebugger/Views/**/*",
        "StanwoodDebugger/Modules/**/*",
        "StanwoodDebugger/Model/**/*",
        "StanwoodDebugger/Protocols/**/*",
        "StanwoodDebugger/Extensions/**/*"
    ],
    "resource_bundles": {
        "StanwoodDebugger": [
            "StanwoodDebugger/Assets/*",
            "StanwoodDebugger/Resources/*",
            "StanwoodDebugger/Views/**/*.xib",
            "StanwoodDebugger/Modules/**/*.xib"
        ]
    },
    "dependencies": {
        "StanwoodCore": [
            "~> 1.4.1"
        ],
        "Toast-Swift": [
            "~> 4.0.1"
        ]
    }
}

Pin It on Pinterest

Share This