読者です 読者をやめる 読者になる 読者になる

fastlaneでipaを作るだけのlane

iOS fastlane

fastlaneを使ってAdHocの.ipaを作るだけのlaneを書いた時のメモです。

環境

  • Xcode: 8.2.1
  • Ruby: 2.2.3
  • fastlane: 2.13.0
  • gym_version: 2.13.0

fastlane initが無事に済んだ後の状態を想定しています。

AdHocのipaを作るだけのlane

fastlane_version "2.13.0"
default_platform :ios

platform :ios do
  before_all do
    # どのlaneでも実行する前に必ずやること
  end

  # ipaを作るだけのlane
  lane :make_ipa do
    gym(
      workspace: "プロジェクト名.xcworkspace",
      configuration: "Debug",
      scheme: "プロジェクト名",
      clean: true,
      include_bitcode: false,
      output_directory: "./build",
      output_name: "プロジェクト名.ipa",
      export_method: "ad-hoc"
    )
  end

  after_all do |lane|
    # どのlaneでも実行が終わった後に必ずやること
  end

  error do |lane, exception|
    # エラーが起きた時にやること
  end
end

ここではmake_ipaという名前のlaneにしましたが、好きな名前を付けましょう。

AdHocビルドにしたかったので

  • export_method: "ad-hoc"
  • configuration: "Debug"

という設定にしました。

include_bitcode

プロジェクトでENABLE_BITCODENOにしている都合で一応明記してみました。(でも不要かもしれない)

output_name

今回はプロジェクト名.ipaということにしました。どんな名前でもOK。

output_directory

.ipaを出力するディレクトリを指定できます。
好きな場所を指定しても良いし、記述しなくてもOK。(指定なしの場合はプロジェクト直下に出来上がります)

laneを実行する時

$ fastlane make_ipa

実行したいlaneの名前を指定します。

つまずいた事

シェルの環境設定に問題がありビルドエラー

ビルド時に以下のようなエラーメッセージが出てしまいました。

 Exit status: 1
 Your shell environment is not correctly configured
 Instead of UTF-8 your shell uses US-ASCII
 Please add the following to your '~/.bashrc':

        export LANG=en_US.UTF-8
        export LANGUAGE=en_US.UTF-8
        export LC_ALL=en_US.UTF-8

 You'll have to restart your shell session after updating the file.
 If you are using zshell or another shell, make sure to edit the correct bash file.
 For more information visit this stackoverflow answer:
 https://stackoverflow.com/a/17031697/445598

.bashrcに、

export LANG=en_US.UTF-8
export LANGUAGE=en_US.UTF-8
export LC_ALL=en_US.UTF-8

これらを追記する必要があるということでした。

なので、.bashrcに追記して、

$ source .bashrc
$ exec -l $SHELL

.bashrcを読み込み直して(これだけではまた同じエラーに見舞われたので)、シェルを再起動させてから、再びfastlane make_ipaを実行しました。

すると先ほどのエラーは消え、無事に.ipaが作成できました!

参考