Cheats 是为 iOS 应用实现的控制台风格作弊码(例如科乐美秘技)。它包含一个 UIGestureRecognizer
,用于识别作弊码。将滑动、摇晃手势、点击和按键等一系列动作组合起来,为你的应用创建一个作弊码,以解锁功能或彩蛋。
UIGestureRecognizer
,方便与 UIViewController
集成。要了解更多关于如何使用 Cheats 的信息,请查看博客文章或使用下面的目录
CocoaPods 是一个依赖管理器,它将依赖项集成到你的 Xcode 工作区中。要使用 RubyGems 安装它,请运行
gem install cocoapods
要使用 Cocoapods 安装 FeatureFlags,只需将以下行添加到你的 Podfile 中
pod "Cheats"
然后运行命令
pod install
更多信息请参见此处。
Carthage 是一个依赖管理器,它生成一个二进制文件,用于手动集成到你的项目中。可以通过 Homebrew 使用以下命令安装它
brew update
brew install carthage
要通过 Carthage 将 Cheats 集成到你的项目中,请将以下行添加到你项目的 Cartfile 中
github "rwbutler/Cheats"
从 macOS 终端运行 carthage update --platform iOS
来构建框架,然后将 Cheats.framework
拖到你的 Xcode 项目中。
更多信息请参见此处。
Swift Package Manager 是 Swift 模块的依赖管理器,自 Swift 3.0 起包含在构建系统中。它用于自动化下载、编译和链接依赖项。
要将 Cheats 作为依赖项包含在 Swift 包中,请将该包添加到你的 Package.swift
文件中的 dependencies
条目中,如下所示
dependencies: [
.package(url: "https://github.com/rwbutler/Cheats.git", from: "2.0.0")
]
Cheats 由核心组件和 UI 组件组成 - 由于 UI 组件对 UIKit 的依赖,只有核心组件可以通过 Swift Package Manager 获得。
创建作弊码涉及创建用户必须正确执行的一系列动作,才能解锁作弊。动作可能包括滑动或按键
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
- 在 up
、down
、left
和 right
方向上。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)
可以在 Example 目录中找到一个示例应用程序,作为如何使用该框架的说明。要运行,请克隆 repo,然后在 Xcode 中打开 Cheats.xcworkspace
。
Cheats 在 MIT 许可证下可用。有关更多信息,请参阅 LICENSE 文件。
AnimatedGradientView |
---|
![]() |
Cheats | Connectivity | FeatureFlags | Skylark | TypographyKit | Updates |
---|---|---|---|---|---|
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
cdd
即可快速清除你的 DerivedData 目录。Config Validator | IPA Uploader | Palette |
---|---|---|
![]() |
![]() |
![]() |