Fastlaneにてcordova(ionic)プロジェクトのiOSアプリをDeploygateにアップロードする手順

今回やりたいことは以下
・cordova(ionic)プロジェクトで作成したアプリをビルド
・ビルドしたアプリをデプロイゲートへアップロード
とりあえずはデプロイゲートまでアップするのが目標

fastlaneインストール

fastlaneをインストール

$ sudo gem install fastlane
AdHoc版のビルドまでできるように

ionicプロジェクトの作成して最新のcordova-iosをインストール

$ ionic start --v1 fastlane_demo
$ cd $_
$ ionic platform rm ios && ionic platform add ios@latest

fastlaneディレクトリを作成

$ cd fastlane_demo
$ mkdir fastlane

fastlane/Appfile

app_identifier "xxx.yyy.zzz" # アプリのバンドルID
apple_id "xxx@xxx"           # AppleID
team_id "xxxxxxxx"           # TeamID

team_idはxcodeのSigningのTeamで選択してるやつのID。
IDはAppleDeveloperのMembershipから確認できる。

fastlane/Fastfile

platform :ios do
  desc "AdHoc Build For iOS"
  lane :build do
    gym(
      workspace: 'platforms/ios/fastlane_demo.xcworkspace',
      silent: true,
      clean: true,
      export_method: "ad-hoc"
    )
  end
end

こちらのFastfileにタスクを記述してコマンドで実行する形。

$ fastlane ios build

成功すればプロジェクト直下のディレクトリに ipaファイルとdSYMファイルが出来上がってるはず。
基本的にxcodeからアーカイブしてエクスポートしてるのと同じはずなので、うまくいかない場合はxcodeから試してみてうまくいくか確認するとよいかも。

Deploygateにアップロード

あとはデプロイゲートにアップロードする

fastlane/Fastfile

platform :ios do
  ・・・
  desc "Upload Deploygate For iOS"
  lane :upload_deploygate do
    deploygate(
      api_token: 'xxxxx'  # デプロイゲートのAPIキー
      user: 'xxxxx',      # デプロイゲートのアカウント
      ipa: 'xxx.ipa'      # ipaのパス
    )
  end
end

実行

$ fastlane ios upload_deploygate
まとめ

git cloneしてから一連の作業をまとめるとこんな感じかな

$ ionic prepare && fastlane ios build && fastlane ios upload_deploygate

とりあえずCircleCIに乗せる前段階の調査としてこんな感じで。以上です