
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 bothWKWebView
andUIWebView
). - Support
JSON
and Google’sProtocol buffers
Installation
CocoaPods
target 'YourTargetName' do pod 'CocoaDebug', :configurations => ['Debug'] end
Carthage
Framework
WARNING: Don’t submit
.ipa
to AppStore which has been linked with theCocoaDebug.framework
. This Integration Guide outline a way to use build configurations to isolate linking the framework toDebug
builds 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 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 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.