Mobilalkalmazás aláírása
Azure DevOps Services | Azure DevOps Server 2022 – Azure DevOps Server 2019
Ha androidos vagy Apple operációs rendszerekhez szeretne mobilalkalmazást aláírni és kiépíteni, kezelnie kell az aláíró tanúsítványokat és az Apple kiépítési profiljait. Ez a cikk azt ismerteti, hogyan kezelheti biztonságosan az alkalmazás azure Pipelinesban való aláírásához és kiépítéséhez szükséges tanúsítványokat és profilokat.
Feljegyzés
Build vagy kiadás futtatásához legalább egy ügynökre van szüksége. Használhatja a Microsoft által üzemeltetett Linux, macOS vagy Windows buildügynököt, vagy beállíthatja saját ügynökét. További információ: Build and release agents.
Android-alkalmazás aláírása
Kövesse az alábbi lépéseket az Android-alkalmazás aláírásához, miközben az aláíró tanúsítvány biztonságos marad.
A keystore-fájl feltöltése
Szerezze be az aláíró tanúsítványt tartalmazó kulcstárfájlt. Az Android dokumentációja leírja a kulcstárfájl és a hozzá tartozó kulcs létrehozásának folyamatát.
Az Azure Pipelinesban nyissa meg a Könyvtárak>biztonságos fájljait. Válassza a + Biztonságos fájl lehetőséget , és töltse fel a keystore-fájlt a biztonságos fájltárba. A feltöltés során a kulcstár titkosítva és biztonságosan tárolódik.
Az aláírási feladat hozzáadása a folyamathoz
Adja hozzá a AndroidSigning@3 feladatot a YAML-folyamathoz az alkalmazást összeállító lépés után. A feladatban AndroidSigning@3
:
<apkFiles>
szükséges, és az aláírandó APK-fájlok elérési útja és neve. Az alapértelmezett érték**/*.apk
.<apksign>
az alapértelmezett értéknek kell lennietrue
.<keystore-file>
a feltöltött kulcstárfájl neve a biztonságos fájltárban.<apksignerKeystorePassword>
a titkosítatlan kulcstárfájl jelszava.<apksignerKeystoreAlias>
az aláíró tanúsítvány kulcs aliasa.<apksignerKeyPassword>
a megadott aliashoz társított kulcs jelszava.
Beállíthat és használhat változókat a YAML-ben, vagy beállíthatja a változókat az Azure Pipelines felhasználói felületén található Változók lapon, és hivatkozhat rájuk a YAML-ben.
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)
Bármely buildügynök mostantól biztonságosan aláírhatja az alkalmazást anélkül, hogy a buildelési gépen bármilyen tanúsítványkezelést használ.
Apple iOS, macOS, tvOS vagy watchOS alkalmazás aláírása
Az alkalmazás aláírásához és kiépítéséhez az Xcode vagy a Xamarin.iOS buildnek hozzá kell férnie a P12 aláíró tanúsítványához és egy vagy több kiépítési profilhoz. Az alábbi lépések bemutatják, hogyan szerezheti be ezeket a fájlokat.
P12 aláíró tanúsítvány lekérése
Exportálja a fejlesztési vagy terjesztési aláíró tanúsítványt egy .p12 fájlba az Xcode vagy a Keychain Access alkalmazással macOS rendszeren.
Exportálás Xcode használatával:
Nyissa meg az Xcode>Preferences-fiókokat.>
A bal oldali oszlopban válassza ki az Apple ID azonosítóját.
A jobb oldalon válassza ki a személyes vagy csapatfiókját, majd válassza a Tanúsítványok kezelése lehetőséget.
Ctrl+Jelölje ki az exportálni kívánt tanúsítványt, és válassza a menüBől a Tanúsítvány exportálása lehetőséget.
A párbeszédpanelen adja meg a tanúsítvány nevét, a fájl mentésének helyét és a tanúsítvány biztonságossá tételéhez szükséges jelszót.
Vagy használja az iOS-aláírásban leírt eljárást egy hasonló folyamat követéséhez a Keychain Access alkalmazással macOS rendszeren, vagy hozzon létre egy aláíró tanúsítványt Windows rendszeren.
Töltse fel a P12-fájlt az Azure Pipelines biztonságos fájltárba. A feltöltés során a rendszer titkosítja és biztonságosan tárolja a tanúsítványt.
A folyamatban lépjen a Változók lapra, és adjon hozzá egy P12password nevű változót, amelynek értéke a tanúsítvány jelszava. A jelszó biztonságossá tételéhez és a naplókban való elrejtéséhez válassza a zárolás ikont.
Kiépítési profil lekérése
Ha az alkalmazás nem használ automatikus aláírást, letöltheti az alkalmazáskiépítési profilját az Apple Fejlesztői portálról. További információ: Kiépítési profilok szerkesztése, letöltése vagy törlése.
Az Xcode használatával is hozzáférhet a Mac gépére telepített kiépítési profilokhoz. Az Xcode-ban lépjen az Xcode Preferences Accounts (Xcode-beállítások>fiókjai>) elemre. Válassza ki az Apple ID azonosítóját és a csapatát, majd válassza a Manuális profilok letöltése lehetőséget.
Az Azure Pipelinesban töltse fel a kiépítési profilt a biztonságos fájltárba. A feltöltés során a rendszer titkosítja és biztonságosan tárolja a fájlt.
Az aláírási és kiépítési feladatok hozzáadása a folyamathoz
Az alkalmazás aláírásához és kiépítéséhez telepítheti a tanúsítványt és a profilt az egyes buildek során, vagy előre telepítheti a fájlokat egy macOS buildügynökön.
A tanúsítvány és a profil telepítése az egyes buildek során
Telepítse a tanúsítványt és a profilt minden build során, ha nem rendelkezik tartós hozzáféréssel a buildügynökhöz, például ha üzemeltetett macOS-ügynököket használ. A P12-tanúsítvány és a kiépítési profil a build elején települ, és a build befejezésekor el lesz távolítva.
Adja hozzá a InstallAppleCertificate@2 feladatot a YAML-folyamathoz az Xcode vagy a Xamarin.iOS tevékenység előtt. A kódban cserélje le
<secure-file.p12>
a feltöltött .p12 fájl nevét. Használja a változót a biztonságoshozP12password
.- task: InstallAppleCertificate@2 inputs: certSecureFile: '<secure-file.p12>' certPwd: '$(P12password)'
Feljegyzés
A feladatban a
InstallAppleCertificate@2
paraméter alapértelmezés szerint adeleteCert
következő,true
amely a buildelés után eltávolítja a tanúsítványt.Adja hozzá a InstallAppleProvisioningProfile@1 feladatot a YAML-hez az Xcode vagy a Xamarin.iOS feladat előtt. Cserélje le
<secure-file.mobileprovision>
a kiépítési profilfájl nevére.- task: InstallAppleProvisioningProfile@1 inputs: provProfileSecureFile: '<secure-file.mobileprovision>'
Feljegyzés
A feladatban a
InstallAppleProvisioningProfile@1
paraméter alapértelmezés szerint aremoveProfile
következő,true
amely a buildelés után eltávolítja a profilt.
Bármely buildügynök mostantól biztonságosan aláírhatja az alkalmazást tanúsítvány vagy profilkezelés nélkül a buildelési gépen.
A tanúsítvány és a profil előzetes telepítése macOS buildügynökön
Ahelyett, hogy a buildelés során telepíti az aláíró tanúsítványt és a kiépítési profilokat, előtelepítheti őket egy macOS buildügynökön. A fájlok ezután a buildek általi folyamatos használatra lesznek elérhetők. Ezt a módszert csak akkor használja, ha megbízik az ügynökgép macOS-kulcskarikához hozzáférő személyekben és folyamatokban.
A P12-tanúsítvány előzetestelepítése
A P12-tanúsítvány alapértelmezett kulcskarikában való telepítéséhez futtassa a következő parancsot egy macOS Terminálablakból a buildügynökön. Cserélje le
<certificate.p12>
a P12-fájl elérési útját és nevét. Cserélje le<password>
a P12-fájl titkosítási jelszavára.sudo security import <certificate.p12> -P <password>
Adjon hozzá egy új változót a KEYCHAIN_PWD nevű folyamathoz. Állítsa be az értéket jelszóként az alapértelmezett kulcskarikára, amely általában az ügynököt indító felhasználó jelszava. A jelszó védelméhez mindenképpen válassza a zárolás ikont.
A kiépítési profil előtelepítése
Keresse meg az aláíró identitás teljes nevét egy macOS terminálablak megnyitásával és a beírással
security find-identity -v -p codesigning
. Megjelenik az aláírási identitások listája az űrlaponiPhone Developer/Distribution: Developer Name (ID)
. Ha egy identitás érvénytelen, hasonlót fog látni(CSSMERR_TP_CERT_REVOKED)
az identitás után.Ha telepíteni szeretné a kiépítési profilt az ügynökgépre, futtassa a következő parancsot egy macOS Terminálablakból. Cserélje le
<profile>
a kiépítési profilfájl elérési útjára, és cserélje le<UUID>
a kiépítési profil UUID azonosítójára, amely a bővítmény nélküli.mobileprovision
kiépítési profilfájl neve.sudo cp <profile> ~/Library/MobileDevice/Provisioning Profiles/<UUID>.mobileprovision
Az alapértelmezett kulcskarikát használó aláírási és kiépítési feladatok hozzáadása
Adja hozzá a InstallAppleCertificate@2 feladatot a YAML-folyamathoz az Xcode vagy a Xamarin.iOS tevékenység előtt. A kódban állítsa be a következő értékeket:
certSecureFile
: A feltöltött .p12 fájl neve.certPwd
: A biztonságosP12password
változó.signingIdentity
: Az aláíró identitás teljes neve.keychain
:default
, az alapértelmezett kulcskarikához való hozzáférés engedélyezéséhez.keychainPassword
: AKEYCHAIN_PWD
változó.deleteCert
:false
, hogy megőrizze a tanúsítványt a buildek között.
- task: InstallAppleCertificate@2 inputs: certSecureFile: '<secure-file.p12>' certPwd: '$(P12password)' signingIdentity: <full-signing-identity> keychain: default keychainPassword: `$(KEYCHAIN_PWD) deleteCert: false
Adja hozzá a InstallAppleProvisioningProfile@1 feladatot. A kódban:
- Állítsa be
provProfileSecureFile
a kiépítési profilfájl nevét. - Állítsa be
removeProfile
úgy, hogyfalse
a profil megmaradjon a buildek között.
- task: InstallAppleProvisioningProfile@1 inputs: provProfileSecureFile: '<secure-file.mobileprovision>' removeProfile: false
- Állítsa be
A macOS buildügynök mostantól biztonságosan aláírhatja és kiépítheti az alkalmazást az összes buildhez további tanúsítvány vagy profilkezelés nélkül.
Hivatkozás az Xcode vagy a Xamarin.iOS buildelési feladatban lévő biztonságos fájlokra
Ha biztonságos tanúsítványt és profilt szeretne használni a folyamatokban, konfigurálja az alábbi beállításokat az Xcode vagy a Xamarin.iOS buildelési feladataiban.
A buildelési feladatok biztonságos fájlhivatkozásai változókat használnak az és a signingIdentity
provisioningProfileUuid
. Ezeket a változókat automatikusan beállítja az Apple-tanúsítvány telepítése és az Apple Provisioning Profile feladatainak telepítése a kiválasztott tanúsítványhoz és kiépítési profilhoz.
Xcode esetén:
- task: Xcode@5
inputs:
signingOption: 'manual'
signingIdentity: '$(APPLE_CERTIFICATE_SIGNING_IDENTITY)'
provisioningProfileUuid: '$(APPLE_PROV_PROFILE_UUID)'
Xamarin.iOS esetén:
- task: XamariniOS@2
inputs:
solutionFile: '**/*.iOS.csproj'
signingIdentity: '$(APPLE_CERTIFICATE_SIGNING_IDENTITY)'
signingProvisioningProfileID: '$(APPLE_PROV_PROFILE_UUID)'
A folyamat buildügynöke mostantól biztonságosan aláírja és kiépíti az alkalmazást anélkül, hogy további tanúsítványokat vagy profilkezelést használ a buildelési gépen.
Kapcsolódó tartalom
További információ:
- Az Android-alkalmazások folyamatait lásd: Android-alkalmazások összeállítása, tesztelése és üzembe helyezése.
- Az iOS-alkalmazások folyamatait lásd: Xcode-alkalmazások összeállítása, tesztelése és üzembe helyezése.
- Ügynökök, lásd: Azure Pipelines-ügynökök.
- Ügynökkészletek és üzenetsorok: Ügynökkészletek létrehozása és kezelése.
- A folyamatok változói, lásd a változók definiálása című témakört.
- Folyamat hibaelhárítása: Folyamatfuttatások hibaelhárítása.