Skip to content

Latest commit

 

History

35 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 

Repository files navigation

Adeha

Adeha is a minimal physical-device proof that an iOS UI-test runner can launch itself and execute its automation independently after Xcode installs it.

The finding

The special behavior comes from one build setting on the UI-test target:

SKIP_COPYING_TEST_FRAMEWORKS = YES

In an XcodeGen target specification, that is:

settings:
  SKIP_COPYING_TEST_FRAMEWORKS: YES

The setting tells Xcode to omit its copied testing frameworks from the runner. The runner can then use the testing frameworks available through the device's developer support environment when launched directly.

The rest of this repository is the smallest readable fixture we found for demonstrating that behavior. project.yml describes the UI-test target, and Adeha.swift contains automation that leaves the runner, opens SpringBoard, and drags the Home Screen.

Apply it to an existing project

Add SKIP_COPYING_TEST_FRAMEWORKS as a user-defined build setting on the UI-test target and set it to YES. With XcodeGen, add the YAML line shown above. This is a direct target setting; project generators merely express it.

Run the proof

Install XcodeGen, then replace the bundle identifier and development team in project.yml with your own values:

brew install xcodegen
xcodegen generate

Connect an iPhone with Developer Mode enabled. Ask Xcode for its available destinations and copy the phone's iOS device ID:

xcodebuild -project Adeha.xcodeproj -scheme Adeha -showdestinations

Build, install, and test the runner:

xcodebuild \
  -project Adeha.xcodeproj \
  -scheme Adeha \
  -destination 'platform=iOS,id=DEVICE_ID' \
  test

Launch Adeha-Runner from the Home Screen to run the automation again. After changing Adeha.swift, rerun xcodebuild test to rebuild and reinstall it. Regenerate the project after changing project.yml or the source layout.

Evidence

We tested both configurations on the same iPhone:

  • With the setting absent, xcodebuild test passed while direct launch terminated during its attempt to initiate a com.apple.testmanagerd session.
  • With the setting set to YES, xcodebuild test passed and direct launch ran the test suite successfully with exit code 0.

Verified on August 26, 2026, with Xcode 26.3 and an iPhone 16 Pro Max running iOS 26.6.

About

Minimal App for Self-Hosted iOS Automation

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages