Movatterモバイル変換


[0]ホーム

URL:


Zenn
noxi515noxi515
🚀

Xamarin iOSアプリをAzure PipelinesでビルドしてAppCenterに送信する(配布編)

に公開

はじめに

Azure Pipelines 使っていますか? 昨今は GitHub Actions に後塵を拝している感が否めませんが、マルチステージを利用した承認機能など、実は結構便利に利用できます。今回は Xamarin.Forms で実装した iOS アプリをビルドするための Azure Pipelines を組んでみます。またビルド結果を AppCenter へ送信し、テスト配布も行います。

全体を一本の記事にするととても長くなってしまうためビルドとテスト配布の2つに分割しました。本記事は後編の配布編です。

<span>ノンビリと書いていたら GitHub Actions にも承認処理が来てしまったような気がしますが、気にしたら負けです。</span>

環境

  • Visual Studio 2019 (16.8)
  • Xamarin iOS 14.4
  • mono 6.12
  • XCode 12.2

今回試したものはこちらに置いてあります。

https://github.com/noxi515/pipeline-sample-xamarin-ios

ビルドYAML全体

前編の記事でビルドした Xamarin iOS アプリを AppCenter へ送信する Pipeline YAML は全体でこのようになります。実際にはビルドと配布のマルチステージ構成となっていますので、 GitHub 上の YAML をご参照下さい。

variables:AppCenterAppSlug:'AppCenterの識別名 "チーム名/アプリ名" 'pool:vmImage:'ubuntu-latest'# 何でも良いsteps:# Pipeline Artifacts をダウンロード-download: current# AppCenter へビルドしたアプリを配信-task: AppCenterDistribute@3displayName:'Distribute to AppCenter'inputs:serverEndpoint:'AppCenterConnection'appSlug:'$(AppCenterAppSlug)'appFile:'$(Pipeline.Workspace)/drop/SampleApp.iOS.ipa'releaseNotesOption:'input'releaseNotesInput:'$(Build.SourceVersionMessage)'destinationType:'groups'isSilent:false

Azure Pipeline Tasks

download

downloadDownload Pipeline Artifact タスクのショートカットです。ドキュメントに記載の通りこのショートカットを使用すると$(Pipeline.Workspace)/ に Pipeline Artifacts がダウンロードされます。デプロイ系のジョブであれば自動で Pipeline Artifacts を持ってきてくれる気がしますが普通のジョブでは手動の点、注意が必要です。

https://docs.microsoft.com/ja-jp/azure/devops/pipelines/yaml-schema?view=azure-devops&tabs=schema%2Cparameter-schema#download

AppCenterDistribute@3

ビルドで生成された*.ipa ファイルを AppCenter で配布するために AppCenter へと送信するタスクです。このタスクを使用するには AppCenter から取得したトークンを元に ServiceConnection を作成することが必須となります。また AppCenter のアプリ登録を{userName}/{appName} の形式でappSlug に設定します。先行タスクで Pipeline Artifacts から ipa ファイルをダウンロードしているので、appFile にはダウンロードしたファイルのパスを指定します。
そしてちょっと面倒臭いことに AppCenter に登録するリリースノート情報が必須です。リリースノートの指定はreleaseNotesOptionreleaseNotesInput またはreleaseNotesFile を使用します。サンプルではビルド対象のコミットのコミットメッセージが格納されている Azure Pipelines のBuild.SourceVersionMessage 環境変数を固定で指定しています。

https://docs.microsoft.com/en-us/azure/devops/pipelines/tasks/deploy/app-center-distribute?view=azure-devops

task: AppCenterDistribute@3inputs:serverEndpoint:'AppCenterConnection'appSlug:'$(AppCenterAppSlug)'appFile:'$(Pipeline.Workspace)/drop/SampleApp.iOS.ipa'releaseNotesOption:'input'releaseNotesInput:'$(Build.SourceVersionMessage)'destinationType:'groups'isSilent:false

AppCenter ServiceConnection

続いて AppCenter へ送信するために必要な ServiceConnection の登録方法です。まずはプロジェクトの設定画面から ServiceConnection を選択して新規作成を行います。種別はVisual Studio App Center を選択します。選択した後の設定値は表を参考にして下さい。

設定名設定値
Server URL(元の値から変更しない)
API TokenAppCenter の設定画面からFullAccess スコープで出力したトークンキー
Service connection nameAppCenterDistribute タスクのserverEndpoint に指定する名前
Descriptionお好みで
noxi515

たけのこじゃがビー派。昔はAndroidしていたけど最近はdotnetやAngularの人。

バッジを贈って著者を応援しよう

バッジを受け取った著者にはZennから現金やAmazonギフトカードが還元されます。

たけのこじゃがビー派。昔はAndroidしていたけど最近はdotnetやAngularの人。


[8]ページ先頭

©2009-2025 Movatter.jp