skills/willsigmon/sigstack/Fastlane Expert

Fastlane Expert

SKILL.md

Fastlane Automation Expert

Automate iOS builds, testing, and deployment with fastlane.

Setup

# Install
brew install fastlane

# Init in project
cd ios-project
fastlane init

Fastfile Patterns

Beta to TestFlight

# Fastfile
default_platform(:ios)

platform :ios do
  desc "Push a new beta build to TestFlight"
  lane :beta do
    increment_build_number(xcodeproj: "App.xcodeproj")
    build_app(scheme: "App")
    upload_to_testflight(
      skip_waiting_for_build_processing: true
    )
  end
end

App Store Release

lane :release do
  capture_screenshots
  build_app(scheme: "App")
  upload_to_app_store(
    submit_for_review: true,
    automatic_release: true,
    force: true,
    skip_metadata: false,
    skip_screenshots: false
  )
end

Testing Lane

lane :test do
  run_tests(
    scheme: "AppTests",
    devices: ["iPhone 15 Pro"],
    code_coverage: true
  )
end

App Store Connect API

# Appfile
app_identifier "com.example.app"
apple_id "developer@example.com"
team_id "ABC123"

# API key auth (recommended)
# Store key file securely
lane_context[SharedValues::APP_STORE_CONNECT_API_KEY] = app_store_connect_api_key(
  key_id: "ABC123",
  issuer_id: "def-456",
  key_filepath: "./AuthKey.p8"
)

Code Signing

Match (Recommended)

lane :sync_certs do
  match(
    type: "appstore",
    app_identifier: "com.example.app",
    git_url: "git@github.com:org/certs.git"
  )
end

lane :beta do
  match(type: "appstore")
  build_app(scheme: "App")
  upload_to_testflight
end

CI/CD Integration

GitHub Actions

- name: Build and Upload
  env:
    APP_STORE_CONNECT_API_KEY: ${{ secrets.ASC_KEY }}
    MATCH_PASSWORD: ${{ secrets.MATCH_PASSWORD }}
  run: bundle exec fastlane beta

Common Actions

  • build_app: Build iOS app
  • upload_to_testflight: Beta distribution
  • upload_to_app_store: Production release
  • match: Code signing sync
  • snapshot: Screenshot automation
  • deliver: Metadata/screenshots upload

Use when: iOS builds, TestFlight uploads, App Store releases, CI/CD automation

Weekly Installs
0
GitHub Stars
7
First Seen
Jan 1, 1970