LoginSignup
3

More than 3 years have passed since last update.

BitriseのWorkflowをSlackから起動してiOSのデバイス登録をしよう!

Last updated at Posted at 2019-07-11

TL;DR

  • Slackのslash commandの使い方が(なんとなく)わかるよ
  • BitriseのWorkflowをSlackから起動する方法が(なんとなく)わかるよ
  • fastlaneでデバイス登録する方法が(なんとなく)わかるよ
  • fastlaneで証明書更新する方法が(なんとなく)わかるよ

前提

  • Bitriseの使い方がある程度わかる
  • fastlaneの使い方がある程度わかって, matchで証明書を管理している
    • matchでの証明書管理をしてない場合はこれを機会にこちらを参考に構築してみるのも良いかもしれません.

手順

  1. fastlaneにデバイス登録, 証明書更新をするlaneを作る
  2. Bitriseにデバイス登録, 証明書更新するWorkflowを作る
  3. BitriseからWebhook URLを取得する
  4. Slackのslash commandを登録する

まずはlaneを作ろう

Fastfileに下記の様な内容を登録

Fastfile

# このlaneをBitriseから起動
lane :add_device_and_update_certificates do
  add_device(
    name: ENV["DEVICE_NAME"], # Slackから環境変数で指定
    udid: ENV["UDID"] # Slackから環境変数で指定
  )
  update_certificates
end

# デバイス登録をする
lane :add_device do |options|
  if options[:name] && options[:udid]
    # こちら参照->https://docs.fastlane.tools/actions/register_devices/
    register_devices(
      devices: {
        options[:name] => options[:udid]
      }
    )
  else
    UI.error "Usage: fastlane add_device name:'New device name' udid:'UDID'"
  end
end

# 証明証を更新する
lane :update_certificates do
  # こちら参照->https://docs.fastlane.tools/actions/match/
  match(
    type: "development",
    app_identifier: "tihimsm.app",
    force_for_new_devices: true, # デバイスが追加されていた場合証明書を更新する
    readonly: false
  )
end

一つのlaneにregister_devicesとかmatchとか直接書いてもいいんだけど, 一応単品で使える様にlane分けてます.

BitriseにWorkflowを設定しよう

↓みたいな感じでfastlane使えるWorkflowを作ります
スクリーンショット 2019-07-11 15.18.57.png
そして↓のようにlane名(add_device_and_update_certificates)を指定します
スクリーンショット 2019-07-11 15.20.37.png

fastlaneもBitriseも適宜公式ドキュメント見て確認してくださいね.

BitriseからWebhook URLを取得しよう

codeタブのINCOMING WEBHOOKSのブロックからURLを取得します.
SETUP MANUALYを選択し, プルダウンからSlackを選択して, 表示されたURLをコピーしときます.
スクリーンショット 2019-07-11 15.23.59.png

Slack commandを作ろう

SlackのサイドバーのAppsにある「+ボタン」をクリックします.
Appsの中から「Slash Commands」を選択しましょう.
スクリーンショット 2019-07-11 15.28.28.png
「Add Configuration」から進み, 適当なコマンド名をつけちゃいます.
スクリーンショット 2019-07-11 15.30.49.png
Slash Commandを作成すると↓のような画面が表示されるので, URL覧に先ほどBitriseから取得したURLを入力しましょう.
スクリーンショット 2019-07-11 15.31.37.png
あとはアイコンの設定や, コマンドのヒントなどは任意で設定してください.

あとはSlackでコマンドを叩きましょう

こんな感じの長ったらしいコマンドをSlackで入力します.
/test_command workflow: add_device_and_update_certificates|b: develop|ENV[DEVICE_NAME]: デバイス名|ENV[UDID]: UDID

  • workflow: BitriseのWorkflow名
  • b: githubのブランチ名
  • ENV[DEVICE_NAME]: デバイス名が入ってfastlaneに渡されます
  • ENV[UDID]: UDIDが入ってfastlaneに渡されます

詳しくは公式ドキュメントをご覧ください.

まとめ

いかがでしたでしょうか?
デバイス登録&証明書更新はiOS開発の面倒な作業の一つですが, コマンド一つで簡単にできるようになります.

複数証明書を更新したい場合などはupdate_certificatesの中でループさせるなどすれば, 一気に複数証明書を更新も可能です.

もっと良い方法知ってる方たくさんいると思うので, CI周りの特殊な訓練を受けている方々のご意見お待ちしております.

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
3