次の方法で共有


モバイル アプリに署名する

Azure DevOps Services | Azure DevOps Server 2022 - Azure DevOps Server 2019

Android または Apple オペレーティング システム向けのアプリを開発する場合、最終的には署名証明書と Apple アプリの場合はプロビジョニング プロファイルの管理が必要になります。 この記事では、アプリの署名とプロビジョニングのために、それらを安全に管理する方法について説明します。

ヒント

Microsoft がホストする Linux、macOS、または Windows ビルド エージェントを使用するか、独自のエージェントを設定してください。 ビルドおよびリリースのエージェントを参照してください。

この記事には、次の内容が含まれます。

Android アプリの署名

署名証明書をセキュリティで保護しながら Android アプリに署名するために、次の手順を実行します。

  1. まず、署名証明書が含まれているキーストア ファイルを取得します。 Android のドキュメントでは、キーストア ファイルとそれに対応するキーの生成プロセスについての説明があります。

  2. Android または Xamarin.Android ビルド テンプレートから、ビルド パイプラインを作成します。 または、既にビルド パイプラインがある場合は、APK をビルドするタスクの後に Android 署名タスクを追加します。

  3. Android 署名タスクの [Sign the APK] (APK に署名する) チェックボックスを見つけてオンにします。

  4. [Keystore file] (キーストア ファイル) フィールドの横にある設定アイコンを選択し、[Secure Files] (セキュリティで保護されたファイル) ライブラリにキーストア ファイルをアップロードします。 アップロード時に、キーストアは暗号化され、安全に格納されます。

  5. キーストアが [Secure Files] (セキュリティで保護されたファイル) ライブラリにアップロードされたら、そのキーストアを [Keystore file] (キーストア ファイル) ドロップダウンで選択します。

  6. [変数] タブに移動して、次の変数を追加します。 それぞれの [値] 列で、キーストアのパスワードキーのエイリアスキーのパスワードを入力します。

    • keystore-password: 暗号化されていないキーストア ファイルに対するパスワード。 ロック アイコンは必ず選択してください。 これにより、パスワードがセキュリティで保護され、すべてのログで不透明な状態になります。

    • key-alias: 生成した署名証明書に対するキーのエイリアス。

    • key-password: 指定したエイリアスに関連付けられたキーのパスワード。 前述したように、ロック アイコンは必ず選択してください。

      Android 署名の変数

  7. [タスク] タブに戻り、署名オプションで新しく作成した変数の名前を参照します。

    Android 署名の入力値

ビルド パイプラインを保存すれば準備は完了です! すべてのビルド エージェントは、ビルド マシン自体で証明書を管理することなく、アプリに安全に署名できるようになりました。

Apple iOS、macOS、tvOS、または watchOS のアプリに署名する

Xcode または Xamarin.iOS ビルドでアプリに署名してプロビジョニングするには、P12 署名証明書と 1 つ以上のプロビジョニング ファイルにアクセスス必要があります。 次のセクションでは、それらのファイルを取得する方法について説明します。

P12 署名証明書を取得する

開発署名証明書またはディストリビューション署名証明書の作成後、Xcode または macOS のキーチェーン アクセス アプリを使用して、その署名証明書を .p12 ファイルにエクスポートします。

  1. Xcode 8 以前を使用してエクスポートするには、[Xcode]>[Preferences...]>[Accounts] の順に移動し、自分の Apple Developer アカウントを選択します。

  2. [View Details...] を選択し、エクスポートする署名 ID を右クリックしてから [Export...] を選択します。

  3. ファイル名とパスワードを入力します。 このパスワードは後で必要になるためメモしておきます。

    Xcode エクスポート証明書

  4. または、macOS の キーチェーン アクセス アプリを使用して同様のプロセスを実行するか、Windows で署名証明書を生成します。 この方法を選択する場合は、この記事で説明した手順を使用します。

プロビジョニング プロファイルを取得する

アプリで自動署名を使用している場合を除き、アプリ プロビジョニング プロファイルは Apple Developer ポータルからダウンロードできます。 プロビジョニング プロファイルを Apple Developer ポータルでダウンロードする方法について説明します。

