自分が使ってる個人的に便利なfastlaneのlaneをメモ代わりに残しておきます。
リリースする時のlaneはまだfastlane経由でリリースしてないので書けてません。
多分testflightと同じような感じかな。
バージョン等
Xcode 10.0
Build version 10A255
fastlane 2.107.0
Fabricのbetaで配布
概要
- リリースノートを書く(最後に改行して
end
と書くまで書き続けられる) - 通常のアイコンにBETAのアイコン付ける
- アーカイブ
- BETAのアイコンを変更したので元に戻すためgitをリセット
- アップロード
- 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を作る