Swift・iOS

Swiftを中心に学んだことを記録に残すブログです。技術に関係ない記事もたまに書いています。

【fastlane】CocoaPodsでライブラリ管理しているアプリ(xcworkspaceファイル)をビルドする

 

はじめに

CocoaPodsでライブラリ管理しているアプリをビルドする手順を記載します。

 

環境

macOS Catalina 10.15.7

Xcode 12.2

・CocoaPods 1.10.0

bash 3.2.57

・bundler 2.1.4

・fastlane 2.170.0

Visual Studio Code 1.50.1

GitHub

 

手順

before_allにcocoapodsを追加

  before_all do
    cocoapods
  end

 

ビルドステップでworkspaceを指定

・run_testsの場合

    run_tests(workspace: "FastlaneTest.xcworkspace",
              device: "iPhone 12 Pro",
              scheme: "FastlaneTest")

 

・build_appの場合

    build_app(
      workspace: "FastlaneTest.xcworkspace",
      scheme: "FastlaneTest",
      configuration: "Release",
      silent: true,
      clean: true
    )

 

手順の内容を反映したFastfileの一例

手順の内容だけでは反映後の全体像をイメージしにくいかもしれないため、以下を一例として記載。

default_platform(:ios)

platform :ios do
  before_all do
    ENV["FASTLANE_USER"] = "{Apple Developer Programに登録しているApple IDのアカウント名(メールアドレス)}"
    ENV["FASTLANE_PASSWORD"] = "{Apple Developer Programに登録しているApple IDのパスワード}"
    ENV["MATCH_PASSWORD"] = "{matchの実行時に必要なパスワード}"
    ENV["FASTLANE_APPLE_APPLICATION_SPECIFIC_PASSWORD"] = "{アプリケーション固有のパスワード}"
    ENV["SLACK_URL"] = "{Webhook URL}"

    cocoapods
  end

  lane :test do
    run_tests(workspace: "FastlaneTest.xcworkspace",
              device: "iPhone 12 Pro",
              scheme: "FastlaneTest",
              skip_slack: true)
  end

  lane :release do
    sync_code_signing(type: "appstore") 
    increment_version_number
    increment_build_number
    build_app(
      workspace: "FastlaneTest.xcworkspace",
      scheme: "FastlaneTest",
      configuration: "Release",
      silent: true,
      clean: true
    )
    upload_to_app_store(
      skip_screenshots: true,
      skip_metadata: false,
      force: true
    )
  end

  after_all do |lane|
    slack(
      message: "#{lane} has suceeded!"
    )
  end

  error do |lane, exception|
    slack(
      message: exception.message,
      success: false
    )
  end

end

 

おわりに

ちょっとした内容系の記事が今後もいくつか続きます・・・。

 

参考

cocoapods - fastlane docs

run_tests - fastlane docs

build_app - fastlane docs

これから始めるfastlane - Qiita

アプリの各種作業自動化ツール、fastlaneの導入 - Qiita