Debugging is the process of finding and resolving defects or problems within a computer program that prevent correct operation of computer software or a system. Tool that can help you to perform debugging on iOS system is CocoaDebug . This tool is very helpful to perform debugging and find a bugs on system to fix it.
Introduction

- 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()andNSLog()messages which have been written by developer in Xcode. - List of all the network requests sent by the application.
- List crash errors.
- 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.
- List HTML logs, including
console.log(),console.debug(),console.warn(),console.error(),console. info(). (support bothWKWebViewandUIWebView). - Support
JSONand Google’sProtocol buffers
Installation
CocoaPods
target ‘YourTargetName’ do pod ‘CocoaDebug’, :configurations => [‘Debug’] end
Carthage
github “CocoaDebug/CocoaDebug”
Framework
WARNING: Don’t submit
.ipato AppStore which has been linked with theCocoaDebug.framework. This Integration Guide outline a way to use build configurations to isolate linking the framework toDebugbuilds only.
Usage
Swift
//AppDelegate.swift
#if DEBUG
import CocoaDebug
#endif
#if DEBUG
CocoaDebug.enable()
#endif
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, false)
#endif
}
Objective-C
//AppDelegate.m
#ifdef DEBUG
@import CocoaDebug;
#endif
#ifdef DEBUG
[CocoaDebug enable];
#endif
Please check Example_Swift.xcodeproj and Example_Objc.xcodeproj for more advanced usage.
NOTE: Be careful with
Other Swift Flags&Preprocessor Macroswhen 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 1000 .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 .
TODO
Thanks
Special thanks to remirobert .

!