A demo iOS app showcasing how to integrate the Evinced XCUI SDK for automated accessibility testing in your UI test suite.
This project demonstrates a minimal SwiftUI app paired with UI tests that use EvincedXCUISDK to detect accessibility issues at test time. The sample test validates that no tappable-area violations exist on the main screen.
| Requirement | Version |
|---|---|
| Xcode | 16+ |
| iOS | 18.0+ |
| Swift | 5.0+ |
-
Clone the repository
git clone https://github.com/GetEvinced/EvinceQuickAccessibilityDemo.git cd EvinceQuickAccessibilityDemo -
Open the project in Xcode
open EvinceQuickAccessibilityDemo.xcodeproj
-
Resolve packages -- Xcode will automatically fetch the
EvincedXCUISDKdependency via Swift Package Manager. -
Add your Evinced credentials -- Open
EvinceQuickAccessibilityDemoUITests/Constants.swiftand replace the placeholders with yourserviceAccountIdandaccessToken. -
Run the UI tests -- Select the
EvinceQuickAccessibilityDemoUITestsscheme and press Cmd + U, or run from the terminal:xcodebuild test \ -project EvinceQuickAccessibilityDemo.xcodeproj \ -scheme EvinceQuickAccessibilityDemo \ -destination 'platform=iOS Simulator,name=iPhone 16 Pro'
EvinceQuickAccessibilityDemo/
├── EvinceQuickAccessibilityDemo/ # Main app target
│ ├── EvinceQuickAccessibilityDemoApp.swift
│ ├── ContentView.swift
│ └── Assets.xcassets/
├── EvinceQuickAccessibilityDemoTests/ # Unit tests
│ └── EvinceQuickAccessibilityDemoTests.swift
└── EvinceQuickAccessibilityDemoUITests/ # UI tests (Evinced SDK)
├── EvinceQuickAccessibilityDemoUITests.swift
├── EvinceQuickAccessibilityDemoUITestsLaunchTests.swift
└── Constants.swift
ContentView.swift presents a simple branded screen with a Test button. The button carries an accessibilityIdentifier("testButton") so it can be targeted by UI tests.
EvinceQuickAccessibilityDemoUITests.swift uses the Evinced SDK to scan the running app for accessibility violations:
- Setup -- Configures offline credentials and attaches the current test case to
EvincedEngine. - Test -- Launches the app, creates an
EvincedConfigfiltered to tappable-area issues, generates a report, and asserts no issues are found.
The project includes a Build App GitHub Actions workflow (.github/workflows/build.yml).
- Go to the Actions tab and select Build App.
- Click Run workflow and choose a destination:
| Destination | Output |
|---|---|
simulator |
.app for iOS Simulator |
device |
.app for a real iOS device |
- Once the run finishes, download the
.appbundle from the Artifacts section.
xcrun simctl install booted EvinceQuickAccessibilityDemo.app
xcrun simctl launch booted com.evinced.EvinceQuickAccessibilityDemo| Package | Version | Source |
|---|---|---|
| EvincedXCUISDK | 1.32.0+ | Swift Package Manager |
See the Evinced SDK license for SDK-specific terms.
