---
title: XCUIApplication
framework: xcuiautomation
role: symbol
role_heading: Class
path: xcuiautomation/xcuiapplication
---

# XCUIApplication

A proxy that can launch, monitor, and terminate a test application.

## Declaration

```swift
@MainActor class XCUIApplication
```

## Mentioned in

Recording UI automation for testing

## Overview

Overview Use this class to launch, monitor, and terminate your app in a UI test. Use wait(for:timeout:) to launch your app and wait for it to reach an expected state before you check test conditions.

## Topics

### Creating an application proxy

- [init()](xcuiautomation/xcuiapplication/init().md)
- [init(bundleIdentifier:)](xcuiautomation/xcuiapplication/init(bundleidentifier:).md)
- [init(url:)](xcuiautomation/xcuiapplication/init(url:)-90e7z.md)

### Launching the application

- [launch()](xcuiautomation/xcuiapplication/launch().md)
- [launchArguments](xcuiautomation/xcuiapplication/launcharguments.md)
- [launchEnvironment](xcuiautomation/xcuiapplication/launchenvironment.md)
- [open(_:)](xcuiautomation/xcuiapplication/open(_:).md)

### Activating the application

- [activate()](xcuiautomation/xcuiapplication/activate().md)

### Terminating the application

- [terminate()](xcuiautomation/xcuiapplication/terminate().md)

### Determining application state

- [state](xcuiautomation/xcuiapplication/state-swift.property.md)
- [XCUIApplication.State](xcuiautomation/xcuiapplication/state-swift.enum.md)

### Waiting for an application state

- [wait(for:timeout:)](xcuiautomation/xcuiapplication/wait(for:timeout:).md)

### Resetting authorization status

- [resetAuthorizationStatus(for:)](xcuiautomation/xcuiapplication/resetauthorizationstatus(for:).md)
- [XCUIProtectedResource](xcuiautomation/xcuiprotectedresource.md)

### Performing an accessibility audit

- [performAccessibilityAudit(for:_:)](xcuiautomation/xcuiapplication/performaccessibilityaudit(for:_:).md)
- [XCUIAccessibilityAuditType](xcuiautomation/xcuiaccessibilityaudittype.md)
- [XCUIAccessibilityAuditIssue](xcuiautomation/xcuiaccessibilityauditissue.md)

### Initializers

- [init(URL:)](xcuiautomation/xcuiapplication/init(url:)-6ga10.md)

## Relationships

### Inherits From

- [XCUIElement](xcuiautomation/xcuielement.md)

### Conforms To

- [CVarArg](swift/cvararg.md)
- [CustomDebugStringConvertible](swift/customdebugstringconvertible.md)
- [CustomStringConvertible](swift/customstringconvertible.md)
- [Equatable](swift/equatable.md)
- [Hashable](swift/hashable.md)
- [NSObjectProtocol](objectivec/nsobjectprotocol.md)
- [XCUIElementAttributes](xcuiautomation/xcuielementattributes.md)
- [XCUIElementSnapshotProviding](xcuiautomation/xcuielementsnapshotproviding.md)
- [XCUIElementTypeQueryProvider](xcuiautomation/xcuielementtypequeryprovider.md)
- [XCUIScreenshotProviding](xcuiautomation/xcuiscreenshotproviding.md)
