GBK DEV INFO MODE iOS
应用程序信息(名称、版本、API 环境 等)的屏幕。
功能
- 手动/自动开发信息屏幕打开
- 显示应用程序信息
- 显示环境信息(从 info.plist,键 - Key_type)
- 显示 Key-(环境).plist 的信息
- 显示 User Defaults 的内容
- 显示有关 Facebook 应用程序的信息
- 显示 GoogleService-Info.plist 文件的信息
- 开发者可以限制要显示的部分
- 开发者可以添加自己的属性(类型:String)
- 动态监视添加的属性(类型:String)
- 显示任意 .plist 文件的信息(数据类型:String,Number,Bool,Date)
- 显示任意 .plist 文件中的任何特定键(数据类型:String,Number,Bool,Date)
- 通过键从 User Defaults 显示信息
- 您可以通过点击单元格轻松复制值
要求
- iOS 8.0+
安装
CocoaPods
CocoaPods 是 Cocoa 项目的依赖管理器。您可以使用以下命令进行安装
$ gem install cocoapods
要使用 CocoaPods 将 GBKDevInfoMode 集成到您的 Xcode 项目中,请在您的 Podfile
中指定它
source 'https://github.com/CocoaPods/Specs.git'
platform :ios, '8.0'
use_frameworks!
target '<Your Target Name>' do
pod 'GBKDevInfoMode', :git => '[email protected]:gbksoft/GBKDevInfoMode-ios.git'
end
然后,运行以下命令
$ pod install
使用
设置
注意:在与它交互之前,您需要先设置 GBKDevInfoMode。
导入框架
import GBKDevInfoMode
开始使用非常简单
GBKDevInfoMode.shared.setup(isEnabled: true)
别忘了将 isEnabled 设置为 false。
要限制要显示的部分
GBKDevInfoMode.shared.setup(isEnabled: true, sections: [.appInfo, .keyAPI, .userDefaults, .googleList, .custom])
部分类型
public enum SectionType {
case appInfo /// base app info: (app name, bundle, app version, app build, OS)
case keyAPI /// key api (environment from info.plist, all values from Key_\(environment).plist)
case userDefaults /// all user defaults
case facebookList /// Facebook info from info.plist
case googleList /// GoogleService-Info.plist
case custom /// custom property list
}
禁用通过摇晃打开开发信息屏幕
GBKDevInfoMode.shared.automaticLaunchByShake = false
手动显示屏幕
GBKDevInfoMode.shared.manualLaunch()
自定义信息
要显示自定义信息,您有 5 种选择
要添加自定义信息,您需要在设置期间指定 .custom
1) 显示自定义属性
// Values
let valueUserName = GBKDIMDevValueModel(title: "User name", value: "username")
let valueToken = GBKDIMDevValueModel(title: "Token", value: "1234567890zxcvbnm")
// Section
let section = GBKDIMDevSectionModel(title: "Custom section", items: [valueUserName, valueToken])
// Add section to GBK Dev Info Mode
GBKDevInfoMode.shared.add(section: section)
1.1) 显示带有唯一键的自定义属性以供将来更新
// Values
let valueUserName = GBKDIMDevValueModel(title: "User name", value: "username", uniqueKey: "username")
let valueToken = GBKDIMDevValueModel(title: "Token", value: "1234567890zxcvbnm", uniqueKey: "token")
// Section
let section = GBKDIMDevSectionModel(title: "Custom section", items: [valueUserName, valueToken])
// Add section to GBK Dev Info Mode
GBKDevInfoMode.shared.add(section: section)
///
...
///
GBKDevInfoMode.shared.update(value: "newtoken", in: "token")
2) 从.plist文件中按键显示值
// Values
let valueFromKey1 = GBKDIMDevValuePlistModel(title: "Test value 1", name: "<key_name>", inFile: "<filename>")
let valueFromKey2 = GBKDIMDevValuePlistModel(title: "Test value 2", name: "<key_name>", inFile: "<filename>")
// Section
let section = GBKDIMDevSectionModel(title: "Custom section key from plist", items: [valueFromKey1, valueFromKey2])
// Add section to GBK Dev Info Mode
GBKDevInfoMode.shared.add(section: section)
3) 显示.plist文件中所有键(数据类型:字符串、数字、布尔值、日期)
// Section
let section = GBKDIMDevSectionPlistModel(title: "Custom section from plist", fromFile: "<filename>")
// Add section to GBK Dev Info Mode
GBKDevInfoMode.shared.add(section: section)
4) 显示所有用户默认自定义内容
// Section
let section = GBKDIMDevSectionUserDefaultsModel(title: "Custom section from custom User Defaults", suiteName: "<filename>")
// Add section to GBK Dev Info Mode
GBKDevInfoMode.shared.add(section: section)
5) 从用户默认值按键显示值
// Values
let valueFromKey1 = GBKDIMDevValueUserDefaultsModel(title: "Test value 1", key: "<key_name_from_user_defaults>")
let valueFromKey2 = GBKDIMDevValueUserDefaultsModel(title: "Test value 2", key: "<key_name_from_user_defaults>", suiteName: "<name_user_defaults>")
// Section
let section = GBKDIMDevSectionModel(title: "Custom section key from user defaults", items: [valueFromKey1, valueFromKey2])
// Add section to GBK Dev Info Mode
GBKDevInfoMode.shared.add(section: section)
待办事项
- 添加可以在运行时更改的属性(在另一个屏幕上)(例如用户认证令牌)。
问题
如果UIWindow扩展了并覆盖了方法motionEnded(_ motion: UIEvent.EventSubtype, with event: UIEvent?),你需要手动打开开发信息窗口(shake自动打开将不起作用)。
extension UIWindow {
open override func motionEnded(_ motion: UIEvent.EventSubtype, with event: UIEvent?) {
// ...
if motion == .motionShake {
GBKDevInfoMode.shared.motionShake()
}
}
}
告诉我们
如果您能向我们发送使用我们的组件的项目链接,我们将非常高兴。只需发送电子邮件到 [email protected]