Xamarinはモバイルアプリにおけるクロスプラットフォームのビルド作業のツールを提供しています。もちろんBitriseはXamarinにも対応しています:ここのガイドは以下の手順を説明します:
- BitriseへXamarinアプリの追加
- アプリのテスト
- アプリのデプロイ
全ての手順は一つのワークフローで完了できますが、2つ以上のワークフローを使用することをおすすめします:1つ目をアプリのテスト用、2つ目をアプリのデプロイ用としてワークフローを使用してください。異なるプロジェクトであっても、別々のワークフローを用意する必要はありません。iOSとAndroidアプリの両方とも、一つのワークフローでビルドができます。
- 始める前に
- Xamarinアプリの追加
- Dependenciesのインストール
- Xamarinアプリのテスト
- Xamarinアプリのデプロイ
始める前に ⚓
BitriseへXamarinアプリを追加する前に、Xamarin solution fileを用意する必要があります。Bitriseがそのsolution fileを検知し、全ての利用可能な solution configurationsが表示されます。
Xamarin solution fileは複数のプロジェクトを含めることができます。あなたのsolution configurationがどのプロジェクト(solution items)がビルドされるのか測定し、ビルドする際に使用するproject configuration type(例:debug または release)も測定します。
Visual Studioにてsolution configurationsのセットアップを行ってください。Solution file上にはBitriseでビルドを行う全てのsolution configurationsが含まれていなければなりません。また、一定のsolution platformでビルドを行う場合、そのプラットフォームに互換性があることを確認してください。
Xamarinアプリの追加 ⚓
- 上段にあるメニューバーより
+
をクリックしてAdd app
を選択します。 - Create new Appのページにて、アプリを追加したいアカウントを選んでください。
- アプリのプライバシー設定を行ってください;Private または Publicを選んで
Next
をクリックします。 - あなたのレポジトリをホストするGit hosting serviceを選択してください。その後、プロジェクトをホストするレポジトリを見つけて選択します。詳しい内容は、レポジトリに接続するをお読みください。
- レポジトリのアクセスのセットアップが完了したら、
No, auto-add SSH key
をクリックします。SSHキーについてはこちらを確認してください。 - あなたのプロジェクトのconfigurationが含まれたBranchの名前を入力します。そして
Next
をクリックします。 - Bitriseがプロジェクトを確認を行うのでしばらくお待ち下さい。ここではBitriseがconfiguration fileを探して、それに基づいてアプリのセットアップを行います。Xamarinアプリの場合は、Xamarin Solution Fileを探します。
-
Xamarin solution configuration を選択します。利用可能なオプションはsolution fileに基づいています。これは環境変数として保存され、あとで変更も可能です。
- Xamarin solution platformを選択します。これも環境変数として保存され、あとで変更も可能です。
- ビルド設定の最終確認を行ってください。
- webhookの登録をしてください。登録後、コードがプッシュされたりプルリクエストが作成されるとBitriseが自動的にビルドを開始します。これで最初のビルドが開始されます。messageをクリックすると、自動的にbuildページに遷移されます。
依存関係のインストール ⚓
Xamarinアプリの依存関係のインストールは特定のステップNuGet restore
により処理されます。このステップは自動で作成されたXamarinアプリのワークフローの一部を担っており、一つ必要なインプットがあります:アプリを追加する際の環境変数として保存されるXamarin solution fileへの進路となります。
- アプリのWorkflow Editorへ入り、
Workflows
タブをクリックします。 - あなたのワークフロー内に
NuGet restore
があることを確認してください。ここのステップで必要なインプットはXamarin solution fileへの進路となります。デフォルトでは、そのインプットは環境変数となっており、Bitriseにアプリを追加するときに保存されます。異なるsolution fileを使う際は、Workflow Editor内にあるタブEnv Vars
をクリックして環境変数の値を変更してください。
Xamarinアプリのテスト ⚓
BitriseではiOS・Androidプロジェクトの両方でユニットテストとUIテストが行えます。簡単に設定できるので、Microsoft App Centerにて入手可能なTesting Frameworkの全てを利用することができます。
Unit testing ユニットテスト ⚓
Xamarinアプリのユニットテストは、NUnit Runner
ステップにて走らせることができます。そのステップはNUnit Console Runnerを使用したNUnit 2.x もしくはNUnit 3.0 またはそれより高いテストで走ります(nunit3-console.exe)。
- アプリのWorkflow Editorに入り、
Workflows
タブをクリックします。 - ワークフローに
NUnit runner
ステップを追加します。このステップはNuGet restore
ステップ後に追加してください:アプリのテストを走らせる前に全ての依存関係をインストールしてください。 - 必要なinput variablesを入力します。デフォルトでは、全てのinputはEnvironment Variablesになっています。異なるsolution fileまたはsolution configuration を使用する場合は、Workflow Editor内のタブ
Env Vars
をクリックし、環境変数の値を変更してください。- Path to Xamarin Solution: あなたのXamarin solution fileの場所を示します。
- Xamarin project configuration: Bitriseであなたが走らせたい、Visual Studioでセットアップされたsolution configurationが表示されます。異なる設定で走らせたい場合は、適切な環境変数に変更してください。
- Xamarin platform: あなたのsolution configurationのターゲットプラットフォームを示します。
UI testing UIテスト ⚓
UIテストでは、Bitrise製のApp Center upload and schedule tests
ステップを使用することを強くお勧めします。Visual Studio App Centerにてテストのセットアップが必要です。詳しくはガイドを参照してください。手順を手短に説明します。
-
あなたのワークフローに
App Center upload and schedule tests
ステップを追加します。テストを走らせる前に全ての依存関係をインストールしてアプリをビルドするため、このステップは、
NuGet restore
、Xamarin Archive
ステップの後に追加してください。 -
Stepの必要事項の入力を行います。テスト走行をセットした後App Centerにて全て確認することができます:Submitタブを確認してください。
BitriseのCalabash UIテストに興味がありましたら、discuss guideをチェックしてください。
Xamarinアプリのデプロイ ⚓
Bitriseがあれば、Xamarinアプリを以下の場所へとデプロイが可能です:
- Bitrise.io
- the App Store
- Google Play
アプリをデプロイするには、application fileのビルド、署名、エクスポートが必要です。
Xamarinアプリのコード署名 ⚓
iOSとAndroidによってコード署名の方法は異なります。双方のプラットフォームでのコード署名方法を説明します。
アプリのデプロイが目的であれば、自動で作成されたデプロイワークフローに基づいた、新しいワークフローの作成をおすすめします。
Android ⚓
Android では、APKが必要になり、そのAPKへ署名が必要になります。BitriseではAndroid Sign
ステップで署名が行なえます。このステップではkeystore ファイル、keystore パスワード、keystore エイリアスが必要です。
- Visual Studioにてコード署名のアイデンティティを作成します。
- Bitriseへkeystoreファイルのアップロードを行います:アプリのWorkflow Editorを開いて
Code Signing
タブに進み、ANDROID KEYSTORE FILE
セクションにファイルのアップロードを行います。 - Keystoreパスワード・keystore エイリアス・private key パスワードをそれぞれ入力します。
Workflows
タブ上にて、Xamarin Archive
ステップの後にAndroid Sign
ステップをワークフローに追加してください。
Android Sign
ステップ使用についての詳細はガイドにてご確認ください。
iOS ⚓
- Visual Studioにて、コード署名アイデンティティとプロビジョニングプロファイルをセットします。
- ソリューションファイルでは、ビルドをしたいiOSプロジェクトを探し、そのプロジェクトのオプションを設定します。
- 使用したい署名アイデンティティ(例:Developer)
- プロビジョニングプロファイル
.plist ファイルにてカスタムでエンタイトルメントを設定できます。
- ご自身のマシン上では、Bitriseのcodesigndocツールを使ってプロジェクトのコード署名ファイルを収集してください。
- .p12 証明書とプロビジョニングプロファイルをBitriseへアップロードをします。アプリのWorkflow Editorを開き、
Code Signing
タブへファイルのアップロードを行ってください。 Certificate and profile installer
ステップをワークフローに追加してください。
iOSコード署名についての詳細はガイドにてご確認ください。
アプリパッケージファイルのエクスポート ⚓
Bitriseでは、.ipaファイル・.apkファイルや.appファイルなど様々なエクスポートの手段に対応しています。Xamarinアプリであれば、手順は全て同じです。正確なプロジェクトをビルドするために、Visual Studioのソリューションコンフィグをセットアップしてください。
例えば、Google Playにアップロードするための.apkファイルを入手したい場合、ソリューションコンフィグ内にあるAndroidプロジェクトのためのReleaseプロジェクト設定を使用します。
iOSプロジェクトの場合、Visual Studioにて正確なコード署名アイデンティティをセットアップしてください。例えば、App Storeへアプリをアップロードしたいときは、App Store type プロビジョニングプロファイルを伴ってDistributionアイデンティティを使用します。
- アプリのWorkflow Editorに入り、
Workflows
タブをクリックします。 -
Xamarin Archive
ステップがワークフローに含まれていることを確認してください。 - ステップに必要なインプットには適切な値が入っています。デフォルトでは全てのインプットは環境変数になっています。Workflow Editorにある
Env Vars
タブをクリックし、環境変数の値を変更してください。- Path to the Xamarin Solution file: あなたのXamarin ソリューションファイルの場所を示します。
-
Xamarin project configuration: Bitriseであなたが走らせたい、Visual Studioでセットアップされたソリューションコンフィグが表示されます。異なる設定で走らせたい場合は、適切な環境変数に変更してください。
例:iOSとAndroidの両方のプロジェクトではなく、iOSプロジェクトのみのビルドを行う場合
- Xamarin solution platform: あなたのソリューションコンフィグのターゲットプラットフォームを示します。
Deploying to the App Store App Storeへのデプロイ ⚓
- Workflow Editor の
Workflows
タブに進みます。 - アプリのデプロイを行うために作成したワークフローを選択します。
- コード署名ステップと
Xamarin Archive
ステップがワークフローに含まれていることを確認してください。 - 異なるソリューションコンフィグを使用する場合は、
Env Var
タブ上の関連した環境変数の値を変更してください。どの環境変数を変更するかは、Xamarin Archive
ステップのインプットを確認してください。 -
Deploy to iTunes Connect - Application Loader
ステップをワークフローに追加してください。 Deploy to iTunes Connect - Application Loader
ステップをクリックし、Apple IDとパスワードを関連したインプットフィールドに入力します。- ビルド開始です!
Google Play へのデプロイ ⚓
- Workflow Editor の
Workflows
タブに進みます。 - アプリのデプロイを行うために作成したワークフローを選択します。
- コード署名ステップと
Xamarin Archive
ステップがワークフローに含まれていることを確認してください。 - 異なるソリューションコンフィグを使用する場合は、
Env Var
タブ上の関連した環境変数の値を変更してください。どの環境変数を変更するかは、Xamarin Archive
ステップのインプットを確認してください。 - ワークフローに
Google Play Deploy
ステップを追加してください。このステップはXamarin Archive
ステップの後にきます。 - Workflow Editor の
Code Signing
タブ上にあるGeneric File StorageへサービスアカウントJSONキーファイルをアップロードしてください。詳しくはJSONキーファイルのアクセス方法をご確認ください。 - サービスアカウントのJSONキーファイルを参照するためのシークレット環境変数を作成してください。
Google Play Deploy
ステップをクリックし、サービスアカウントのJSON key file pathとパッケージ名を関連したインプットフィールドに追加してください。- ビルド開始です!
成功したあなた!おめでとうございます。Xamarinアプリのデプロイが完了しました!