AppMill
  • ESTIM
    • ESTIMの特徴
    • ESTIMの使い方
    • 発注フロー
    • リリースまでの流れ
    • パーツ(機能)一覧
  • かんたん見積
  • 活用方法
  • Q&A
    • 契約・発注について
    • 開発について
    • ESTIMについて
  • メディア
  • お問い合わせ
  • Latest
  • 画面設計書
  • 要件定義
  • インタビュー
  • ディレクター
  • 仕様書
  • オフショア開発
  • trigger 
  • Crashlytics
  • Python
  • Fabric
  • Fastfile
  • Appfile
  • bundle id
  • Production Certificates 
  • Development Certificates 
  • Provisioning profile
  • LinterBot
  • YAMLファイル
  • Github
  • .xcconfig 
  • システムの環境
  • Cocoa pod
  • Gemfile
  • Bundle
  • Fastlane
  • Swiftlint
  • Travis CI
  • IOSプロジェクト
  • CI/CD
media-background

Fastlaneの概観

  • Travis CI
  • Fastlane
  • Gemfile
  • Appfile
  • Fastfile
person-image

ビン太郎

2020-07-13 16:09:18

Content

  1. 1. Fastlane とは?
  2. 2. 設定
  3. 3. 成分を説明します
  4. 4. Fastlaneの設定
  5. 5. ローカルでビルド
  6. 6. CIでビルド
  7. 7. Laneを説明します
  8. まとめ

1. Fastlane とは?

  • Fastlaneは製品を簡単で素早くリリースする為のツールです。
  • screenshotの作成、code signing処理 や ストアにアプリのリリースなど複雑な作業を行います。

 

上記の図の通りに、fastlaneは色々なツールが有ると見えますね!

  •   fastlaneの機能?
    • 製品のデプロイはベタかテスティングかよく確定します。
    • CIサーバーを含めてどのコンピューターにもデプロイできます。
    • 各機能を拡張したり、能率的にしたりします。
    • 簡単で素早くセットアップできます。
    • 複雑なコマンドを覚えることはなくて、fastlane だけで良いです。
    • 全部をGitで保存し、簡単に構成できます。
    • 段階的に自動通信します(例:IPAファイルパス)
    • 更新及リリースのスピードを上げます。
    • 製品の配達プログレスを十分に実行します。
    • 柔軟な構成です。
    • 170以上の機能が結合されておいています。
    • iOS , MacOS , Androidで使用できます。

今、必要なのはCIと結合することです。また、人間はチェーンの中で最も弱いリンクであるため、自動的に実行される作業が優先されます。

2. 設定

  • GemFileに追加します。
    • 全ての機能が使えるようにFastlaneの最新バージョンを使用するべきです。それは僕の貴重な経験です。
gem 'fastlane'
  • インストールのために、最初にローカルでコマンドを実行します。
    • バンドルを更新します
bundle install
  • Fastlaneを設定します
gem install fastlane
  • Init Fastlane
    • init コマンドを最初に実行します。 (僕はTravis CI ではこのコマンドを実行しません。)
fastlane init
  • 今回 option 4を選択します。他のオプションは次回紹介いたします。
  • 実行が完了したら、下記の2ファイルを含むfastlaneフォルダが出現します。  
    • Appfile
    • Fastfile

目標によってオプションを選択します。

3. 成分を説明します

  • Appfile :
    • アプリビルドに関しする情報を申告するところです。上記の3オプションの中にいずれかを選択すると、自動的にいくつかのフィールドが生成します。
      • app_identifier
      • apple_id
      • itc_team_id
      • team_id
  • Fastfile :
    • fastlaneの構成のために script を書くするファイルです。
    • fastlaneのスクリプトを作成するには、構文を理解するために取り敢えず Fastlane Documentation を読んだ方がいいです。また、これは非常に簡単で、ほとんどないので、ぜひ呼んでください。
    • Vim、TextEditでFastfileを開けられますが、atomをお勧めします。

4. Fastlaneの設定

​ 今、Fastlaneでアプリをビルドのためにスクリプトを書いてみます。それから、何かバグが有るかどうか確認しましょう。

platform :ios do
  desc "Try to test app"
  lane :test_lane do
    run_tests(scheme: "TheLastProject_Development")
  end
end

Warning !! 間違えやすいので、各桁を注意してくださいね!

 結果はTerminalにたくさん ログされるので、summary だけ関心した方が良いです。

上記のスクリプトを少し説明します。

1. default_platformを申告します。

2. iosであり、endで終わるのplatformタグを作成します。このタグによって、環境がandroidではなくて iosだと分かります。これから、スクリプトを追加したい場合はこのタグに追加します。

3. test scriptを書きます :

  • descはキーワードである(簡単に言えば、それはprint のような普通の函数です)、キーワードの後ろにテスクがあり、fastlaneはそのテスクが下のスクリプトの説明と分かります。テスクの意味は下記の通りです。
    • スクリプトを読むと、書いた人の意図が分かるためです。
    • fastlaneのログを読むと、スクリプトのどの行か分かるためです。
