15
12

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

実際に使ってるfastlaneの個人的に便利なlane集

Posted at

自分が使ってる個人的に便利なfastlaneのlaneをメモ代わりに残しておきます。
リリースする時のlaneはまだfastlane経由でリリースしてないので書けてません。
多分testflightと同じような感じかな。

バージョン等
Xcode 10.0
Build version 10A255
fastlane 2.107.0

Fabricのbetaで配布

概要

  1. リリースノートを書く(最後に改行してendと書くまで書き続けられる)
  2. 通常のアイコンにBETAのアイコン付ける
  3. アーカイブ
  4. BETAのアイコンを変更したので元に戻すためgitをリセット
  5. アップロード
  6. Slackでチームに通知
fastfile
    desc "Betaで配布します。"
    lane :beta do |options|
        scheme = "スキーム名"
        ipa_path = "アウトプット名.ipa"
        provisioning_profile = "プロビジョニングファイル名"
        bundle_identifier = "バンドルID"

        if options[:releaseNotes]
            releaseNotes = options[:releaseNotes]
        else
            releaseNotes = prompt(
                text: "リリースノートを記載して最後にend: ",
                multi_line_end_keyword: "\nend"
            )
        end

        # アイコンにBetaのバッヂを付ける
        add_badge(dark: true)
        gym(
            scheme: scheme,
            export_method: "ad-hoc",
            export_xcargs: "-allowProvisioningUpdates",
            export_options: { 
                provisioningProfiles: {
                  bundle_identifier => provisioning_profile
                }
            },
            output_name: ipa_path
        )

        # バッヂ付けたやつをリセット
        force_git_reset(file: 'パスは適時変えて/Assets.xcassets/AppIcon.appiconset/*')

        crashlytics(
            crashlytics_path: "./Pods/Crashlytics/submit",
            notes: "#{releaseNotes}\n#{Time.new.to_s}",
            groups: ['テスターのグループを適時指定して'],
            ipa_path: ipa_path
        )
        upload_symbols_to_crashlytics

        # betaに配布したことをslackチャンネルに通知
        slack(
            success: true,
            message: "新しく#{scheme}をアップロードしたので、確認しましょう。\n\n#{releaseNotes}",
            default_payloads: []
        )
    end

gitのコミットしてPUSH

概要

gitの変更点をすべてコミットしてプッシュする。
バージョンとか上げたあと、コミットしてプッシュしたくなることが多いのでまとめてる。
直接使うことないのでprivate_laneにしてる

    private_lane :commit_push do |options|
        git_commit(path: "./*", message: options[:message])
        push_to_git_remote
    end

バージョンだけ上げる

概要

以下のように3つの種類で聞かれるので、数字かmajorなどのアルファベットで答える。
それぞれ、各バージョン番号がインクリメントされる。

1. major
2. minor
3. patch
    desc "バージョンだけ上げます"
    lane :update_version do
        # 変更したあとコミット・プッシュするのでgitが汚れてないか確認
        ensure_git_status_clean
        bump_type = UI.select("どのバージョンを上げますか?: ", ["major", "minor", "patch"])
        increment_version_number(bump_type: bump_type)
        # 上で作ったprivate_lane
        commit_push(message: "バージョン更新:#{get_version_number(target: "スキーム名")}")
    end

ビルド番号だけ上げる

    desc "ビルド番号だけ一つあげます"
    lane :increment_build do
        # 変更したあとコミット・プッシュするのでgitが汚れてないか確認
        ensure_git_status_clean
        increment_build_number
        # 上で作ったprivate_lane
        commit_push(message: "ビルド番号更新:#{get_build_number}")
    end

TestFlightで配布

バージョンやビルド番号を上げるか確認されてテストフライトにアップロードします。

    desc "TestFlightにアップロードします。"
    lane :testflight do
        if prompt(text: "バージョンを上げますか?", boolean: true) 
            update_version
        end

        if prompt(text: "ビルド番号を上げますか?", boolean: true) 
            increment_build
        end

        build_app(
            workspace: "適時変更.xcworkspace", 
            scheme: "適時変更",
            export_options: { 
                provisioningProfiles: {
                  "バンドルID" => "プロビジョニングファイル名"
                }
            }
        )
        upload_to_testflight
    end

参考ページ

slack - 公式
badge - 公式
fastlane で build/version number をインクリメントする
Xcode 9 + fastlaneでもManualでipaを作る

15
12
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
15
12

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?