Fastlaneでipaを吐き出してみる

iOSのプロジェクトにFastlaneを入れてipaを吐き出してみます。

インストール

fastlaneのインストール

gem install fastlane

プロジェクト直下にGemfileを作成

touch Gemfile

Gemfileを開き下記の2行を追加

source "https://rubygems.org"
gem 'fastlane'

プロジェクト内にインストール

bundle install --path=vendor/bundle

bundlerで入れるとプロジェクト内にインストールされるので、チームで同じversionのfastlaneを使うことができます。

vender/bundle/ruby/2.X.X/gems/fastlane
こんな感じに入っていれば成功です!

bundlerが入っていない場合

入っていない場合は下記のコマンドでbundlerが入ります。
入っている場合は飛ばしてください

gem install bundler

Fastfileの作成

fastlaneで実行する命令はFastfileにlaneという形で記述をします。

まずはfastlaneの作成を行います。

bundle exec fastlane init

なんの目的でfastlaneを聞かれるので、今回は4を選択します。


エンターで進んでいくとfastlaneというフォルダが作成されます。Fastfileを確認したいのでディレクトリを潜ります。

cd fastlane

Fastfile を開きます。

open 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 "Description of what the lane does"
  lane :custom_lane do
    # add actions here: https://docs.fastlane.tools/actions
  end
end


Laneを作る

赤で塗りつぶしている部分がデフォルトで作成されたlaneです。このlaneを自作のlaneに修正します。

laneの部分を以下のようなコードに書き換えてください。

 lane :make_debug_ipa do
	gym(
	  configuration: "Debug",
	  clean: true,
	  output_directory: "./build",
	  output_name: "FastlaneTest.ipa",
	  export_method: "development"
	)
  end

ipaの作成

以下のコマンドで実行します。make_debug_ipaとなっているところはlane名なので作成したlane名を記述します。

bundle exec fastlane make_debug_ipa

少し時間がかかると思いますが、エラーなく成功するとBuildフォルダ以下にipaが吐き出されているはずです。

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 "Description of what the lane does"
  
  before_all do
  ## 開始前の処理
  end

  ## ipaを吐き出す自作のレーン
  lane :make_debug_ipa do
	gym(
	  configuration: "Debug",
	  clean: true,
	  output_directory: "./build",
	  output_name: "ScrollViewOnTableViewTest.ipa",
	  export_method: "development"
	)
  end
  
  after_all do |lane|
  ## 終了後の処理
  end
  
  error do |lane, exception|
  ## エラー時の処理
  end
end


参考文献

[iOS] fastlaneを導入する手順について

これから始めるfastlane

fastlaneでipaを作るだけのlane