Important:The information in this document is deprecated in Xcode 9. For Xcode 9 and later, see Simulator Help by choosing Help > Simulator Help in Simulator.
Important The information in this document is deprecated in Xcode 9. For Xcode 9 and later, see Simulator Help by choosing Help > Simulator Help in Simulator.
Simulator allows you to rapidly prototype and test builds of your app during the development process. Installed as part of the Xcode tools, Simulator runs on your Mac and behaves like a standard Mac app while simulating an iPhone, iPad, Apple Watch, or Apple TV environment. Think of the simulator as a preliminary testing tool to use before testing your app on an actual device.
4 Best iOS emulators for Mac. The iOS emulators which are perfect for Windows PC as well as for Mac are: 1. This app supports almost all the versions of Mac OS and it is a web-based emulator for MAC. Other frameworks either don't support iOS development on Windows at all or they can't publish or emulate apps on an iOS device without a Mac. This is a big handicap for Cross-Platform development. Smartface makes it easy to develop for iOS and Android on Windows with a new perspective for developing applications on Cross-Platform technologies. You can't run iPhone apps on a Mac computer without using an emulator, though that will change with a new generation of Macs, set to come out by the end of 2020. The new Macs will run on Apple's.
Simulator enables you to simulate iOS, watchOS, and tvOS devices running current and some legacy operating systems. Each combination of a simulated device and software version is considered its own simulation environment, independent of the others, with its own settings and files. These settings and files exist on every device you test within a simulation environment.
At a Glance
By simulating the operation of your app in Simulator, you can:
Find major problems in your app during design and early testing
Test your app using developer tools that are available only for Simulator
Learn about the Xcode development experience and the iOS development environment before becoming a member of the iOS Developer Program
This guide walks you through Simulator, starting with the basics of how to use it and moving on to the tools found within the simulator that can assist you in testing and debugging your apps.
Organization of This Document
Read the following chapters to learn how to use Simulator:
Getting Started in Simulator, to understand the functionality of Simulator, and gain a working knowledge of the various ways to launch it
Interacting with Simulator, to learn about the various ways of interacting with Simulator, including taking screenshots and changing the scale of simulated devices
Interacting with iOS and watchOS, to learn about the specific ways of interacting with simulated iOS and watchOS devices, including gestures and hardware manipulation
Interacting with tvOS, to learn about the specific ways of interacting with tvOS, including using the focus-based user interface and using external remotes with Simulator
Testing and Debugging in Simulator, to understand the tools available within Simulator to assist you with testing and debugging your apps
Customizing Your Simulator Experience with Xcode Schemes, to learn about additional ways to customize your Simulator experience through Xcode schemes
See Also
Apple provides these related documents that you may find helpful:
To learn the basics of developing iOS apps, see Start Developing iOS Apps (Swift).
To learn about the basics of developing watchOS apps, see App Programming Guide for watchOS.
To learn more about how you can customize your development experience within Xcode, see Xcode Overview.
To learn about the process of testing your app on a device, submitting it to the App Store, and distributing it, see App Distribution Quick Start.
Copyright © 2018 Apple Inc. All Rights Reserved. Terms of Use | Privacy Policy | Updated: 2018-02-15
Edit this Doc The XCUITest Driver for iOS
Appium's primary support for automating iOS apps is via the XCUITest
driver.(New to Appium? Read our introduction to Appium drivers). This driverleverages Apple'sXCUITestlibraries under the hood in order to facilitate automation of your app . Thisaccess to XCUITest is mediated by theWebDriverAgent server.WebDriverAgent (also referred to as 'WDA') is a project managed by Facebook, towhich the Appium core team contributes heavily. WDA is a WebDriver-compatibleserver that runs in the context of an iOS simulator or device and exposes theXCUITest API. Appium's XCUITest driver manages WDA as a subprocess opaque tothe Appium user, proxies commands to/from WDA, and provides a host ofadditional functionality (like simulator management and other methods, forexample).
Development of the XCUITest driver happens at theappium-xcuitest-driverrepo.
Requirements and Support
In addition to Appium's general requirements:
- Apple's XCUITest library is only available on iOS simulators and devices that are running iOS 9.3 or higher.
- A Mac computer with macOS 10.11 or 10.12 is required.
- Xcode 7 or higher is required.
- The XCUITest driver was available in Appium starting with Appium 1.6.
- For correct functioning of the driver, additional system libraries are required (see the Setup sections below).
Migrating from the UIAutomation Driver
If you are migrating to the XCUITest driver from Appium's oldUIAutomation-based driver, you may wishto consult this migrationguide.
Usage
The way to start a session using the XCUITest driver is to include theautomationName
capability in your new session request, withthe value XCUITest
. Of course, you must also include appropriateplatformName
, platformVersion
, deviceName
, and app
capabilities, ata minimum.
The platformName
should be iOS
for iPhone or iPad. tvOS devices are available if the platformName
is tvOS
.
- iOS
json { 'automationName': 'XCUITest', 'platformName': 'iOS', 'platformVersion': '12.2', 'deviceName': 'iPhone 8', ... }
- tvOS
json { 'automationName': 'XCUITest', 'platformName': 'tvOS', 'platformVersion': '12.2', 'deviceName': 'Apple TV', ... }
Capabilities
The XCUITest driver supports a number of standard Appiumcapabilities, but has an additionalset of capabilities that modulate the behavior of the driver. These can befound currently at the appium-xcuitest-driverREADME.
To automate Safari instead of your own application, leave the app
capabilityempty and instead set the browserName
capability to Safari
.
Commands
To see the various commands Appium supports, and specifically for informationon how the commands map to behaviors for the XCUITest driver, see the APIReference.
Basic Setup
(We recommend the use of Homebrew for installing systemdependencies)
- Ensure that you have Appium's general dependencies (e.g., Node & NPM) installed and configured.
If you don't need to automate real devices, you're done! To automate an app onthe simulator, the app
capability should be set to an absolute path or urlpointing to your .app
or .app.zip
file, built for the sim.
Real Device Setup
Automating a real device with XCUITest is considerably more complicated, due toApple's restrictions around running apps on real devices. Please refer to theXCUITest real device setup doc forinstructions.
Once set up, running a session on a real device is achieved by using thefollowing desired capabilities:
app
orbundleId
- specifies the application (local path or url referencing your signed.ipa
file) , or, if it is already installed, simply the bundle identifier of the app so that Appium can launch it.udid
- the specific id of the device to test on. This can also be set toauto
if there is only a single device, in which case Appium will determine the device id and use it.
Optional Setup
Install idb for better handling of various iOS Simulator operations,such as: biometrics, geolocation setting and window focussing.
- Read https://github.com/appium/appium-idb#installation to install necessary libraries (since Appium 1.14.0)
Install AppleSimulatorUtilsto use the permissions capability
Files generated by test runs
Testing on iOS generates files that can sometimes get large. These includelogs, temporary files, and derived data from Xcode runs. Generally thefollowing locations are where they are found, should they need to be deleted:
Emulate Ios Apps On Mac
Configure keyboards
Over Appium 1.14.0, Appium configures keyboard preferences by default to make test running more stable. You can change some of them via settings API.
Emulate Ios Apps On Macbook Pro
- Turn
Auto-Correction
in Keyboards off - Turn
Predictive
in Keyboards off - Mark keyboard tutorial as complete
- (Only for Simulator) Toggle software keyboard on
Emulate Ios On Pc
Accessibility preferences fine-tuning
In some cases, enabling of the below preferences helps to make some view elements accessible.Appium does not modify these settings automatically, since they could affect the way your application under test performs.Please change them manually if needed.
Emulate Ios Apps On Mac Mini
- Turn
Spoken Content
in Settings > Accessibility on - Turn
Speak Selection
in Settings > Accessibility on