Cheats

Build Status Version Carthage compatible Maintainability License Platform Swift 5.0 Reviewed by Hound

Cheats 是为 iOS 应用实现的控制台风格作弊码(例如科乐美秘技)。它包含一个 UIGestureRecognizer,用于识别作弊码。将滑动、摇晃手势、点击和按键等一系列动作组合起来,为你的应用创建一个作弊码,以解锁功能或彩蛋

特性

Cheats

要了解更多关于如何使用 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 Package Manager

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 枚举可以采用三种状态

重置

如果 CheatCode 进入 .notMatched 状态,则用户无法重试作弊,直到调用 reset() 以重置用户的动作序列。如果使用 CheatCodeGestureRecognizer(见下文),则手势识别器会自动执行此操作。

动作

动作是作弊码序列的构建块。可用的动作包括

如果在任何时候需要完成作弊码序列的下一个动作,可以使用 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

作者

Ross Butler

许可

Cheats 在 MIT 许可证下可用。有关更多信息,请参阅 LICENSE 文件

附加软件

控件

AnimatedGradientView
AnimatedGradientView

框架

Cheats Connectivity FeatureFlags Skylark TypographyKit Updates
Cheats Connectivity FeatureFlags Skylark TypographyKit Updates

工具

Config Validator IPA Uploader Palette
Config Validator IPA Uploader Palette