GitHub

Xamarinアプリの開始

Xamarinはモバイルアプリにおけるクロスプラットフォームのビルド作業のツールを提供しています。もちろんBitriseはXamarinにも対応しています:ここのガイドは以下の手順を説明します:

全ての手順は一つのワークフローで完了できますが、2つ以上のワークフローを使用することをおすすめします:1つ目をアプリのテスト用、2つ目をアプリのデプロイ用としてワークフローを使用してください。異なるプロジェクトであっても、別々のワークフローを用意する必要はありません。iOSとAndroidアプリの両方とも、一つのワークフローでビルドができます。

始める前に

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でビルドを行う場合、そのプラットフォームに互換性があることを確認してください。

Solution configuration

例:ソリューションファイルの中にAndroidとiOSのプロジェクトが含まれていて、AndroidプロジェクトのみをBitriseでビルドを行いたい場合、AndroidプロジェクトのみをビルドするVisual Studio上でsolution configurationをセットアップしてからBitriseでそのコンフィギュレーションを使用してください。適切なソリューションプラットフォームを使用することが重要です。(Androidプロジェクトのみのビルドを行う場合、iPhoneをソリューションプラットフォームとして設定しないでください。)

Xamarinアプリの追加

Bitriseアカウントをお持ちですか?

bitrise.ioにサインアップ済みでBitriseアカウントにアクセスできるか確認してください。お持ちのGitサービスプロバイダをBitriseアカウントに接続する方法はこちらの4通りの方法があります。

  1. 上段にあるメニューバーより+をクリックしてAdd appを選択します。
  2. Create new Appのページにて、アプリを追加したいアカウントを選んでください。
  3. アプリのプライバシー設定を行ってください;Private または Publicを選んでNextをクリックします。
  4. あなたのレポジトリをホストするGit hosting serviceを選択してください。その後、プロジェクトをホストするレポジトリを見つけて選択します。詳しい内容は、レポジトリに接続するをお読みください。
  5. レポジトリのアクセスのセットアップが完了したら、No, auto-add SSH key をクリックします。SSHキーについてはこちらを確認してください。
  6. あなたのプロジェクトのconfigurationが含まれたBranchの名前を入力します。そしてNext をクリックします。
  7. Bitriseがプロジェクトを確認を行うのでしばらくお待ち下さい。ここではBitriseがconfiguration fileを探して、それに基づいてアプリのセットアップを行います。Xamarinアプリの場合は、Xamarin Solution Fileを探します。
  8. Xamarin solution configuration を選択します。利用可能なオプションはsolution fileに基づいています。これは環境変数として保存され、あとで変更も可能です。

  9. Xamarin solution platformを選択します。これも環境変数として保存され、あとで変更も可能です。
  10. ビルド設定の最終確認を行ってください。
  11. webhookの登録をしてください。登録後、コードがプッシュされたりプルリクエストが作成されるとBitriseが自動的にビルドを開始します。これで最初のビルドが開始されます。messageをクリックすると、自動的にbuildページに遷移されます。

依存関係のインストール

Xamarinアプリの依存関係のインストールは特定のステップNuGet restoreにより処理されます。このステップは自動で作成されたXamarinアプリのワークフローの一部を担っており、一つ必要なインプットがあります:アプリを追加する際の環境変数として保存されるXamarin solution fileへの進路となります。

  1. アプリのWorkflow Editorへ入り、Workflowsタブをクリックします。
  2. あなたのワークフロー内に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)。

  1. アプリのWorkflow Editorに入り、Workflowsタブをクリックします。
  2. ワークフローにNUnit runner ステップを追加します。このステップはNuGet restore ステップ後に追加してください:アプリのテストを走らせる前に全ての依存関係をインストールしてください。
  3. 必要な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のターゲットプラットフォームを示します。

Debugインプット

Debugインプットグループ内では、Stepを以下の方法で設定できます:ビルドツールをセットし、NUnitコンソールランナーの追加のフラッグをセット、そしてテスト走行の前にテストプロジェクトをビルドするかどうか設定してください。

UI testing UIテスト

UIテストでは、Bitrise製のApp Center upload and schedule tests ステップを使用することを強くお勧めします。Visual Studio App Centerにてテストのセットアップが必要です。詳しくはガイドを参照してください。手順を手短に説明します。

  1. あなたのワークフローにApp Center upload and schedule tests ステップを追加します。

    テストを走らせる前に全ての依存関係をインストールしてアプリをビルドするため、このステップは、NuGet restoreXamarin Archive ステップの後に追加してください。

  2. Stepの必要事項の入力を行います。テスト走行をセットした後App Centerにて全て確認することができます:Submitタブを確認してください。

