Overlog 是一个 iOS 应用程序的覆盖程序,让个人开发者和小组更容易测试和调试他们的应用程序。
功能
查看您应用的 HTTP 流量
Overlog 使用 ResponseDetective 来追踪在宿主应用程序中发生的 HTTP 流量。请求、响应和错误被分组并实时更新。您可以查看它们的详细信息,包括请求和响应的头部和正文,以及发生时的错误详细数据。
所有这些数据都触手可及,可能会极大地提高与网络通信相关问题的测试和调试效率。
为了允许 Overlog 检查 HTTP 流量,需要额外的代码行。请参阅使用部分获取更多信息。
检查用户默认设置和钥匙串项
Overlog 扫描您的宿主应用程序的用户默认设置和KEYCHAIN项,并以干净的关键字-值方式显示给您。
读取控制台日志
Overlog会将您的应用控制台输出重定向到可见UI中,这样您就可以使用日志来了解应用状态的变化。
一键导出
Overlog展示的所有数据都可以通过点击一个按钮与您的团队共享。
独特设计
Overlog的独特之处在于其令人惊叹且非侵入性的设计。
高可配置性
上述所有功能都可以通过代码来启用或禁用。您可以完全控制Overlog显示的内容。
使用方法
将Overlog附加到您的关键窗口
要在您的应用中使用Overlog,请安装它,导入它,并在设置关键窗口后立即添加以下代码
Overlog.shared.attach(to: window)
就这样!屏幕上会出现一个Overlog按钮。
配置功能
您可以通过修改Overlog的配置来启用和禁用功能。
// Enable only HTTP Traffic feature.
Overlog.shared.configuration.enabledFeatures = [.httpTraffic]
// Enable only User Defaults and Keychain features.
Overlog.shared.configuration.enabledFeatures = [.userDefaults, .keychain]
// Enable all features (default).
Overlog.shared.configuration.enabledFeatures = Overlog.Feature.all
如果您想检查Keychain项,就必须让Overlog知道它的服务标识符
// Use custom keychain service identifier.
Overlog.shared.configuration.keychainIdentifier = "com.example.app.keychain-identifier"
// Use default keychain service identifier (default).
Overlog.shared.configuration.keychainIdentifier = nil
根据目标平台,您可以选择性地启用和禁用功能
// Disable all features on simulator.
#if (arch(i386) || arch(x86_64)) && os(iOS)
Overlog.shared.configuration.enabledFeatures = []
#endif
隐藏和显示覆盖按钮
如果您觉得覆盖按钮过于侵扰,但又不想完全删除Overlog,您可以在用户摇晃设备时启用其切换功能
// Enable shake gesture support.
Overlog.shared.configuration.toggleButtonOnShake = true
// Disable shake gesture support (default).
Overlog.shared.configuration.toggleButtonOnShake = false
您也可以编程方式来隐藏和显示覆盖按钮
// Hide the button.
Overlog.shared.isHidden = true
// Show the button (default).
Overlog.shared.isHidden = false
配置HTTP流量调试
最后,但同样重要的是——为了允许Overlog检查HTTP流量,您必须指向一个要检查的会话配置实例
// Create a configuration.
let configuration = URLSessionConfiguration.default
// Enable HTTP traffic inspection.
Overlog.shared.enableHTTPTrafficDebugging(in: configuration)
// Create and normally use a session.
let session = URLSession(configuration: configuration)
要求
Overlog需要Xcode 9.3或更高版本,并支持iOS 8.0或更高版本。
安装
Carthage
如果你使用的是Carthage,请将以下依赖项添加到你的Cartfile
github "netguru/Overlog" {version}
CocoaPods
如果你使用的是CocoaPods,请将以下依赖项添加到你的Podfile
use_frameworks!
pod 'Overlog', '~> {version}'
贡献
想法
如果您有关于在Overlog中支持的新功能的想法,请随时创建问题!
拉取请求
您的(是的,就是您!)提出的拉取请求始终受到欢迎——无论规模大小。我们会对所有拉取请求给予回应并提供反馈!
开发
开发需要安装以下工具
假设上述工具已经安装,克隆仓库并用Carthage安装项目依赖
$ carthage bootstrap --platform iOS --cache-builds
然后,打开Overlog.xcodeproj
并构建项目!
路线图
版本1.x
下一个次要版本将专注于改进现有功能和修复错误。新功能可能会推迟到下一个主要版本。
版本 2.0
下一个主要版本将包括对 Swift 5 的支持,并且可能包含一些大型新功能。预计发布日期:2018 年秋季。
关于
该项目由 Netguru 以爱心制作和维护。
许可协议
Overlog 在 MIT 许可协议下授权。