lane :test do
 
   #do some things here.
 
end.
  • 覚えやすいように、プログラム言語に比べてみますね。
lane = class 
test = class_name
do = {
...
end = }
  • terminal を開けて、テストしてみます。
fastlane test

5. ローカルでビルド

desc "Build App in local"
  lane :build_local do
    build_ios_app(
      scheme: "TheLastProject_Development", 
      workspace: "TheLastProject.xcworkspace",
      configuration: "Debug", 
      export_method: "development"
    )
   end
  • Fastfile を開けて、この簡単なlaneを編集します。
  • Terminalを開けて、コマンドを実行します。
bundle exec fastlane build_local

このような結果が大丈夫です。

  • Archiveが成功します。
  • プロジェクトの構成と接する
  • *.ipaファイルをエスクポートします

Fastfile  が綺麗になるように*.ipaファイルを1箇所に集めます。

default_platform(:ios)
 
platform :ios do
 
  desc "Build App in local"
  lane :build_local do
    make_build_folder
    build_ios_app(
      scheme: "TheLastProject_Development", 
      workspace: "TheLastProject.xcworkspace",
      configuration: "Debug", 
      export_method: "development",
      output_directory: "./build",
      output_name: "TheLastProject_Dev.ipa",
      silent: true,
      clean: true
    )
  end
 
  desc "Make build Folder"
  private_lane :make_build_folder do
    sh "mkdir -p ./build"
  end
 
end

ローカルで作業が完了しました。 続いてTravis CIに行きましょう。

6. CIでビルド

  • Fastfileに laneコードを書きます。
desc "Build App"
  lane :build do
    make_build_folder
    disable_automatic_code_signing(
      path: "TheLastProject.xcodeproj"
    )
    import_certificate(
      keychain_name: "ios-build.keychain",
      keychain_password: "travis",
      certificate_path: "./scripts/certs/dev.p12",
      certificate_password: "12345678"
    )
    update_project_provisioning(
      xcodeproj: "TheLastProject.xcodeproj",
      profile: "./scripts/profiles/TheLastProject_Dev.mobileprovision",
      target_filter: "TheLastProject",
      build_configuration: "Debug",
    )
    build_ios_app(
      scheme: "TheLastProject_Development", 
      workspace: "TheLastProject.xcworkspace",
      configuration: "Debug", 
      export_method: "development",
      output_directory: "./build",
      silent: true,
      clean: true,
      skip_profile_detection: true,
      export_options: {
        provisioningProfiles: { "com.fx.thelastproject": "TheLastProject_Dev" }
      }
    )
    enable_automatic_code_signing(
      path: "TheLastProject.xcodeproj"
    )
  end
  • .travis.ymlファイルを開けて、CIで新規作成のlane実行するのためにスクリプトを追加します。
script:
  - ./scripts/linter
  - bundle exec fastlane build

今、コンミットして、コードをデプロイして、 pull request を作って、結果を待ちます。

7. Laneを説明します

  • ローカルで実行すると、fastlaneはXcode の auto code signingを使用するので、プロビジョニングを検出して、成功にビルドできます。
  • 正しい構成を選択しなければなりません。
    • configuration
    • export_method
  • CIで実行すると、 fastlaneは manualモードに変更します。lane buildと実行順番は下記通りです。
    • ステップ 1: auto code siginingを消す
    • ステップ 2: certificateを上記作成したキーチェンに再度インポートします。
    • ステップ 3: auto code signingがオフになっているため、プロビジョニングが正しく必要です。 ですから  update_project_provisioningコマンドを実行する必要があります
    • ステップ 4: auto code signingを再度つけます。ローカルなら必要ですが、CIなら不要です。

次回の記事はアプリデプロイについて紹介します。

まとめ

  • Fastlaneの設定
  • IOSアプリビルドあるいはテストのためにスクリプトの書き方
  • *.ipaファイルをエクスポートする
  • Travis CIの上で自動ビルド.テスト
  • Travis CI
  • Fastlane
  • Gemfile
  • Appfile
  • Fastfile

関連記事

  • images-author ビン太郎

    Travis CIでiOSアプリのビルドトリガー

    2020-07-13 16:11:10
  • images-author ビン太郎

    FabricでiOSアプリケーションをデプロイする

    2020-07-13 16:10:20
  • images-author ビン太郎

    CI上でCertificateとProvisioning Profileを設定します

    2020-07-13 16:09:17
  • 運営会社

    • 株式会社Enlyt
    • Tel : 03-6555-3667
    Enlyt公式サイト
    • ESTIMの特徴
    • ESTIMの使い方
    • 発注フロー
    • リリースまでの流れ
    • パーツ(機能)一覧
    • かんたん見積
    • 活用方法
    • メディア
    • 契約・発注について
    • 開発について
    • ESTIMについて
ESTIM
  • ESTIM
  • かんたん見積
  • 活用方法
  • Q&A
  • メディア
お問い合わせ
  • All Right Reserved
  • Privacy Policy