次の方法で共有


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

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

Android または Apple オペレーティング システム用のモバイル アプリに署名してプロビジョニングするには、署名証明書と Apple プロビジョニング プロファイルを管理する必要があります。 この記事では、Azure Pipelines でアプリに署名してプロビジョニングするための証明書とプロファイルを安全に管理する方法について説明します。

Note

ビルドまたはリリースを実行するには、少なくとも 1 つのエージェントが必要です。 Microsoft がホストする Linux、macOS、または Windows ビルド エージェントを使用することも、独自のエージェントを設定することもできます。 詳細については、「 Build およびリリース エージェントを参照してください。

Android アプリの署名

署名証明書をセキュリティで保護したまま Android アプリに署名するには、次の手順に従います。

キーストア ファイルをアップロードする

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

  2. Azure Pipelines で、 Libraries>Secure ファイルに移動します。 + Secure ファイルを選択し安全なファイル ライブラリにキーストア ファイルをアップロード。 アップロード中、キーストアは暗号化され、安全に格納されます。

署名タスクをパイプラインに追加する

アプリをビルドする手順の後に、 AndroidSigning@3 タスクを YAML パイプラインに追加します。 AndroidSigning@3 タスクで次の手順を実行します。

  • <apkFiles> は必須であり、署名する APK ファイルのパスと名前です。 既定値は、**/*.apk です。
  • <apksign>trueする必要があります。これが既定値です。
  • <keystore-file> は、セキュア・ファイル・ライブラリーにアップロードされた鍵ストア・ファイルの名前です。
  • <apksignerKeystorePassword> は、暗号化されていないキーストア ファイルのパスワードです。
  • <apksignerKeystoreAlias> は署名証明書のキー エイリアスです。
  • <apksignerKeyPassword> は、指定したエイリアスに関連付けられているキーのパスワードです。

YAML で変数を設定して使用することも、Azure Pipelines UI の Variables タブを使用して変数を設定し、YAML で参照することもできます。

variables:
  keystore-password: <keystore file password>
  key-alias: <key alias for the signing certificater>
  key-password: <password for the key associated with the alias>

steps:
- task: AndroidSigning@3
  displayName: 'Signing and aligning APK file(s) **/*.apk'
  inputs:
    apkFiles: '**/*.apk'
    apksign: true
    apksignerKeystoreFile: <keystore-filename.keystore>
    apksignerKeystorePassword: $(keystore-password)
    apksignerKeystoreAlias: $(key-alias)
    apksignerKeyPassword: $(key-password)

ビルド エージェントは、ビルド マシン自体で証明書を管理しなくても、アプリに安全に署名できるようになりました。

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

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

P12 署名証明書を取得する

  1. macOS 上の Xcode またはキーチェーン アクセス アプリを使用して、開発または配布署名証明書を .p12 ファイルにエクスポートします。

    • Xcode を使用してエクスポートするには:

      1. Xcode>Preferences>Accounts に移動します。

      2. 左側の列で、Apple ID を選択します。

      3. 右側で、個人またはチーム アカウントを選択し、 [証明書の管理] を選択します。

      4. Ctrl キーを押しながらエクスポートする証明書を選択し、メニューから Export certificate を選択します。

        Xcode を使用して証明書をエクスポートするスクリーンショット。

      5. ダイアログ ボックスで、証明書名、ファイルを保存する場所、および証明書をセキュリティで保護するためのパスワードを入力します。

    • または、「 iOS の署名 で説明されている手順を使用して、macOS の Keychain Access アプリを使用して同様のプロセスに従うか、Windows で署名証明書を生成します。

  2. P12 ファイルを Azure Pipelines 安全なファイル ライブラリにアップロードします。 アップロード中、証明書は暗号化され、安全に保存されます。

  3. パイプラインで、 Variables タブに移動し、証明書パスワードを値として使用 P12password という名前の変数を追加します。 パスワードをセキュリティで保護し、ログに隠すには、必ず lock アイコンを選択してください。

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

アプリで自動署名が使用されていない場合は、Apple 開発者ポータルからアプリ プロビジョニング プロファイルをダウンロードできます。 詳細については、「 プロビジョニング プロファイルの編集、ダウンロード、または削除を参照してください。

Xcode を使用して、Mac にインストールされているプロビジョニング プロファイルにアクセスすることもできます。 Xcode で、 Xcode>Preferences>Accounts に移動します。 Apple ID とチームを選択し、 手動プロファイルのダウンロードを選択します。

Azure Pipelines で、プロビジョニング プロファイルを 安全なファイル ライブラリにアップロードします。 アップロード中、ファイルは暗号化され、安全に保存されます。

署名タスクとプロビジョニング タスクをパイプラインに追加する

アプリに署名してプロビジョニングするには、各ビルド中に証明書とプロファイルをインストールするか、macOS ビルド エージェントにファイル プレインストールします

各ビルド中に証明書とプロファイルをインストールする

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

  • Xcode または Xamarin.iOS タスクの前に、 InstallAppleCertificate@2 タスクを YAML パイプラインに追加します。 コードで、 <secure-file.p12> をアップロードした .p12 ファイルの名前に置き換えます。 セキュリティで保護された P12passwordの変数を使用します。

    - task: InstallAppleCertificate@2
        inputs:
          certSecureFile: '<secure-file.p12>'
          certPwd: '$(P12password)'
    

    Note

    InstallAppleCertificate@2 タスクでは、deleteCert パラメーターは既定で true に設定され、ビルド後に証明書が削除されます。

  • Xcode または Xamarin.iOS タスクの前に、 InstallAppleProvisioningProfile@1 タスクを YAML に追加します。 <secure-file.mobileprovision>をプロビジョニング プロファイル ファイルの名前に置き換えます。

    - task: InstallAppleProvisioningProfile@1
        inputs:
          provProfileSecureFile: '<secure-file.mobileprovision>'
    

    Note

    InstallAppleProvisioningProfile@1 タスクでは、removeProfile パラメーターは既定で true に設定され、ビルド後にプロファイルが削除されます。