Mac にインストールされているプロファイルにアクセスするために、Xcode を使用することもできます。

  1. Xcode 8 以前を使用して、[Xcode]>[Preferences...]>[Accounts] の順に移動し、自分の Apple Developer アカウントを選択します。

  2. 使用するプロビジョニング プロファイルを右クリックし、[Show in Finde] を選択します。

  3. [Finder] から強調表示されているファイルを別の場所にコピーし、わかりやすいファイル名を付けます。

    Xcode の [Show in Finder]

ビルドの構成

アプリの署名とプロビジョニングのために、ビルドが署名証明書とプロビジョニング プロファイルにアクセスする場合は、次の 2 つの方法が推奨されます。

  1. ビルド中にインストールする方法
  2. macOS ビルド エージェントにプレインストールする方法

詳細については、次のいずれかのタブを選択してください。

この方法は、ホストされている macOS エージェントなど、ビルド エージェントへの永続的なアクセス権がない場合に使用します。 P12 証明書とプロビジョニング プロファイルは、ビルドの開始時にインストールされ、ビルドの完了時に削除されます。

ビルド時に P12 証明書をインストールする

Visual エディター
  1. Xcode タスクまたは Xamarin.iOS タスクの前に、Apple 証明書のインストール タスクをビルドに追加します。
  2. [Certificate (P12)] (証明書 (P12)) フィールドの横にある設定アイコンを選択し、[Secure Files] (セキュリティで保護されたファイル) ライブラリに P12 ファイルをアップロードします。 アップロード時に、証明書は暗号化され、安全に格納されます。
  3. 証明書が [Secure Files] (セキュリティで保護されたファイル) ライブラリにアップロードされたら、その証明書を [Certificate (P12)] (証明書 (P12)) ドロップダウンで選択します。
  4. [変数] タブに移動して、P12password という名前の変数を追加します。 その値は、証明書のパスワードに設定します。 ロック アイコンは必ず選択してください。 これにより、パスワードがセキュリティで保護され、すべてのログで不透明な状態になります。
  5. [タスク] タブに戻ります。Apple 証明書のインストール タスクの設定では、[Certificate (P12) password] (証明書 (P12) のパスワード) フィールドで新しく作成した変数を $(P12password) として参照します
サンプル YAML
  1. P12 ファイルを [Secure Files] (セキュリティで保護されたファイル) ライブラリにアップロードします。 アップロード時に、証明書は暗号化され、安全に格納されます。

  2. [変数] タブに移動して、P12password という名前の変数を追加します。 その値は、証明書のパスワードに設定します。 ロック アイコンは必ず選択してください。 これにより、パスワードがセキュリティで保護され、すべてのログで不透明な状態になります。

  3. Xcode タスクまたは Xamarin.iOS タスクの前に、Apple 証明書のインストール タスクを YAML に追加します。

    - task: InstallAppleCertificate@2
        inputs:
          certSecureFile: 'my-secure-file.p12' # replace my-secure-file.p12 with the name of your P12 file.
          certPwd: '$(P12password)'
    

ビルド時にプロビジョニング プロファイルをインストールする

Visual エディター
  1. Xcode タスクまたは Xamarin.iOS タスクの前に、Apple プロビジョニング プロファイルのインストール タスクをビルドに追加します。
  2. [Provisioning profile location] (プロビジョニング プロファイルの場所) オプションには、[Secure Files] (セキュリティで保護されたファイル) (YAML では、secureFiles) を選択します。
  3. [Provisioning profile] (プロビジョニング プロファイル) フィールドの横にある設定アイコンを選択し、プロビジョニング プロファイル ファイルを [Secure Files] (セキュリティで保護されたファイル) ライブラリ にアップロードします。 アップロード時に、証明書は暗号化され、安全に格納されます。
  4. 証明書が [Secure Files] (セキュリティで保護されたファイル) ライブラリにアップロードされたら、その証明書を [Provisioning profile] (プロビジョニング プロファイル) ドロップダウンで選択します。
  5. [Remove profile after build] (ビルド後にプロファイルを削除する) というラベルのチェックボックスをオンにします。 これにより、プロビジョニング プロファイルがエージェント マシンに残されないようにします。
