mcpField
U
using-fastlane-in-flutter-and-ci

using-fastlane-in-flutter-and-ci

github.com/rodydavisクラウド・DevOps60114 回インストール2 週間前に更新
リポジトリ

using-fastlane-in-flutter-and-ci について

Flutter プロジェクト向けに、iOS と Android の Fastlane 設定およびベータ版のリリース手順を説明するガイドです。アプリのリリースや CI 自動化を準備する開発者向けです。

主な機能

  1. 01iOS と Android の Fastlane 設定
  2. 02versioning_android プラグインの利用
  3. 03ベータ版リリースレーンの実行

活用シーン

  1. 01Flutter アプリのストア公開手順の設定
  2. 02iOS または Android 向けベータ版の公開

インストール

コマンドをコピーしてターミナルで実行します。

$npx skills add https://github.com/rodydavis/skills --skill using-fastlane-in-flutter-and-ci

インストール後、Claude Code で/using-fastlane-in-flutter-and-ciを入力して読み込まれたか確認します。

詳細

Flutter と CI で Fastlane を使用する

前提条件:

手順
  1. Flutter プロジェクトを開きます

  2. cd iosを実行します

  3. fastlane initを実行し、表示されるプロンプトに従います

  4. Fastfile の内容を次のように置き換えます:

#!/bin/bash

echo "App Release Automator by @rodydavis"

action="$1"
red=`tput setaf 1`
green=`tput setaf 2`
reset=`tput sgr0`

if [ ${action} = "build" ]; then

    echo "${green}Generating built files.. ${reset}"
    flutter packages pub run build_runner clean
    flutter packages pub run build_runner build --delete-conflicting-outputs

    pub global activate pubspec_version
    git commit -a -m "Build $(pubver bump patch)"
    
    echo "${green}Building Project...${reset}"
    find . -name "*-e" -type f -delete
    flutter format .
    flutter clean

    echo "${green}Project Size: $(find . -name "*.dart" | xargs cat | wc -c)${reset}"

    echo "${green}Building APK...${reset}"
    flutter build apk

    echo "${green}Builing IPA..${reset}"
    cd ./ios && pod install && pod repo update && cd ..
    flutter build ios

    git commit -a -m "Project Rebuilt"


elif [ ${action} = "beta" ]; then

    echo "${green}Generating built files..${reset}"
    flutter packages pub run build_runner clean
    flutter packages pub run build_runner build --delete-conflicting-outputs

    pub global activate pubspec_version
    git commit -a -m "Beta $(pubver bump patch)"
    
    echo "${green}Building Project...${reset}"
    find . -name "*-e" -type f -delete
    flutter format .
    flutter clean

    echo "${green}Project Size: $(find . -name "*.dart" | xargs cat | wc -c)${reset}"

    echo "${green}Building APK...${reset}"
    flutter build apk

    echo "${green}Sending Android to Beta...${reset}"
    cd ./android && fastlane beta && cd ..

    echo "${green}Builing IPA..${reset}"
    flutter build ios

    echo "${green}Sending iOS to Beta..${reset}"
    cd ./ios && fastlane beta && cd ..

    git commit -a -m "Sent to Beta"


elif [ ${action} = "release" ]; then

    echo "${green}Generating built files..${reset}"
    flutter packages pub run build_runner clean
    flutter packages pub run build_runner build --delete-conflicting-outputs

    pub global activate pubspec_version
    git commit -a -m "Production $(pubver bump minor)"

    echo "${green}Building Project...${reset}"
    find . -name "*-e" -type f -delete
    flutter format .
    flutter clean

    echo "${green}Project Size: $(find . -name "*.dart" | xargs cat | wc -c)${reset}"

    echo "${green}Building APK...${reset}"
    flutter build apk

    echo "${green}Sending Android to Production...${reset}"
    cd ./android && fastlane release && cd ..

    echo "${green}Builing IPA..${reset}"
    flutter build ios

    echo "${green}Sending iOS to Production...${reset}"
    cd ./ios && fastlane release && cd ..

    git commit -a -m "Sent to Production"

fi

echo "${green}Successfully completed${reset}"
  1. cd .. && cd androidを実行します

  2. fastlane initを実行し、表示されるプロンプトに従います

  3. Fastfile の内容を次のように置き換えます:

# Uncomment the line if you want fastlane to automatically update itself
# update_fastlane

default_platform(:android)

platform :android do
  desc "Prepare and archive app"
  lane :prepare  do |options|
    #bundle_install
    Dir.chdir "../.." do
      sh("flutter", "packages", "get")
      sh("flutter", "clean")
      sh("flutter", "build", "appbundle", "--release")
    end
  end
  
  desc "Push a new beta build to Google Play"
  lane :beta do
    prepare(release: false)
    upload_to_play_store(
      track: 'beta',
      aab: "../build/app/outputs/bundle/release/app.aab"
    )
    add_git_tag(
      grouping: "fastlane-builds",
      prefix: "v",
      build_number: android_get_version_code
    )
    push_to_git_remote
  end

  desc "Push a new release build to the Google Play"
  lane :release do
    prepare(release: true)
    upload_to_play_store(
      track: 'production',
      aab: "../build/app/outputs/bundle/release/app.aab"
    )
    add_git_tag(
      grouping: "release",
      prefix: "v",
      build_number: android_get_version_name
    )
    push_to_git_remote
  end
end
  1. fastlane add\_plugin versioning\_androidを実行し、必要に応じてパスワードを入力します

  2. cd ..を実行します

これで、アプリをベータ版としてリリースする準備が整いました!

iOS の場合:cd ios && fastlane betaを実行します

Android の場合:cd android && fastlane betaを実行します

Github Actions CI でリリースを自動化するために、これらの Fastlane サブフォルダーを使う方法を紹介する記事を近日公開予定です。

コメント