BitriseのCalabash UIテストに興味がありましたら、discuss guideをチェックしてください。

Xamarinアプリのデプロイ

Bitriseがあれば、Xamarinアプリを以下の場所へとデプロイが可能です:

アプリをデプロイするには、application fileのビルド、署名、エクスポートが必要です。

Xamarinアプリのコード署名

iOSとAndroidによってコード署名の方法は異なります。双方のプラットフォームでのコード署名方法を説明します。

アプリのデプロイが目的であれば、自動で作成されたデプロイワークフローに基づいた、新しいワークフローの作成をおすすめします。

Android

Android では、APKが必要になり、そのAPKへ署名が必要になります。BitriseではAndroid Sign ステップで署名が行なえます。このステップではkeystore ファイル、keystore パスワード、keystore エイリアスが必要です。

  1. Visual Studioにてコード署名のアイデンティティを作成します。
  2. Bitriseへkeystoreファイルのアップロードを行います:アプリのWorkflow Editorを開いてCode Signing タブに進み、ANDROID KEYSTORE FILE セクションにファイルのアップロードを行います。
  3. Keystoreパスワード・keystore エイリアス・private key パスワードをそれぞれ入力します。
  4. Workflows タブ上にて、Xamarin Archive ステップのAndroid Sign ステップをワークフローに追加してください。

Android Sign ステップ使用についての詳細はガイドにてご確認ください。

iOS

  1. Visual Studioにて、コード署名アイデンティティとプロビジョニングプロファイルをセットします。
  2. ソリューションファイルでは、ビルドをしたいiOSプロジェクトを探し、そのプロジェクトのオプションを設定します。
    • 使用したい署名アイデンティティ(例:Developer)
    • プロビジョニングプロファイル

    .plist ファイルにてカスタムでエンタイトルメントを設定できます。

  3. ご自身のマシン上では、Bitriseのcodesigndocツールを使ってプロジェクトのコード署名ファイルを収集してください。
  4. .p12 証明書とプロビジョニングプロファイルをBitriseへアップロードをします。アプリのWorkflow Editorを開き、Code Signing タブへファイルのアップロードを行ってください。
  5. 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アイデンティティを使用します。

  1. アプリのWorkflow Editorに入り、Workflows タブをクリックします。
  2. Xamarin Archive ステップがワークフローに含まれていることを確認してください。

  3. ステップに必要なインプットには適切な値が入っています。デフォルトでは全てのインプットは環境変数になっています。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へのデプロイ

始める前に

Visual Studio内に正確なsolution configurationがあるかどうか確認してください。App Storeプロビジョニングプロファイルと一緒にDistributionタイプコード署名アイデンティティが必要になります。また、Distribution証明書とプロビジョニングプロファイルがBitriseにアップロードされているか確認してください。

  1. Workflow Editor のWorkflowsタブに進みます。
  2. アプリのデプロイを行うために作成したワークフローを選択します。
  3. コード署名ステップとXamarin Archive ステップがワークフローに含まれていることを確認してください。
  4. 異なるソリューションコンフィグを使用する場合は、Env Var タブ上の関連した環境変数の値を変更してください。どの環境変数を変更するかは、Xamarin Archive ステップのインプットを確認してください。
  5. Deploy to iTunes Connect - Application Loader ステップをワークフローに追加してください。

  6. Deploy to iTunes Connect - Application Loader ステップをクリックし、Apple IDとパスワードを関連したインプットフィールドに入力します。
  7. ビルド開始です!

Google Play へのデプロイ

始める前に

Visual Studio内に正確なsolution configurationがあるかどうか確認してください。Release configurationが必要になります。

  1. Workflow Editor のWorkflowsタブに進みます。
  2. アプリのデプロイを行うために作成したワークフローを選択します。
  3. コード署名ステップとXamarin Archive ステップがワークフローに含まれていることを確認してください。
  4. 異なるソリューションコンフィグを使用する場合は、Env Var タブ上の関連した環境変数の値を変更してください。どの環境変数を変更するかは、Xamarin Archive ステップのインプットを確認してください。
  5. ワークフローにGoogle Play Deploy ステップを追加してください。このステップはXamarin Archive ステップの後にきます。
  6. Workflow Editor のCode Signing タブ上にあるGeneric File StorageへサービスアカウントJSONキーファイルをアップロードしてください。詳しくはJSONキーファイルのアクセス方法をご確認ください。
  7. サービスアカウントのJSONキーファイルを参照するためのシークレット環境変数を作成してください。
  8. Google Play Deployステップをクリックし、サービスアカウントのJSON key file pathとパッケージ名を関連したインプットフィールドに追加してください。
  9. ビルド開始です!

成功したあなた!おめでとうございます。Xamarinアプリのデプロイが完了しました!