ARCHIVEDExpo CI Doctor is no longer actively maintained.Read the maintenance notice →
OPEN SOURCE · LOCAL ONLY

Build logs in.
Root cause out.

Stop scrolling through thousands of lines. Expo CI Doctor finds the failure that matters in EAS, Xcode, Gradle, CocoaPods, and Metro logs — then tells you what to fix.

$ npx expo-ci-doctor@latest analyze build.log
17 deterministic rules0 logs uploaded3 output formats
TRY IT NOW · NO UPLOAD
build.log
diagnosisruns locally
iOS · HIGH CONFIDENCE

iOS signing or provisioning failed

error: No profiles for 'dev.example.app' were found: Xcode couldn't find any iOS App Development provisioning profiles matching 'dev.example.app'.

Recommended fix

  1. Verify the bundleIdentifier matches the Apple profile.
  2. Run eas credentials and repair the affected profile.
  3. Check capabilities against profile entitlements.
BUILT TO COMPLEMENT EXPO

Two doctors.
Different jobs.

BEFORE THE BUILD

Expo Doctor

Checks dependency compatibility, app configuration, and general project health.

npx expo-doctor@latest
+
AFTER A FAILURE

Expo CI Doctor

Reads the failed build log, isolates evidence, and explains the most likely root cause.

npx expo-ci-doctor analyze build.log
SEARCHABLE ERROR LIBRARY

Answers for the errors
developers actually search.

Browse all errors →
CI-NATIVE OUTPUT

Useful to humans.
Predictable for machines.

Get terminal output locally, structured JSON for automation, or Markdown that drops directly into a pull request summary.

# GitHub Actions
- name: Explain failed build
  if: failure()
  run: |
    npx expo-ci-doctor analyze build.log \
      --markdown >> $GITHUB_STEP_SUMMARY

YOUR NEXT FAILED BUILD DOESN'T NEED TO BE A MYSTERY.

Find the line that matters.

$ npx expo-ci-doctor@latest analyze build.log
Useful? Star Expo CI Doctor on GitHub