Just like scyther, this menu helps you cut through bugs, in your iOS app. Scyther is a fully fledged debug menu that provides tools for developers, UAT (QA) members/testers, UI/UX teams, backend developers and even frontend developers who use your app. Made with π in Sydney, Australia π¦πΊ.
We recommend only running Scyther on non release/App Store builds of your iOS application. Running the library on public facing versions of your app has the potential to introduce security issues if you store/transmit secure data over a network. To achieve this, for developers of all skill levels, Scyther defaults to only running on non App-Store builds. We have included a convenience which abstracts that logic into a single line if you wish to override this logic. See below:
import Scyther
// AppDelegate.swift
func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?) -> Bool {
/// Override for running Scyther on Production/AppStore Builds. Uncomment this line only if you know what risks are involved.
/// Scyther.instance.runsOnProductionBuilds = true
Scyther.instance.start()
return true
}
Once you have added the above code to your AppDelegate.swift
file, simply run your app on a simulator or physical device. Once it's running, simply shake your device (Cmd + Ctrl + Z
) on the simulator) and you'll be presented with the Scyther debug menu for your app.
There is a full-featured demo included in this repo. See the Scyther Playground project. Note that some of the features included in the demo may not be required for your implementation. They've been included only as a reference for what Scyther is capable of and how to implement said features.
The Swift Package Manager is a tool for managing the distribution of Swift code. Itβs integrated with the Swift build system to automate the process of downloading, compiling, and linking dependencies.
Once you have your Swift package set up, adding Scyther as a dependency is as easy as adding it to the dependencies
value of your Package.swift
.
dependencies: [
.package(url: "https://github.com/bstillitano/Scyther.git", branch: "main")
]
CocoaPods is a dependency manager for Cocoa projects. For usage and installation instructions, visit their website. To integrate Scyther into your Xcode project using CocoaPods, specify it in your Podfile
:
pod 'Scyther', '~> 1.2.0'
If you want to be blunt, resumΓ©
. But, to be a little more philosophical, I myself once relied on open-source libraries to build apps. Call it "giving back" if you will. Open-source is what makes the world go round (literally). Scyther is however licensed under the MIT license which comes with some important stipulations about protecting intellectual property/copyrights. See LICENSE for details.
Scyther uses no private APIs and has been developed with shipability in mind. Scyther is being, and has been for some time, on production applications without issues from the App StoreΒ© review team. If your app does get rejected specifically for using Scyther, raise an issue, and it will be looked into with top priority.
Scyther is named after the Pokemon Scyther, a bug type PokΓ©mon that is known for its cutting ability. One of my all-time favourite co-workers loved PokΓ©mon and recommended Scyther. In short, there is no good reason for the name.
Working on some very widely used and distributed codebases, I noticed just how powerful some of the tooling, that the teams developing these apps had developed internally, was. This coupled with experience at startups and some time on small projects, I noticed a huge gap when it came to readily-available tools/libraries for small teams and junior developers that help answer the constant questions that mobile developers get asked. This library is all about enabling testers/users to help themselves before reaching out to developers.
Scyther is owned and maintained by Brandon Stillitano. You can follow me on Twitter at @bstillita for project updates and releases.
If you believe you have identified a security vulnerability with Scyther, you should report it as soon as possible via email to [email protected]. Please do not post it to a public issue tracker.
Scyther is released under the MIT license. See LICENSE for details.
link |
Stars: 104 |
Last commit: 5 weeks ago |
This release will reset some of your Scyther settings. Flag overrides, environment selection etc. This is expected given the effort to prefix all defaults keys with Scyther_
. You will be required to reconfigure your on-device Scyther settings as a one-off.
Full Changelog: https://github.com/bstillitano/Scyther/compare/1.5.0...1.6.0
Swiftpack is being maintained by Petr Pavlik | @ptrpavlik | @swiftpackco | API | Analytics