サンプル YAML
  1. プロビジョニング プロファイルを [Secure Files] (セキュリティで保護されたファイル) ライブラリにアップロードします。 アップロード時に、証明書は暗号化され、安全に格納されます。

  2. Xcode タスクまたは Xamarin.iOS タスクの前に、Apple プロビジョニング プロファイルのインストール タスクを YAML に追加します。

    - task: InstallAppleProvisioningProfile@1
        inputs:
          provProfileSecureFile: 'my-provisioning-profile.mobileprovision' # replace my-provisioning-profile.mobileprovision with the name of your provisioning profile file.
    

    [メモ] [Remove profile after build] (ビルド後にプロファイルを削除する) の既定値は true に設定されています。

Xcode タスクでファイルを参照する

Visual エディター
  1. Xcode タスクを選択します。
  2. [Signing style] (署名スタイル) オプションには、[Manual signing] (手動署名) を選択します。
  3. [Signing identity] (署名 ID) フィールドに、$(APPLE_CERTIFICATE_SIGNING_IDENTITY) と入力します。 この変数は、選択した証明書に対応する Apple 証明書のインストール タスクによって自動的に設定されます。
  4. [Provisioning profile UUID] (プロビジョニング プロファイル UUID) フィールドに、$(APPLE_PROV_PROFILE_UUID) と入力します。 この変数は、選択したプロビジョニング プロファイルに対応する Apple プロビジョニング プロファイルのインストール タスクによって自動的に設定されます。
サンプル YAML
- task: Xcode@5
  inputs:
    signingOption: 'manual'
    signingIdentity: '$(APPLE_CERTIFICATE_SIGNING_IDENTITY)'
    provisioningProfileUuid: '$(APPLE_PROV_PROFILE_UUID)'

Xamarin.iOS タスクでファイルを参照する

Visual エディター
  1. Xamarin.iOS タスクを選択します。
  2. [Override using] (使用をオーバーライドする) オプションには、[Identifiers] (識別子) を選択します。
  3. [Signing identity] (署名 ID) フィールドに、$(APPLE_CERTIFICATE_SIGNING_IDENTITY) と入力します。 この変数は、選択した証明書に対応する Apple 証明書のインストール タスクによって自動的に設定されます。
  4. [Provisioning profile UUID] (プロビジョニング プロファイル UUID) フィールドに、$(APPLE_PROV_PROFILE_UUID) と入力します。 この変数は、選択したプロビジョニング プロファイルに対応する Apple プロビジョニング プロファイルのインストール タスクによって自動的に設定されます。
サンプル YAML
- task: XamariniOS@2
    inputs:
      solutionFile: '**/*.iOS.csproj'
      signingIdentity: '$(APPLE_CERTIFICATE_SIGNING_IDENTITY)'
      signingProvisioningProfileID: '$(APPLE_PROV_PROFILE_UUID)'

ビルド パイプラインを保存すれば準備は完了です! ビルド エージェントはアプリに安全に署名してプロビジョニングできるようになります。

よく寄せられる質問

エージェントは必要ですか?

ビルドまたはリリースを実行するには、エージェントが少なくとも 1 つ必要です。

問題が発生しています。 どのように対処すればよいですか?

ビルドとリリースのトラブルシューティングに関するページを参照してください。

既定のエージェント プールが選択できず、ビルドまたはリリースをキューに入れることができません。 これをどのように修正すればよいですか?

エージェント プール」を参照してください。

NuGet プッシュ タスクが次のエラーで失敗します: "Error: unable to get local issuer certificate" (エラー: ローカル発行者の証明書を取得できません)。 どうしたらいいですか。

これは、信頼されたルート証明書を追加することで修正できます。 ビルド エージェントに NODE_EXTRA_CA_CERTS=file 環境変数を追加するか、パイプラインに NODE.EXTRA.CA.CERTS=file タスク変数を追加することができます。 この変数の詳細については、Node.js のドキュメントを参照してください。 パイプラインで変数を設定する手順については、「パイプラインで変数を設定する」を参照してください。

TFS をオンプレミスで使用していますが、これらの機能の一部が表示されません。 なぜでしょうか。

これらの機能の一部は Azure Pipelines でのみ使用でき、オンプレミスではまだ使用できません。 TFS の最新バージョンにアップグレードした場合は、一部の機能をオンプレミスで使用できます。