Build
Connect & operate
Design & teams
Start hereScope a build in one callBring a spec, a wireframe, or a paragraph. You leave with an architecture, a timeline, and a number.Book a scoping call
AI software
LLM & data systems
Vibe coding
Ready to ship?Put AI where the work isAgents, RAG, and private LLMs wired into the systems your team already uses — not a chatbot bolted to a homepage.Discuss an AI project
Domain firstWe learn your workflow before we model itRegulated, operational, or high-volume — the constraints belong in the schema, not in a training doc.Talk about your domain
Plan smarterEstimate before you commitCost ranges, scope templates, and the questions we ask in discovery — free, no form.Open the cost calculator
Real conversationsTalk with a technical leadNo SDR, no discovery gauntlet. The person on the call is the one who scopes the build.Book a call
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

The gap between a working EarlGrey demo and a supportable open-source testing system is where DEV.co works. We offer custom software development and web development services for exactly that stretch.

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.