ビルド エージェントは、ビルド マシン自体で証明書やプロファイル管理を行わなくても、アプリに安全に署名できるようになりました。

macOS ビルド エージェントに証明書とプロファイルをプレインストールする

ビルド中に署名証明書とプロビジョニング プロファイルをインストールする代わりに、macOS ビルド エージェントに事前インストールできます。 その後、ファイルはビルドで引き続き使用できます。 この方法は、エージェント コンピューター上の macOS キーチェーンにアクセスできるユーザーとプロセスを信頼する場合にのみ使用します。

P12 証明書をプレインストールする

  1. 既定のキーチェーンに P12 証明書をインストールするには、ビルド エージェントの macOS ターミナル ウィンドウから次のコマンドを実行します。 <certificate.p12>を P12 ファイルのパスと名前に置き換えます。 <password> を P12 ファイルの暗号化パスワードに置き換えます。

    sudo security import <certificate.p12> -P <password>
    
  2. KEYCHAIN_PWDという名前の新しい変数をパイプラインに追加します。 パスワードとして値を既定のキーチェーンに設定します。これは通常、エージェントを起動するユーザーのパスワードです。 このパスワードをセキュリティで保護するには、必ず lock アイコンを選択してください。

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

  1. macOS ターミナル ウィンドウを開き、「 security find-identity -v -p codesigning」と入力して、署名 ID の完全な名前を見つけます。 iPhone Developer/Distribution: Developer Name (ID)フォームに署名 ID の一覧が表示されます。 ID が無効な場合は、ID の後に (CSSMERR_TP_CERT_REVOKED) のようなものが表示されます。

  2. エージェント コンピューターにプロビジョニング プロファイルをインストールするには、macOS ターミナル ウィンドウから次のコマンドを実行します。 <profile>をプロビジョニング プロファイル ファイルのパスに置き換え、<UUID>をプロビジョニング プロファイル UUID (.mobileprovision拡張子のないプロビジョニング プロファイルのファイル名) に置き換えます。

    sudo cp <profile> ~/Library/MobileDevice/Provisioning Profiles/<UUID>.mobileprovision
    

既定のキーチェーンを使用する署名タスクとプロビジョニング タスクを追加する

  • Xcode または Xamarin.iOS タスクの前に、 InstallAppleCertificate@2 タスクを YAML パイプラインに追加します。 コードで、次の値を設定します。

    • certSecureFile: アップロードした .p12 ファイルの名前。
    • certPwd: セキュリティで保護された P12passwordの変数。
    • signingIdentity: 署名 ID の完全な名前。
    • keychain: default。既定のキーチェーンへのアクセスを許可します。
    • keychainPassword: KEYCHAIN_PWD 変数。
    • deleteCert: false、ビルド間で証明書を保持します。
    - task: InstallAppleCertificate@2
      inputs:
        certSecureFile: '<secure-file.p12>'
        certPwd: '$(P12password)'
        signingIdentity: <full-signing-identity>
        keychain: default
        keychainPassword: `$(KEYCHAIN_PWD)
        deleteCert: false
    
  • InstallAppleProvisioningProfile@1 タスクを追加します。 コードで次の手順を実行します。

    • provProfileSecureFileプロビジョニング プロファイル ファイルの名前に設定します。
    • removeProfilefalseに設定すると、ビルド間でプロファイルが保持されます。
    - task: InstallAppleProvisioningProfile@1
        inputs:
          provProfileSecureFile: '<secure-file.mobileprovision>'
          removeProfile: false
    

macOS ビルド エージェントは、証明書やプロファイルの管理を追加することなく、すべてのビルドに対してアプリに安全に署名してプロビジョニングできるようになりました。

Xcode または Xamarin.iOS ビルド タスクでセキュリティで保護されたファイルを参照する

パイプラインでセキュリティで保護された証明書とプロファイルを使用するには、Xcode または Xamarin.iOS ビルド タスクで次の設定を構成します。

ビルド タスクのセキュリティで保護されたファイル参照では、 signingIdentityprovisioningProfileUuidの変数が使用されます。 これらの変数は、選択した証明書とプロビジョニング プロファイルの Install Apple CertificateInstall Apple Provisioning Profile タスクによって自動的に設定されます。

Xcode の場合:

- task: Xcode@5
  inputs:
    signingOption: 'manual'
    signingIdentity: '$(APPLE_CERTIFICATE_SIGNING_IDENTITY)'
    provisioningProfileUuid: '$(APPLE_PROV_PROFILE_UUID)'

Xamarin.iOS の場合:

- task: XamariniOS@2
    inputs:
      solutionFile: '**/*.iOS.csproj'
      signingIdentity: '$(APPLE_CERTIFICATE_SIGNING_IDENTITY)'
      signingProvisioningProfileID: '$(APPLE_PROV_PROFILE_UUID)'

パイプライン ビルド エージェントは、ビルド マシン自体に対する証明書やプロファイル管理を追加することなく、アプリに安全に署名してプロビジョニングできるようになりました。

詳細情報は、次のとおりです。