モチベーション
fastlaneを使用して,検証端末の登録を楽に行いたい.
特に,棚卸し時の業務を高速で行いたい.
課題
検証端末を追加する場合,都度depeloperサイトから1台ずつ登録している.
- 1年に1度の検証端末の棚卸しに時間がかかっている
- 開発メンバーや開発PCを追加する度に,メンバー自身がdepeloperサイトから登録する必要がある
- 新規検証端末を追加する度に,depeloperサイトから登録する必要がある
課題の解決方法
fastalne register_devicesを導入して解決する
導入後は,上記の課題が下記のように解決される
- 指定のフォーマットでtxtを作成し,コマンドを実行する
- 追加に成功したら,slackのチャンネルに端末の追加が知らされる
!depeloperサイトより,txtによって複数端末を一気に登録できます.本記事では,あくまでサイトにアクセスせずに完結することを目指したものです!
register_devicesの導入手順
fastfileの編集
fastfileにlaneを追加します
Tips. 個人ではなく,会社等のチームで使用する場合は,team_id は明記しておくとよいです.
Optional, if you"re a member of multiple teams, then you need to pass the team ID here.
https://docs.fastlane.tools/actions/register_devices/ より
desc "Register Devices"
lane :register_new_devices do
# see the Apple Sample (http://devimages.apple.com/downloads/devices/Multiple-Upload-Samples.zip)
register_devices(
devices_file: "./fastlane/devices.txt",
team_id: "ABCDEFGH"
)
match_after_register
end
desc "match_after_register"
lane :match_after_register do
# 前回との差分を見て,新しいデバイスが追加されているなら新しくprovisioning profileを作成する
match(type: "develop", force_for_new_devices: true)
match(type: "adhoc", force_for_new_devices: true)
slack(message: "<@hoge> 新しい端末が登録されました!")
end
sample_devices.txtの用意
http://devimages.apple.com/downloads/devices/Multiple-Upload-Samples.zip より,txtファイルをダウンロードします.
このうち,xxx-ios.txtのファイルをsample_devices.txt
としてfastlane/
に配置します.
実際は,sample_devices.txt
のフォーマットに従い,devices.txt
を作成します.
Device ID Device Name
A123456789012345678901234567890123456789 NAME1
B123456789012345678901234567890123456789 NAME2
Tips. .gitignoreに,fastlane/devices.txt
を追加しておきましょう.本物のUUIDは公開する情報ではありません.
Tips. Makefileに,register_new_devices
が動作できるように追記しておくと楽です.また,READMEにも書いておくともっといいと思います.
Tips. Makefileに,1端末ずつ追加するregister_new_device
を追加するものありです!
.PHONY: register_new_devices
register_new_devices:
bundle exec fastlane register_new_devices
.PHONY: register_new_device
register_new_device:
bundle exec fastlane run register_device
bundle exec fastlane match_after_register
register_devicesの実行
下記コマンドによって,register_devicesを実行します
AppleIDを求められるので,メールアドレスを入力してください
Tips. team_idのようにusernameが存在しますが,チーム内でコンフリクトするので,都度入力する方がいいと思います.
bundle exec fastlane register_new_devices
or
make register_new_devices
成功すれば,下記のように表示されます
[00:27:06]: Running lane `register_new_devices`. Next time you can do this by directly typing `fastlane register_new_devices` 🚀.
[00:27:06]: Driving the lane 'register_new_devices' 🚀
[00:27:06]: ------------------------------
[00:27:06]: --- Step: register_devices ---
[00:27:06]: ------------------------------
[00:27:07]: To not be asked about this value, you can specify it using 'username'
[00:27:07]: Optional: Your Apple ID: xxx@yyy.com
Available session is not valid any more. Continuing with normal login.
[00:27:37]: Fetching list of currently registered devices...
[00:27:37]: Successfully registered new devices.