iOS Debugging Tool
-
Shake to hide/show the black bubble. (support both device/simulator)
-
Long press the black bubble to show UIDebuggingInformationOverlay. (Apple's Private API, support iOS 10/11)
-
You can copy app logs and network logs as you like. (long press the text, then select all or select copy)
-
When you are in the
Network Details
page, you can shake device or simulator to share network details via email or copy to clipboard.
platform :ios, '8.0'
use_frameworks!
target 'YourTargetName' do
pod 'CocoaDebug', :configurations => ['Debug']
end
github "CocoaDebug/CocoaDebug"
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.
//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
}
//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
andExample_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.
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. -
recordCrash
- Whether to allow the recording of crash logs in app. default value is false. -
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.
Special thanks to remirobert.
CocoaDebug is released under the MIT license.