作弊 2.0.0

作弊 2.0.0

Ross Butler 维护。



作弊 2.0.0

Cheats

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

Cheats 为 iOS 应用实现类似控制台风格的 作弊码(如 Konami 代码)。它包含一个 UIGestureRecognizer 以识别作弊码。结合一系列包含滑动、摇晃手势、点击和按键的动作来创建一个作弊码以解锁应用程序中的功能或 彩蛋

功能

  • 组合一系列动作,创建 iOS 应用中解锁功能或彩蛋的 作弊码
  • 提供了一个 UIGestureRecognizer,便于与其 UIViewController 集成。
  • 可通过 CocoaPods、Carthage 或 Swift Package Manager 进行集成。

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 包管理器

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)

示例

可以在目录中找到一个示例应用程序,以展示如何使用此框架。要运行,请克隆存储库,然后在Xcode中打开Cheats.xcworkspace

作者

Ross Butler

许可证

Cheats遵循MIT许可证。更多信息,请参阅LICENSE文件

其他软件

控件

AnimatedGradientView
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
Cheats Connectivity FeatureFlags Skylark TypographyKit Updates

工具

  • Config Validator - Config Validator验证并上传您的配置文件,作为CI流程的一部分清除您的CDN缓存。
  • IPA Uploader - 将您的应用上传到TestFlight和App Store。
  • 调色板 - 使您的TypographyKit颜色调色板在Xcode Interface Builder中可用。
Config Validator IPA Uploader 调色板
Config Validator IPA Uploader Palette