![]() |
|
|---|---|
| Travis CI | |
| Codacy | |
| Codecov | |
| Frameworks | |
| Languages | |
| Platform | |
| Licence |
Screenshot
Introduction
-
Shake to hide or show the black bubble. (Support iPhone device and simulator)
-
List all
print()andNSLog()messages which have been written by developer in Xcode. -
List of all the network requests sent by the application. (Support
JSONand Google'sProtocol buffers) -
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(). (supportWKWebViewand). UIWebView DeprecatedUIWebView -
Application memory usage and FPS.Deprecated -
Long press the black bubble to showPrivate API DeprecatedUIDebuggingInformationOverlay. (Apple's Private API, support iOS 10/11/12)
Installation
CocoaPods
target 'YourTargetName' do
use_frameworks!
pod 'CocoaDebug', :configurations => ['Debug']
endCarthage
github "CocoaDebug/CocoaDebug"
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
//If Use Google's Protocol buffers
CocoaDebug.protobufTransferMap = [
"your_api_keywords_1": ["your_request_protobuf_className_1", "your_response_protobuf_className_1"],
"your_api_keywords_2": ["your_request_protobuf_className_2", "your_response_protobuf_className_2"],
"your_api_keywords_3": ["your_request_protobuf_className_3", "your_response_protobuf_className_3"]
]
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
//If Use Google's Protocol buffers
CocoaDebug.protobufTransferMap = @{
@"your_api_keywords_1": @[@"your_request_protobuf_className_1", @"your_response_protobuf_className_1"],
@"your_api_keywords_2": @[@"your_request_protobuf_className_2", @"your_response_protobuf_className_2"],
@"your_api_keywords_3": @[@"your_request_protobuf_className_3", @"your_response_protobuf_className_3"]
};
[CocoaDebug enable];
#endif
More
#ifdef DEBUG
[CocoaDebugTool logWithString:string];
NSString *prettyJSON = [CocoaDebugTool logWithJsonData:data];
NSString *prettyJSON = [CocoaDebugTool logWithProtobufData:data className:@"protobuf_className"];
#endif
Please check
Example_Swift.xcodeprojandExample_Objc.xcodeprojfor 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. -
protobufTransferMap- Protobuf data transfer to JSON map. default value is nil.
TODO
Thanks
Special thanks to remirobert.
License
CocoaDebug is released under the MIT license.
