Swiftpack.co is a collection of thousands of indexed Swift packages. Search packages.
Ackee Screenshotter - ASS
Do you test? We do! 😂 So let's make it a bit less boring 😎 Ass is a framework and an app designed to save you testing time 💪
Swift Package Manager
ASS framework is available through SwiftPM. Add ASS to the
dependencies value of your
dependencies: [ .package(url: "email@example.com:AckeeScreenshoter/iOS.Client.git", .upToNextMajor(from: "1.0.0")) ]
ASS framework is also available through Carthage. Just add it to your Cartfile.
git "firstname.lastname@example.org:AckeeScreenshoter/iOS.Client.git" ~> 1.0.0
ASS Application is available through App Distribution .
ASS framework communicates with the ASSApp therefore ASSApp must be installed on the testing device.
First the SDK needs to be setup in an application that is to be tested.
- Enable ASS.
- Provide ASS with
base_urlfor the Firebase backend.
- Provide ASS with
auth_tokenfor the Firebase backend authorization.
This setup is typically done in the app delegate.
Ass.shared.isEnabled = true Ass.shared.baseURL = URL(string: "<base_url>")! Ass.shared.authorization = "<auth_token>"
- Define URL Scheme in
Project Settings -> Target -> Info -> URL Typesby adding a new
URLType(tapping the plus sign) with
AckeeScreenshotteridentifier. The URL Scheme must be different from URL schemes defined in your other URL Types. Also it has to be unique across all the apps installed on a device to function properly. So it is preferred to pick URL Scheme such as
ass-<bundle_id>. Do not use
assis a scheme already used by AssApp.
When enabled ASS reacts to taking screenshots and screen capturing.
What is sent to backend?
Along with the screenshot we send additional metadata
- device make (Apple)
- device model (iPhone X)
- iOS version (12.1)
- app version (1.0)
- build number (563)
- platform (ios)
- app name
These have their defaults but can also be changed if needed.
Ass.shared.appInfo.appName = "XY"
Custom data like user account can also be added by setting properties on
Ass.shared.appInfo.customData = ["account": "email@example.com"]
AssApp allows the user to take a note that is also sent to the backend.
When screen recording, we use ShowTime to show screen touches. This feature is enabled by default but can be disabled when setting up ASS in your application.
Ass.shared.isVisibleTapsEnabled = false
Framework and App communiaction
Debug application using Ass communicates with the AssApp through URL scheme.
AssApp reacts to URLs using the
All of the debug app information is sent to AssApp through the URL as a query parameter. Ass detects screenshots as well as screen recordings, these are recoginzed by the AssApp through an additional
mediaType query parameter which can have these values:
When AssApp is opened with a URL its query parameters are parsed. The query parameters must contain
authorization keys where the
mediaType's value must be one of the mentioned above. The rest of the parameters are parsed as and additional application information.
To use Ass just take a screenshot or stop a video inside the tested application. After one of these actions is detected the user is taken straight to ASS App. In case of a screenshot the user can edit the image through the small window that appears in the bottom left corner of the screen. It is also possible to edit the photo in the Gallery and return back to ASSApp. When finished just tap send and your screenshot or records appears on the specified backend.