DEV.co
Open-Source Testing · google

EarlGrey

EarlGrey is a native iOS UI automation testing framework from Google that simplifies writing and maintaining automated tests for iOS apps. It provides automatic synchronization with UI, network requests, and app queues to make tests more stable and reliable.

Source: GitHub — github.com/google/EarlGrey
5.7k
GitHub stars
734
Forks
Objective-C
Primary language
Apache-2.0
License (OSI-approved)

Key facts

Objective fields from the source. Values we can't verify are shown as “Unknown” rather than guessed.

FieldValue
Repositorygoogle/EarlGrey
Ownergoogle
Primary languageObjective-C
LicenseApache-2.0 — OSI-approved
Stars5.7k
Forks734
Open issues251
Latest release2.2.2 (2022-06-07)
Last updated2026-07-08
Sourcehttps://github.com/google/EarlGrey

What EarlGrey is

EarlGrey is an Objective-C framework that integrates with XCTest and Xcode's Test Navigator, offering enhanced synchronization primitives to wait for UI steady state before test actions. Version 2.0+ builds on XCUITest; version 1.0 is deprecated and unsupported on iOS 13+.

Quickstart

Get the EarlGrey source

Clone the repository and explore it locally.

terminalbash
git clone https://github.com/google/EarlGrey.gitcd EarlGrey# follow the project's README for install & configuration

Need it deployed, integrated, or customized instead? DEV.co ships production installs.

Best use cases

Stable UI automation for iOS apps

EarlGrey's automatic synchronization with UI, network, and queues reduces flaky test failures and eliminates manual wait logic, making it ideal for teams building comprehensive iOS test suites.

XCTest-integrated testing workflows

Direct Xcode integration and xcodebuild CLI support allow iOS teams to run tests from familiar tools without adopting separate testing infrastructure.

Large-scale iOS app test suites

Community adoption (5,600+ stars) and extensive documentation provide proven patterns for managing large automated test codebases across multiple test targets.

Implementation considerations

  • Latest release (2.2.2) dates to June 2022; verify compatibility with your target iOS and Xcode versions before adoption.
  • EarlGrey 1.0 is deprecated—plan migration to EarlGrey 2.0 (earlgrey2 branch) if currently on v1 or starting new projects.
  • Analytics collection (MD5 hashes of bundle ID, test class/method names) sends data to Google Analytics by default; review privacy implications and disable if required.
  • Requires integration into test target via CocoaPods, Carthage, or gem; plan dependency management strategy early.
  • Synchronization features reduce manual waits but add overhead; monitor test performance in CI/CD pipelines for regression.

When to avoid it — and what to weigh

  • Targeting iOS versions below 13 with EarlGrey 1.0 — EarlGrey 1.0 is deprecated and unmaintained. iOS 13+ users must migrate to EarlGrey 2.0; unsupported combinations may cause framework incompatibility.
  • Non-Objective-C or Swift-only workflows — Primary language is Objective-C. While Swift interoperability exists, teams heavily invested in pure Swift may face integration friction.
  • Cross-platform mobile testing (Android + iOS) — EarlGrey is iOS-only. Teams needing unified Android/iOS test frameworks should consider alternatives like Appium or Detox.
  • Projects with minimal test infrastructure budget — EarlGrey requires Xcode environment, CocoaPods/Carthage dependency management, and dedicated test targets; setup and maintenance overhead may not justify benefit for trivial test suites.

License & commercial use

Licensed under Apache License 2.0, a permissive OSI-approved license. Documentation also carries CC-BY 4.0 attribution license.

Apache 2.0 permits commercial use, modification, and distribution with attribution and liability disclaimer. No royalties or restrictions on proprietary apps. Requires review of your legal policy if bundling or redistributing EarlGrey framework code.

DEV.co evaluation signals

Editorial assessment — not user reviews. Directional, with an explicit confidence level.

SignalAssessment
MaintenanceActive
DocumentationAdequate
License clarityClear
Deployment complexityModerate
DEV.co fitGood
Assessment confidenceHigh
Security considerations

No explicit security audit details provided. Analytics collection hashes bundle IDs and test metadata before transmission; review data handling if testing apps with PII. Framework runs in-process with test target; code review recommended before adoption in security-sensitive environments. No CVE history or vulnerability disclosure policy stated.

Alternatives to consider

Appium

Cross-platform (iOS, Android, web) automation framework; better for teams needing unified mobile testing but heavier setup and slower execution than native frameworks.

XCUITest (native Apple framework)

Apple's first-party iOS UI automation API; no third-party dependencies or analytics, but fewer synchronization helpers and less mature debugging compared to EarlGrey.

Detox

Modern cross-platform framework with strong synchronization and React Native support; good alternative if moving away from Objective-C or targeting iOS + Android parity.

Software development agency

Build on EarlGrey with DEV.co software developers

Review the implementation considerations, migration path from v1→v2, and analytics implications with your engineering and compliance teams. Assess fit against your iOS stack and cross-platform testing needs.

Talk to DEV.co

Related open-source tools

Surfaced by semantic similarity across the DEV.co open-source index.

Related on DEV.co

Explore the category and the services that help you build with it.

EarlGrey FAQ

Should I use EarlGrey 1.0 or 2.0?
EarlGrey 1.0 is deprecated and unmaintained on iOS 13+. Use EarlGrey 2.0 (earlgrey2 branch) for new projects and plan migration for existing v1 codebases.
Does EarlGrey send my app data to Google?
EarlGrey collects MD5 hashes of bundle ID, test class, and test method names for analytics. This is enabled by default but can be disabled in test setUp. Review privacy requirements and disable if needed.
Can I use EarlGrey with Swift?
Yes, EarlGrey supports Swift interoperability, though the framework itself is Objective-C. Swift and Objective-C tests can coexist in the same test target.
Is EarlGrey suitable for enterprise use?
Yes, it is Apache 2.0 licensed and supports commercial use. However, no enterprise support SLA is published; support relies on community forums and GitHub issues.

Software developers & web developers for hire

DEV.co helps companies turn open-source tools like EarlGrey into production software. Our software development services cover the full lifecycle — architecture, web development, integration, and maintenance — delivered by software developers and web developers who ship. Engage our software development agency to implement or customize it for your open-source testing stack.

Evaluate EarlGrey for Your iOS Testing

Review the implementation considerations, migration path from v1→v2, and analytics implications with your engineering and compliance teams. Assess fit against your iOS stack and cross-platform testing needs.