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íčů
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.
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ýttrue
, 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
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:
Přejděte na účty Xcode>Preferences>.
V levém sloupci vyberte Apple ID.
Na pravé straně vyberte svůj osobní nebo týmový účet a vyberte Spravovat certifikáty.
Ctrl+Vyberte certifikát, který chcete exportovat, a v nabídce vyberte Exportovat certifikát .
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.
Nahrajte soubor P12 do zabezpečené knihovny souborů Azure Pipelines. Během nahrávání se certifikát zašifruje a bezpečně uloží.
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 úlozedeleteCert
se ve výchozím nastavenítrue
parametru 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 úlozeremoveProfile
se ve výchozím nastavenítrue
parametru 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
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>
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.
Ú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ářiiPhone Developer/Distribution: Developer Name (ID)
. Pokud je identita neplatná, zobrazí se něco jako(CSSMERR_TP_CERT_REVOKED)
po identitě.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
: ,default
pro 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 takfalse
, aby byl profil zachován mezi sestaveními.
- task: InstallAppleProvisioningProfile@1 inputs: provProfileSecureFile: '<secure-file.mobileprovision>' removeProfile: false
- Nastavte
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í.
Související obsah
Další informace o:
- Kanály pro aplikace pro Android najdete v tématu Vytváření, testování a nasazování aplikací pro Android.
- Kanály pro aplikace pro iOS, viz Sestavení, testování a nasazení aplikací Xcode.
- Agenti, viz agenti Azure Pipelines.
- Fondy a fronty agentů najdete v tématu Vytváření a správa fondů agentů.
- Proměnné v kanálech najdete v tématu Definování proměnných.
- Řešení potíží s kanály najdete v tématu Řešení potíží se spuštěními kanálu.