技術ブログ

プログラミング、IT関連の記事中心

fastlaneでAppStoreへのリリースビルドの自動化

もくじ

■はじめに

fastlaneの環境構築はできている前提で記載しています。
AppStoreへのリリースビルドのlaneの解説です。

■手順

fastlaneの生成

cdコマンドでプロジェクトのディレクトリをカレントディレクトリにする。

以下のコマンドで、fastlaneの初期化をする。

fastlane init

質問は割愛しますが、最初の質問?のテンプレートを使うかどうか?は使用しないようにしてください。

AppStoreへのリリースビルドのlaneを作成

以下のファイルをテキストエディタなどで開く

/プロジェクト/fastlane/Fastfile

以下の記載を行う。

default_platform(:ios)

platform :ios do

  lane :release_app do
    build_app(scheme: "[アプリ名]",
            workspace: "[アプリ名].xcworkspace",
            include_bitcode: true)
    upload_to_app_store(
      username: "[Apple ID]",
      force: true,
      skip_screenshots: true,
      skip_metadata: true
    )
  end
end

以下に関しては、それぞれの環境で書き換えてください。

[アプリ名]
[Apple ID]

AppStoreへのリリースビルドのlaneの解説

以下は、アプリをビルドするフローです。

build_app(scheme: "[アプリ名]",
            workspace: "[アプリ名].xcworkspace",
            include_bitcode: true)

以下はAppStoreへIPAをアップロードするフローです。

    upload_to_app_store(
      username: "[Apple ID]",
      force: true,
      skip_screenshots: true,
      skip_metadata: true
    )

upload_to_app_storeのオプション

以下のオプションは、HTMLのプレビューをスキップするオプションです。
trueとすることで、HTMLプレビューをスキップできます。

force

以下のオプションは、スクリーンショットのアップロードスキップするオプションです。
trueとすることで、スクリーンショットのアップロードスキップできます。

skip_screenshots

以下のオプションは、メタデータ(アプリの説明など)のアップロードスキップするオプションです。
trueとすることで、メタデータ(アプリの説明など)のアップロードスキップできます。

skip_metadata

ビルド番号の自動インクリメント

アプリバージョンならまだしも、ビルドバージョンをいちいち書き換えるのは面倒ですよね?
以下の記載をlaneに追加することで、ビルドバージョンを自動で追加することができます。

注意点として、ビルド番号は以下の形式にする必要があります。
※純粋な数字にしてください。

【OK】
1
【NG】
1.0

【ビルド番号のインクリメント lane】

    increment_build_number

ちなみに、以下でGitにPushできます。

    commit_version_bump(
      force: true
    )

    push_to_git_remote(
      force: true
    )

全て合わせたlane

上記の内容を全て合わせたlaneは以下です。

default_platform(:ios)

platform :ios do

  lane :release_app do

    increment_build_number
    commit_version_bump(
      force: true
    )
    push_to_git_remote(
      force: true
    )
    build_app(scheme: "[アプリ名]",
            workspace: "[アプリ名].xcworkspace",
            include_bitcode: true)
    upload_to_app_store(
      username: "[Apple ID]",
      force: true,
      skip_screenshots: true,
      skip_metadata: true
    )

  end
end

以下のコマンドでlaneを実行することができます。

fastlane release_app