iOSアプリ開発では開発以外のところで色々と面倒なことがあります。
その課題の1つが端末が増えた時の対応で、作業内容は以下になります。
-
- 新しい端末のUDIDをAppleDevCenterに登録
-
- ProvisioningProfileを更新。
-
- 更新したファイルを自身のマシンやJenkinsのマシンに設置。
上記を手動でやるのは非常に面倒です。
そこで、上記の作業をcupertinoで自動化します。
自動化方法
1) 端末の登録
本来は以下で出来るはずなのだけど、現状出来ていない。
ios devices:add "Name"=UDID -u "userid" -p "password"
issueに書かれているが、修正されていない模様。
仕方がないので、issueに書いてあるfastlaneのspaceshipを利用する。
require 'spaceship'
Spaceship.login("user", "password")
Spaceship.device.create!(name: "NAME", udid: "UDID")
2) Provisioning Profileの更新
端末を登録したら、以下のコマンドで端末を登録したいProvisioning Profiles名と端末の情報を指定してProvisioningProfileを更新する。
iOS profiles:manage:devices:add ProvisioningProfileName "Name"=UDID -u "userid" -p "password"
3) Provisioning Profileのダウンロード
設定が全て終わったProvisioning Profileをダウンロードし、ファイルを上書きする。
- 全てをダウンロードする場合
ios profiles:download:all -u "userid" -p "password" > /dev/null 2>&1
- 指定してダウンロードする場合
ios profiles:download ProvisioningProfile Name -u "userid" -p "password" > /dev/null 2>&1
ダウンロードが出来たら、ファイルを上書きすればOK
mv *.mobileprovision ~/Library/MobileDevice/Provisioning\ Profiles/
メモ
誰でも更新ができるようにJenkinsでjobを作る場合のメモを書いておく。
- パスワードについては、
環境変数としてパスワードをインジェクト
を使ったりすると値が見えなくなるので良い。 - 3)はJenkinsのjobがはしる全てのマシンで更新をかける必要があるので「マルチ構成プロジェクトのビルド」を利用するのが良い。