Since the Frameworks upon which FBSimulatorControl depends are loaded lazily, they must be loaded before using the Framework. The Xcode version can be overridden by setting the DEVELOPER_DIR environment variable in the process that links with FBSimulatorControl. FBSimulatorControl will link against the version of Xcode that you have set with xcode-select. In order to support different Xcode versions and system environments, FBSimulatorControl weakly links against Xcode's Private Frameworks and load these Frameworks when they are needed.
This will build the FBSimulatorFramework at the same time and install it to /usr/local/Cellar/fbsimctl/Frameworks by default. The fastest way to get a usable installation of the Framework is to install fbsimctl with homebrew. This enables running against pre-built and archived Application binaries, rather than a binary that is built by a Test Target.Īs FBSimulatorControl nears a stable version, the API may change but can be considered mostly stable.
Test targets can be made that don't depend on any Application targets, or that launch multiple Application targets.
This, combined with launching the Simulator binaries directly, means that multiple Simulators can be launched simultaneously. Doing this allows FBSimulatorControl to talk directly to the same APIs that Xcode and simctl do. There may be additional use-cases that you may find beyond UI Test Automation.įBSimulatorControl works by linking with the private DVTFoundation, CoreSimulator and DVTiPhoneSimulatorRemoteClient frameworks that are present inside the Xcode bundle. As FBSimulatorControl is a macOS framework, it can be linked to from inside any macOS Library, Application, or xctest target. The original use-case for FBSimulatorControl was to boot Simulators to run End-to-End tests with WebDriverAgent.
An 'Event Bus' that exposes the details of a Simulator's lifecycle including Applications, Agents & the Simulator itself.'Diagnostic' API for fetching System, App & Crash logs as well as Screenshots & Video.'Direct Launch' supports video recording, screenshot fetching & interfacing with the SimulatorBridge.Can boot Simulators via Xcode's Simulator.app or by launching 'Directly' in CoreSimulator.Launches both 'Agent' and 'Application' processes, with Arguments and Environment.Boots iPhone & iPad Simulators for iOS 8, 9 & 10.Uses the toolchain defined by xcode-select. Runs independently of Xcode and xcodebuild.Enables 'Multisim' for iOS: Booting of multiple Simulators on the same host OS.
*Note for LabVIEW Users: If you are running Windows on Mac hardware via Bootcamp, contact NI Technical Support ( ) to activate LabVIEW.A macOS library for managing, booting and interacting with multiple iOS Simulators simultaneously.
The following table shows software that is available: