Sdílet prostřednictvím


Podepsání mobilní aplikace

Azure DevOps Services | Azure DevOps Server 2022 – Azure DevOps Server 2019

Pokud chcete podepsat a zřídit mobilní aplikaci pro operační systémy Android nebo Apple, musíte spravovat podpisové certifikáty a zřizovací profily Apple. Tento článek popisuje, jak bezpečně spravovat certifikáty a profily pro podepisování a zřizování aplikace v Azure Pipelines.

Poznámka:

Ke spuštění sestavení nebo vydání potřebujete aspoň jednoho agenta. Můžete použít agenta sestavení systému Linux, macOS nebo Windows hostovaný Microsoftem nebo nastavit vlastního agenta. Další informace najdete v tématu Build and Release Agents.

Podepsání aplikace pro Android

Při podepisování aplikace pro Android při zachování zabezpečení podpisového certifikátu postupujte takto.

Nahrání souboru úložiště klíčů

  1. Získejte soubor úložiště klíčů, který obsahuje podpisový certifikát. Dokumentace k Androidu popisuje proces generování souboru úložiště klíčů a jeho odpovídajícího klíče.

  2. Ve službě Azure Pipelines přejděte na Zabezpečené soubory knihoven>. Vyberte a zabezpečte soubor a nahrajte soubor úložiště klíčů do knihovny zabezpečených souborů. Během nahrávání se úložiště klíčů šifruje a bezpečně ukládá.

Přidání úlohy podepisování do kanálu

Přidejte AndroidSigning@3 úlohu do kanálu YAML po kroku, který aplikaci sestaví. AndroidSigning@3 V úkolu:

  • <apkFiles> je povinný a je cesta a názvy souborů APK, které se mají podepsat. Výchozí hodnota je **/*.apk.
  • <apksign> musí být true, což je výchozí hodnota.
  • <keystore-file> je název nahraného souboru úložiště klíčů v knihovně zabezpečených souborů.
  • <apksignerKeystorePassword> je heslo k souboru nešifrovaného úložiště klíčů.
  • <apksignerKeystoreAlias> je klíčovým aliasem podpisového certifikátu.
  • <apksignerKeyPassword> je heslo pro klíč přidružený k zadanému aliasu.

Můžete nastavit a používat proměnné v YAML nebo můžete proměnné nastavit pomocí karty Proměnné v uživatelském rozhraní Azure Pipelines a odkazovat na ně v 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)

Jakýkoli agent sestavení teď může bezpečně podepsat aplikaci bez jakékoli správy certifikátů na samotném počítači sestavení.

Podepsání aplikace Apple pro iOS, macOS, tvOS nebo watchOS

Pokud chcete aplikaci podepsat a zřídit, váš build Xcode nebo Xamarin.iOS potřebuje přístup k podpisovém certifikátu P12 a jednomu nebo několika zřizovacím profilům. Následující kroky vysvětlují, jak tyto soubory získat.

Získání podpisového certifikátu P12

  1. Exportujte podpisový certifikát pro vývoj nebo distribuci do souboru .p12 pomocí Xcode nebo aplikace Keychain Access v systému macOS.

    • Export pomocí Xcode:

      1. Přejděte na účty Xcode>Preferences>.

      2. V levém sloupci vyberte Apple ID.

      3. Na pravé straně vyberte svůj osobní nebo týmový účet a vyberte Spravovat certifikáty.

      4. Ctrl+Vyberte certifikát, který chcete exportovat, a v nabídce vyberte Exportovat certifikát .

        Snímek obrazovky s exportem certifikátu pomocí Xcode

      5. V dialogovém okně zadejte název certifikátu, umístění pro uložení souboru a heslo pro zabezpečení certifikátu.

    • Nebo použijte postup popsaný v podepisování iOS a použijte podobný postup pomocí aplikace Keychain Access v systému macOS nebo vygenerujte podpisový certifikát ve Windows.

  2. Nahrajte soubor P12 do zabezpečené knihovny souborů Azure Pipelines. Během nahrávání se certifikát zašifruje a bezpečně uloží.

  3. V kanálu přejděte na kartu Proměnné a jako hodnotu přidejte proměnnou s názvem P12password s heslem certifikátu. Nezapomeňte vybrat ikonu zámku pro zabezpečení hesla a zakrýt ho v protokolech.

Získání zřizovacího profilu

Pokud vaše aplikace nepoužívá automatické podepisování, můžete si z portálu pro vývojáře Apple stáhnout zřizovací profil aplikace. Další informace najdete v tématu Úpravy, stahování nebo odstraňování zřizovacích profilů.

Můžete také použít Xcode pro přístup ke zřizovacím profilům nainstalovaným na počítači Mac. V Xcode přejděte na Účty předvoleb>Xcode.> Vyberte Apple ID a váš tým a pak vyberte Stáhnout ruční profily.

V Azure Pipelines nahrajte zřizovací profil do knihovny zabezpečených souborů. Během nahrávání se soubor zašifruje a bezpečně uloží.

Přidání úloh podepisování a zřizování do kanálu

Pokud chcete aplikaci podepsat a zřídit, můžete buď nainstalovat certifikát a profil během každého sestavení, nebo předinstalovat soubory v agentu sestavení macOS.

Instalace certifikátu a profilu během každého sestavení

Nainstalujte certifikát a profil během každého sestavení, pokud nemáte trvalý přístup k agentovi sestavení, například když používáte hostované agenty macOS. Po dokončení sestavení se nainstaluje certifikát P12 a profil zřizování a po dokončení sestavení se odebere.

  • Přidejte InstallAppleCertificate@2 úlohu do kanálu YAML před úlohu Xcode nebo Xamarin.iOS. V kódu nahraďte <secure-file.p12> názvem nahraného souboru .p12 . Použijte proměnnou pro zabezpečení P12password.

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

    Poznámka:

    InstallAppleCertificate@2 V úloze deleteCert se ve výchozím nastavení trueparametru odebere certifikát po sestavení.

  • Přidejte InstallAppleProvisioningProfile@1 úlohu do YAML před úkol Xcode nebo Xamarin.iOS. Nahraďte <secure-file.mobileprovision> názvem souboru zřizovacího profilu.

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

    Poznámka:

    InstallAppleProvisioningProfile@1 V úloze removeProfile se ve výchozím nastavení trueparametru odebere profil po sestavení.

Jakýkoli agent sestavení teď může bezpečně podepsat aplikaci bez správy certifikátů nebo profilů na samotném počítači sestavení.

Předinstalujte certifikát a profil v agentu sestavení macOS.

Místo instalace podpisového certifikátu a zřizovacích profilů během sestavování je můžete předinstalovat v agentu sestavení macOS. Soubory jsou pak k dispozici pro pokračování v používání sestaveními. Tuto metodu použijte pouze v případě, že důvěřujete lidem a procesům, které mají přístup ke klíčence macOS na počítači agenta.

Předinstalace certifikátu P12

  1. Pokud chcete nainstalovat certifikát P12 ve výchozím klíčence, spusťte v agentovi sestavení v okně terminálu macOS následující příkaz. Nahraďte <certificate.p12> cestu a název souboru P12. Nahraďte <password> šifrovacím heslem vašeho souboru P12.

    sudo security import <certificate.p12> -P <password>
    
  2. Přidejte do kanálu novou proměnnou s názvem KEYCHAIN_PWD. Nastavte hodnotu jako heslo na výchozí klíčence, což je obvykle heslo pro uživatele, který spouští agenta. Nezapomeňte toto heslo zabezpečit výběrem ikony zámku .

Předinstalujte zřizovací profil.

  1. Úplný název vaší podpisové identity najdete tak, že otevřete okno terminálu macOS a zadáte security find-identity -v -p codesigning. Zobrazí se seznam podpisových identit ve formuláři iPhone Developer/Distribution: Developer Name (ID). Pokud je identita neplatná, zobrazí se něco jako (CSSMERR_TP_CERT_REVOKED) po identitě.

  2. Pokud chcete na počítač agenta nainstalovat zřizovací profil, spusťte z okna terminálu macOS následující příkaz. Nahraďte <profile> cestou k souboru zřizovacího profilu a nahraďte <UUID> UUID zřizovacího profilu, což je název názvu zřizovacího profilu bez přípony .mobileprovision .

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

Přidání úloh podepisování a zřizování, které používají výchozí klíčence

  • Přidejte InstallAppleCertificate@2 úlohu do kanálu YAML před úlohu Xcode nebo Xamarin.iOS. V kódu nastavte následující hodnoty:

    • certSecureFile: Název nahraného souboru .p12 .
    • certPwd: Proměnná pro zabezpečení P12password.
    • signingIdentity: Úplný název vaší podpisové identity.
    • keychain: , defaultpro povolení přístupu k výchozí klíčence.
    • keychainPassword: Proměnná KEYCHAIN_PWD .
    • deleteCert: false, pro zachování certifikátu mezi sestaveními.
    - task: InstallAppleCertificate@2
      inputs:
        certSecureFile: '<secure-file.p12>'
        certPwd: '$(P12password)'
        signingIdentity: <full-signing-identity>
        keychain: default
        keychainPassword: `$(KEYCHAIN_PWD)
        deleteCert: false
    
  • Přidejte InstallAppleProvisioningProfile@1 úkol. V kódu:

    • Nastavte provProfileSecureFile název vašeho souboru zřizovacího profilu.
    • Nastaví removeProfile se tak false , aby byl profil zachován mezi sestaveními.
    - task: InstallAppleProvisioningProfile@1
        inputs:
          provProfileSecureFile: '<secure-file.mobileprovision>'
          removeProfile: false
    

Agent sestavení macOS teď může bezpečně podepsat a zřídit aplikaci pro všechna sestavení bez další správy certifikátů nebo profilů.

Odkazování na zabezpečené soubory v úloze sestavení Xcode nebo Xamarin.iOS

Pokud chcete v kanálech používat zabezpečený certifikát a profil, nakonfigurujte následující nastavení v úlohách sestavení Xcode nebo Xamarin.iOS.

Odkazy na zabezpečené soubory v úlohách sestavení používají proměnné pro signingIdentity provisioningProfileUuid Tyto proměnné jsou automaticky nastaveny úlohou Nainstalovat certifikát Apple a nainstalovat úlohy zřizovacího profilu Apple pro certifikát a zřizovací profil, který jste vybrali.

Pro Xcode:

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

Pro Xamarin.iOS:

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

Agent sestavení kanálu teď bezpečně podepíše a zřídí vaši aplikaci bez další správy certifikátů nebo profilů na samotném počítači sestavení.

Další informace o: