【iOS】最新fastlane導入[備忘録]
fastlaneとは
fastlane導入
# Using RubyGems $ sudo gem install fastlane -NV # Alternatively using Homebrew $ brew install fastlane
あとは対象のプロジェクトのルートで$ fastlane init
をすることでfastlaneディレクトリ内にFastfileやAppfileが生成されます。
Bundler導入
Bundlerとは?
Rubygemsは個別で手動インストールすることが可能ですが、互換性の問題や複数人開発で各環境で使用するライブラリの名前やバージョンを統一する必要が出てきます。
こういった場合に、gem同士の互換性を保ちながら各gemの導入・管理を行ってくれるのがBundlerです。
- Bundler install
$ gem install bundler
Gemfileとは
Gemfileとはるgemの一覧を管理する設定ファイルです。 bundlerによってインストールされるgemをGemfileで管理を行います。
Gemfileの作成
$ bundler init
Gemfile編集
source "https://rubygems.org" gem 'fastlane' <-追加 gem "cocoapods" <- cocoapodsもここで管理すると便利
- PATHを指定してインストール
# そのプロジェクト内でのみ、bundle install実行時のインストール先をvendor/bundleに設定する(local install) $ bundle config set --local path 'vendor/bundle' $ bundle install
※
- $ bundle install --path vendor/bundle
はBundler3では使用できなくなるためBundler 2.1で[DEPRECATED]となりました。
- PATHを指定しない$bundle install
だと後々fastlaneのplugin周りでsuperuser権限でないと実行できない事象に遭遇したためPATH指定しました。
- bundle経由でfastlane設定
$ bundle exec fastlane init
これで$ fastlane init
同様にFastfileなど生成されます。
Appfile記述例
team_id "TEAM ID" team_name "TEAM NAME" app_identifier "BUNDLE IDENTIFIER" # The bundle identifier of your app apple_id "ACCOUNT MAIL" # Your Apple email address
Fastfile記述例
# This file contains the fastlane.tools configuration # You can find the documentation at https://docs.fastlane.tools # # For a list of all available actions, check out # # https://docs.fastlane.tools/actions # # For a list of all available plugins, check out # # https://docs.fastlane.tools/plugins/available-plugins # # Uncomment the line if you want fastlane to automatically update itself # update_fastlane default_platform(:ios) platform :ios do desc "Generate ipa" lane :generate do # add actions here: https://docs.fastlane.tools/actions gym( workspace: "hoge.xcworkspace", configuration: "Debug", scheme: "hoge-ios-release", silent: true, clean: true, output_directory: "./build/ipa/distribution/" + Time.new.strftime("%Y%m%d%H%M"), output_name: "AppDistribution.ipa", export_method: "ad-hoc", export_options: { provisioningProfiles: { "com.fuga.hoge-ios" => "hoge-adhoc" }, signingStyle: "manual" } ) slack( message: "App successfully Generated!", slack_url: "WEB HOOK URL" ) end
SlackのWebhook URL は以下のURLから生成・取得できます。
ひとまずipaを生成して完了通知をSlackに投げるといったものです。
- fastlane実行
$bundle exec fastlane generate
2段階認証対応
Appleのアカウントにアクセスする際は2段階認証を要求されます。 fastlaneでAppStoreへipaをアップロードする際もこれに該当するのでその対処方法です。
1. Appパスワード生成
appleid.apple.com
上記Appleのリンクにサインイン後にセキュリティセクションの「App用パスワード」を生成します。
任意のラベル名を設定後にパスワードが表示されますのでそれを環境変数FASTLANE_APPLE_APPLICATION_SPECIFIC_PASSWORD
に保存します。
$ export FASTLANE_APPLE_APPLICATION_SPECIFIC_PASSWORD={App用パスワード}
2. ログインセッションの保存
CLIではログインセッションを保存しておきます
fastlane spaceauth -u user@email.com
※メールアドレスはAppleIDで使用しているもの
上記コマンドを入力するとSuccessfully logged in to App Store Connect
が表示されその下にPass the following via the FASTLANE_SESSION environment variable:
と表示されます。
そこに記載のある長い文字列を環境変数FASTLANE_SESSION
に保存します。
一番簡単なのはExample:
と表示されているところをコピー/ペーストでもいいです。
$ export FASTLANE_SESSION={長い文字列}
$ env
で保存した環境変数が表示されていれば問題ありません。