{"repo":"ctreffs/SwiftSimctl","free":true,"listed":false,"github":"https://github.com/ctreffs/SwiftSimctl","clone":"git clone https://github.com/ctreffs/SwiftSimctl.git","description":"Swift client-server tool to call xcrun simctl from your simulator. Automate push notification testing!","language":"Swift","stars":73,"topics":["swift","spm","xcode","push-notifications","testing","simulator","ios","macos","tvos","uitests"],"license":"MIT","category":"mobile-apps","readme_excerpt":"Swift Simctl This is a small tool (SimctlCLI) and library (Simctl), written in Swift, to automate xcrun simctl commands for Simulator in unit and UI tests. It enables, among other things, reliable fully automated testing of Push Notifications with dynamic content, driven by a UI Test you control. 🚧 Architecture Swift Simctl is made of two parts. SimctlCLI and Simctl . Simctl is a Swift library that can be added to your project's test bundles. It provides an interface to commands that are otherwise only available via xcrun simctl from within your test code. To enable calling these commands Simctl communicates over a local network connection to SimctlCLI . SimctlCLI is a small command line tool that starts a local server, listens to requests from Simctl (the client library) and executes xcrun simctl commands. ⌨ Available Commands The following commands will be available in code in your (test) targets: - Send push notifications with custom payload - Grant or revoke privacy permissions (i.e. camera, photos ...) - Set the device UI appearance to light or dark mode - Set status bar overrides (i.e. data network, time ...) - Uninstall app by bundle id - Terminate app by bundle id - Rename device - Trigger iCloud Sync - Open URLs including registered URL schemes - Erase the contents and settings of the simulator - Get app container ❔ Why would you (not) use this ➕ Pro - Closed system (Mac with Xcode + Simulator) - No external dependencies on systems like APNS - No custom test code bl","default_branch":null,"files":null,"tree":[],"storefront":"/r/ctreffs","claimed":false,"request_supported":{"post":"https://gitbuyer.com/r/ctreffs/SwiftSimctl/request-supported","requests":0},"note":"indexed from public GitHub; nothing is for sale on this page. Clone it from GitHub. Paid listings live at /search."}