Claude Skills Guide

Claude Code Expo EAS Build Submission Workflow Guide

Building and submitting React Native applications to the App Store and Google Play Store can be a complex process involving multiple steps, credentials, and configurations. This guide shows you how to leverage Claude Code to automate and streamline your Expo Application Services (EAS) build and submission workflow, making mobile app releases as smooth as possible.

Understanding the EAS Build Pipeline

EAS Build is Expo’s cloud build service that compiles your app for iOS and Android without requiring local Xcode or Android Studio setup. When working with Claude Code, you can create skills that understand your project structure, manage build configurations, and handle the entire release process.

Prerequisites for EAS Builds

Before diving into the workflow, ensure you have:

Claude Code can help you verify these prerequisites and guide you through account setup if needed.

Setting Up Your Project with Claude Code

When starting a new Expo project, Claude Code can initialize everything correctly:

npx create-expo-app@latest MyMobileApp
cd MyMobileApp
npx expo install expo-dev-client

The expo-dev-client package is essential for development builds that work with native code modifications. Claude Code can automatically detect when you need this package based on your dependency additions.

Configuring app.json for Build Optimization

Your app.json configuration significantly impacts build success. Here’s an optimized configuration:

{
  "expo": {
    "name": "MyMobileApp",
    "slug": "my-mobile-app",
    "version": "1.0.0",
    "orientation": "portrait",
    "icon": "./assets/icon.png",
    "userInterfaceStyle": "automatic",
    "splash": {
      "image": "./assets/splash.png",
      "resizeMode": "contain",
      "backgroundColor": "#ffffff"
    },
    "ios": {
      "bundleIdentifier": "com.mysite.mymobileapp",
      "buildNumber": "1",
      "supportsTablet": true,
      "infoPlist": {
        "NSAppTransportSecurity": {
          "NSAllowsArbitraryLoads": true
        }
      }
    },
    "android": {
      "package": "com.mysite.mymobileapp",
      "versionCode": 1,
      "adaptiveIcon": {
        "foregroundImage": "./assets/adaptive-icon.png",
        "backgroundColor": "#ffffff"
      },
      "permissions": [
        "CAMERA",
        "READ_EXTERNAL_STORAGE"
      ]
    },
    "plugins": [
      [
        "expo-camera",
        {
          "cameraPermission": "Allow MyMobileApp to access your camera."
        }
      ]
    ]
  }
}

Claude Code can generate this configuration automatically based on your app’s requirements. Simply describe your app’s features, and Claude will create the appropriate configuration.

EAS Build Workflow with Claude Code

Step 1: Initialize EAS Build

Start by authenticating with Expo and initializing EAS:

eas login
eas build:configure

Claude Code can run these commands and handle authentication issues. If you encounter login problems, Claude can troubleshoot by checking your Expo tokens and environment variables.

Step 2: Creating Build Profiles

EAS Build uses profiles to manage different build configurations. Typical profiles include:

{
  "builds": {
    "ios": {
      "development": {
        "developmentClient": true,
        "distribution": "internal"
      },
      "preview": {
        "distribution": "internal",
        "ios": {
          "simulator": true
        }
      },
      "production": {
        "distribution": "app-store"
      }
    },
    "android": {
      "development": {
        "buildType": "debug"
      },
      "preview": {
        "buildType": "debug"
      },
      "production": {
        "buildType": "release",
        "gradleCommand": ":app:bundleRelease"
      }
    }
  }
}

Claude Code can create these profiles based on your release strategy. For example, a continuous deployment setup might include automatic preview builds on every push to main.

Step 3: Running the Build

Trigger builds for specific platforms and profiles:

# iOS production build
eas build --platform ios --profile production

# Android production build
eas build --platform android --profile production

# Both platforms
eas build --platform all --profile production

Claude Code can monitor build progress and notify you of completion. You can also set up build webhooks to integrate with your team’s communication tools.

Automating Submissions with EAS Submit

Once your build completes, EAS Submit handles app store submissions directly.

Submitting to Apple App Store

eas submit --platform ios --latest

For custom builds:

eas submit --platform ios --id YOUR_BUILD_ID

Submitting to Google Play Store

eas submit --platform android --latest

Handling Submission Issues

Claude Code can help diagnose common submission problems:

Creating a Claude Code Skill for EAS Workflows

You can create a custom skill to automate your entire EAS workflow:

---
name: eas-workflow
description: Complete EAS build and submit workflow automation
---

# EAS Build and Submit Workflow

You are an expert in Expo Application Services (EAS) builds and submissions.

## Available Commands

Run the following commands as needed:

1. **Development Build**: `eas build --platform ios --profile development`
2. **Preview Build**: `eas build --platform all --profile preview`
3. **Production Build**: `eas build --platform all --profile production`
4. **Submit iOS**: `eas submit --platform ios --latest`
5. **Submit Android**: `eas submit --platform android --latest`

## Workflow Steps

1. Verify Expo project is initialized
2. Check build configuration in app.json and eas.json
3. Run appropriate build command
4. Verify build completes successfully
5. Submit to appropriate store
6. Report submission status

Always verify build success before attempting submission.

This skill can handle the entire release process with a single command from you.

Best Practices for EAS Workflows

Credential Management

Store credentials securely using EAS credentials manager:

eas credentials

Never commit credentials to version control. Use environment variables and EAS secret management for sensitive data.

Build Caching

EAS automatically caches dependencies and build artifacts. For faster rebuilds:

Continuous Deployment Integration

Connect EAS with your CI/CD pipeline:

# Example GitHub Actions workflow
name: EAS Build and Submit
on:
  push:
    branches:
      - main
jobs:
  build:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v3
      - uses: actions/setup-node@v3
        with:
          node-version: 18
      - run: npm ci
      - run: npx expo install --check
      - run: eas build --platform all --profile production --non-interactive
        env:
          EXPO_TOKEN: ${{ secrets.EXPO_TOKEN }}

Claude Code can generate this configuration for your specific CI/CD provider and handle the secrets setup.

Troubleshooting Common EAS Issues

Build Failures

When builds fail, check:

Submission Errors

Common submission issues include:

Claude Code can diagnose these issues by examining your project configuration and error messages from EAS services.

Conclusion

Claude Code transforms EAS builds from a manual, error-prone process into an automated workflow. By creating custom skills for your specific needs, you can trigger builds, monitor progress, handle submissions, and troubleshoot issues—all through natural conversation. The key is setting up proper configurations upfront and leveraging Claude Code’s ability to understand your project context and execute commands intelligently.

Start by creating a basic EAS workflow skill, then expand it as your release process evolves. With Claude Code handling the complexity, you can focus on building great mobile experiences.

Built by theluckystrike — More at zovo.one