🚀 iOS Debugging Tool
Clone or download
Latest commit ca3fee7 Nov 13, 2018
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
CocoaDebug no message Nov 10, 2018
Example_Objc.xcodeproj fix some errors Nov 10, 2018
Example_Objc no message Nov 10, 2018
Example_ObjcTests bugs fixes Jul 8, 2018
Example_Swift.xcodeproj fix some errors Nov 10, 2018
Example_Swift new feature Oct 26, 2018
Example_SwiftTests bugs fixes Jul 8, 2018
RevealServer.framework import RevealServer Sep 9, 2018
Sources atomic Nov 13, 2018
pic logo Jul 31, 2018
.gitattributes .gitattributes Jul 7, 2018
.gitignore revert ci Mar 14, 2018
.travis.yml no message Oct 21, 2018
CocoaDebug.podspec update CocoaDebug.podspec Oct 26, 2018
LICENSE commit license Jan 15, 2018
README.md readme Nov 11, 2018

README.md

logo
Travis CI Build Status
Codacy Codacy Badge
Codecov codecov
Frameworks Carthage Compatible CocoaPods Compatible
Languages Languages
Platform Platform
Licence License MIT

Introduction

example

  • Shake to hide or show the black bubble. (support both device and simulator)

  • Long press the black bubble to show UIDebuggingInformationOverlay. (Apple's Private API, support iOS 10/11/12)

  • Application memory usage and FPS.

  • List all print() and NSLog() messages which have been written by developer in Xcode. (optional)

  • List of all the network requests sent by the application. (optional)

  • List crash errors. (optional)

  • Shake device or simulator to share network details via email or copy to clipboard when you are in the Network Details page.

  • Copy logs. (long press the text, then select all or select copy)

  • Search logs by keyword.

  • List application and device informations, including: version, build, bundle name, bundle id, screen resolution, device, iOS version

  • List all sandbox folders and files, supporting to preview and edit.

Installation

CocoaPods

platform :ios, '8.0'
use_frameworks!

target 'YourTargetName' do
    pod 'CocoaDebug', :configurations => ['Debug']
end

Carthage

github "CocoaDebug/CocoaDebug"

WARNING: Don't submit .ipa to AppStore which has been linked with the CocoaDebug.framework. This Integration Guide outline a way to use build configurations to isolate linking the framework to Debug builds only.

Usage

Swift

//Step 1.
#if DEBUG
    import CocoaDebug
#endif

//Step 2.
#if DEBUG
    CocoaDebug.enable()
#endif

//Step 3.
public func print<T>(file: String = #file, function: String = #function, line: Int = #line, _ message: T, color: UIColor = .white) {
    #if DEBUG
        swiftLog(file, function, line, message, color)
    #endif
}

Objective-C

//Step 1.
#ifdef DEBUG
    @import CocoaDebug;
#endif

//Step 2.
#ifdef DEBUG
    [CocoaDebug enable];
#endif

//Step 3.
#ifdef DEBUG
    #define NSLog(fmt, ...) [CocoaDebug objcLog:[[NSString stringWithUTF8String:__FILE__] lastPathComponent] :NSStringFromSelector(_cmd) :__LINE__ :(fmt, ##__VA_ARGS__) :[UIColor whiteColor]]
#else
    #define NSLog(fmt, ...) nil
#endif

Please check Example_Swift.xcodeproj and Example_Objc.xcodeproj for more advanced usage.

NOTE: Be careful with Other Swift Flags & Preprocessor Macros when using Swift & Objective-C in one project. You can refer to here.

Parameters

When you initialize CocoaDebug, you can customize the following parameter values before CocoaDebug.enable().

  • serverURL - If the crawled URLs contain server URL ,set these URLs bold font to be marked. not mark when this value is nil. default value is nil.

  • ignoredURLs - Set the URLs which should not crawled, ignoring case, crawl all URLs when the value is nil. default value is nil.

  • onlyURLs - Set the URLs which are only crawled, ignoring case, crawl all URLs when the value is nil. default value is nil.

  • tabBarControllers - Set controllers to be added as child controllers of UITabBarController. default value is nil.

  • logMaxCount - The maximum count of logs which CocoaDebug display. default value is 500.

  • emailToRecipients - Set the initial recipients to include in the email’s “To” field when share via email. default value is nil.

  • emailCcRecipients - Set the initial recipients to include in the email’s “Cc” field when share via email. default value is nil.

  • mainColor - Set the main color with hexadecimal format. default value is #42d459.

  • disableLogMonitoring - Whether to disable the monitoring of Xcode logs in app. default value is false.

  • disableNetworkMonitoring - Whether to disable the monitoring of networks in app. default value is false.

  • recordCrash - Whether to allow the recording of crash logs in app. default value is false.

TODO

Thanks

Special thanks to remirobert.

License

CocoaDebug is released under the MIT license.