Cheats 为 iOS 应用实现类似控制台风格的 作弊码(如 Konami 代码)。它包含一个 UIGestureRecognizer
以识别作弊码。结合一系列包含滑动、摇晃手势、点击和按键的动作来创建一个作弊码以解锁应用程序中的功能或 彩蛋。
功能
- 组合一系列动作,创建 iOS 应用中解锁功能或彩蛋的 作弊码。
- 提供了一个
UIGestureRecognizer
,便于与其UIViewController
集成。 - 可通过 CocoaPods、Carthage 或 Swift Package Manager 进行集成。
要了解有关如何使用 Cheats 的更多信息,请参阅下面的 博客文章或使用以下目录
安装
CocoaPods
CocoaPods 是一个依赖管理器,可以将依赖项集成到 Xcode 工作空间。要使用 RubyGems 安装它,请运行
gem install cocoapods
要使用 CocoaPods 安装 FeatureFlags,请简单地将其添加到您的 Podfile 中
pod "Cheats"
然后运行以下命令
pod install
更多信息请参见 此处。
Carthage
Carthage 是一个可以手动集成到项目中的依赖管理器,用于生成二进制文件。您可以通过以下命令使用 Homebrew 安装
brew update
brew install carthage
要以 Carthage 的方式将 Cheats 集成到您的项目中,请将以下行添加到您的项目 Cartfile
github "rwbutler/Cheats"
在 macOS 终端运行 carthage update --platform iOS
以构建框架,然后将 Cheats.framework
拖入您 的 Xcode 项目中。
更多信息请参阅这里。
Swift 包管理器
Swift 包管理器 是一个适用于 Swift 模块的依赖管理器,从 Swift 3.0 开始作为构建系统的一部分。它用于自动下载、编译和链接依赖项。
要将 Cheats 作为依赖项包含在 Swift 包中,请按照以下方式将包添加到您的 Package.swift
文件中的 dependencies
条目
dependencies: [
.package(url: "https://github.com/rwbutler/Cheats.git", from: "4.2.0")
]
使用
Cheats 由核心和 UI 组件组成,但由于 UI 组件依赖 UIKit,因此仅核心组件可通过 Swift 包管理器使用。
制作作弊码
创建作弊码涉及创建一个用户必须正确执行以解锁作弊码的操作序列。动作可以包括滑动或按键。
let actionSequence: [CheatCode.Action] = [.swipe(.up), .swipe(.down), .swipe(.left), .swipe(.right), .keyPress("a"), .keyPress("b")]
定义了操作序列后,实例化一个 Cheat
实例,并提供可选的回调,该回调将在用户完成解锁作弊码所需操作序列时被调用,以反馈用户的进度
let cheat = CheatCode(actions: actionSequence) { [weak self] cheatCode in
switch cheatCode.state() {
case .matched: // correct
print("Cheat unlocked!")
case .matching: // correct *so far*
print("Further actions required to unlock cheat.")
case .notMatched: // incorrect
print("Cheat incorrect.")
case .reset: // initial state / sequence reset
print("Cheat code sequence reset")
}
如上述代码片段所示,您可以通过在 CheatCode
实例上调用 state()
函数在任何时候查询 CheatCode
的状态。 CheatCode.State
枚举可以具有三种状态
matched
- 表示用户已成功完成作弊码。matching
- 表示用户已部分完成作弊码,需要进一步操作才能成功解锁作弊。notMatched
- 表示用户在尝试作弊码动作序列时出现了一个或多个错误。reset
- 表示用户尚未开始输入作弊码序列或序列已重置到初始状态。
重置
如果 CheatCode
进入 .notMatched
状态,则用户无法重试作弊,除非调用 reset()
重新设置用户的动作序列。如果使用 CheatCodeGestureRecognizer
(以下说明),这个操作将自动由手势识别器执行。
动作
动作是作弊码序列的构建模块。可用的动作有:
keyPress
- 当按下键盘上的键时。shake
- 用户晃动设备时。swipe
- 向上、向下、向左和向右的方向。tap
- 指定所需的点击次数。
如果在任何时候需要完成作弊码序列的下一动作,可以使用 nextAction()
来获取,该函数可以选择性地返回一个 CheatCode.Action
,表示是否还需要进一步动作以完成序列。
同样,previousAction()
将返回用户作为作弊码序列成功完成的最后一个动作。
手势识别器
Cheats 提供了一个 CheatCodeGestureRecognizer
,它是 UIGestureRecognizer
的子类,以便轻松与 UIViewController/UIView 集成。
要使用手势识别器,使用上述描述的 CheatCode
实例以及目标和方法选择器(就像使用任何其他 UIGestureRecognizer
一样)来实例化它。然后只需将手势识别器添加到所需的视图中。
let gestureRecognizer = CheatCodeGestureRecognizer(cheatCode: cheatCode, target: self, action: #selector(actionPerformed(_:)))
view.addGestureRecognizer(gestureRecognizer)
示例
可以在Cheats.xcworkspace
。
作者
许可证
Cheats遵循MIT许可证。更多信息,请参阅LICENSE文件。
其他软件
控件
- AnimatedGradientView - 为iOS提供强大的渐变动画功能,使用简单。
AnimatedGradientView |
---|
![]() |
框架
- Cheats -面向现代iOS应用程序的复古作弊码。
- Connectivity -改进了Reachability以确定iOS应用程序的互联网连接。
- FeatureFlags -允许开发者配置功能标志,使用捆绑的/远程托管JSON配置文件运行多个A/B或MVT测试。
- Hash - 使用流行的哈希函数(包括MD5、SHA-1、SHA-256)生成消息摘要和HMAC的轻量级方法。
- Skylark - 完全遵循Swift BDD测试框架,使用Gherkin语法定义Cucumber场景。
- TailorSwift - Swift Core Library / Foundation框架扩展集合,实用性强。
- TypographyKit - 支持动态字体大小的iOS上的一致且可访问的视觉样式。
- Updates - 自动检测应用更新并对用户发出温和的更新提示。
技巧 | 连接 | 功能标志 | Skylark | TypographyKit | Updates |
---|---|---|---|---|---|
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
工具
- Config Validator - Config Validator验证并上传您的配置文件,作为CI流程的一部分清除您的CDN缓存。
- IPA Uploader - 将您的应用上传到TestFlight和App Store。
- 调色板 - 使您的TypographyKit颜色调色板在Xcode Interface Builder中可用。
Config Validator | IPA Uploader | 调色板 |
---|---|---|
![]() |
![]() |
![]() |