Nuta
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować się zalogować lub zmienić katalog.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Azure DevOps Services | Azure DevOps Server | Azure DevOps Server 2022
W tym artykule opisano sposób bezpiecznego zarządzania certyfikatami i profilami usługi Azure Pipelines na potrzeby podpisywania i aprowizacji aplikacji mobilnych. Aby podpisać i skonfigurować aplikację mobilną, potoki muszą dostarczać certyfikaty podpisywania dla systemów operacyjnych Android lub Apple oraz profile konfiguracyjne dla Apple.
Podpisywanie aplikacji dla systemu Android
Poniższy proces podpisuje aplikację dla systemu Android przy zachowaniu bezpieczeństwa certyfikatu podpisywania.
Pobierz plik magazynu kluczy
Postępuj zgodnie z dokumentacją Android, aby wygenerować plik keystore i odpowiadający mu klucz. Plik magazynu kluczy zawiera certyfikat podpisywania.
W obszarze Biblioteki usług Azure Pipelines, w sekcji >, wybierz pozycję + Bezpieczny plik i prześlij plik magazynu kluczy do biblioteki plików zabezpieczonych. Podczas przekazywania magazyn kluczy jest szyfrowany i bezpiecznie przechowywany.
Dodawanie zadania podpisywania do potoku
W potoku YAML dla aplikacji systemu Android ustaw następujące zmienne keystore-password, key-alias i key-password. Alternatywnie można ustawić zmienne przy użyciu interfejsu użytkownika Variables potoku.
variables:
keystore-password: <keystore file password>
key-alias: <key alias for the signing certificater>
key-password: <password for the key associated with the alias>
Dodaj zadanie AndroidSigning@3 do pipeline po kroku budowania. W zadaniu AndroidSigning@3 :
-
<apkFiles>to wymagana ścieżka i nazwa plików APK do podpisania. Domyślna wartość to**/*.apk. -
<apksign>musi miećtruewartość , która jest wartością domyślną. -
<apksignerKeystoreFile>to nazwa przekazanego pliku magazynu kluczy w bibliotece bezpiecznych plików. -
<apksignerKeystorePassword>to hasło do niezaszyfrowanego pliku magazynu kluczy. -
<apksignerKeystoreAlias>to alias klucza certyfikatu podpisywania. -
<apksignerKeyPassword>to hasło klucza skojarzonego z określonym aliasem.
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)
Każdy agent kompilacji może teraz bezpiecznie podpisać aplikację bez zarządzania certyfikatami na samej maszynie kompilacji.
Podpisywanie aplikacji apple iOS, macOS, tvOS lub watchOS
Aby podpisać i aprowizować aplikację firmy Apple, kompilacja Xcode wymaga dostępu do certyfikatu podpisywania P12 i co najmniej jednego profilu aprowizacji.
Pobieranie certyfikatu podpisywania P12
Wyeksportuj certyfikat podpisywania programowania lub dystrybucji do pliku p12 przy użyciu programu Xcode lub aplikacji Keychain Access w systemie macOS. Aby wyeksportować przy użyciu programu Xcode:
Przejdź do pozycji Konta preferencji>>
W lewej kolumnie wybierz swój identyfikator Apple ID.
Po prawej stronie wybierz swoje osobiste lub zespołowe konto i wybierz pozycję Zarządzaj certyfikatami.
Ctrl+Wybierz certyfikat, który chcesz wyeksportować, a następnie wybierz pozycję Eksportuj certyfikat z menu.
Wprowadź nazwę certyfikatu, lokalizację do zapisania pliku i hasło w celu zabezpieczenia certyfikatu.
Aby wyeksportować przy użyciu aplikacji Keychain Access w systemie macOS lub wygenerować certyfikat podpisywania w systemie Windows, użyj procedury opisanej w temacie Podpisywanie systemu iOS.
Przekaż plik P12 i dodaj zmienną hasła
W obszarze Biblioteki> usługi Azure PipelinesSecure files wybierz pozycję + Bezpieczny plik i przekaż plik P12 do biblioteki bezpiecznych plików usługi Azure Pipelines. Podczas przekazywania certyfikat jest szyfrowany i bezpiecznie przechowywany.
W interfejsie użytkownika Zmiennych dla potoku kompilacji aplikacji, dodaj zmienną o nazwie P12password z hasłem certyfikatu jako wartością. Wybierz ikonę blokady , aby zabezpieczyć hasło i zasłonić je w dziennikach.
Pobierz profil konfiguracji
Jeśli aplikacja nie korzysta z automatycznego podpisywania, pobierz profil aprowizacji aplikacji z portalu dla deweloperów firmy Apple. Aby uzyskać więcej informacji, zobacz Edytowanie, pobieranie lub usuwanie profilów aprowizacji.
Możesz również użyć programu Xcode, aby uzyskać dostęp do profilów aprowizacji zainstalowanych na komputerze Mac. W programie Xcode przejdź do pozycji Konta preferencji>> Wybierz swój identyfikator Apple ID i zespół, a następnie wybierz pozycję Pobierz profile ręczne.
W usłudze Azure Pipelines przekaż profil zarządzania do biblioteki bezpiecznych plików. Podczas przekazywania plik jest szyfrowany i bezpiecznie przechowywany.
Dodaj zadania podpisywania i prowizjonowania do pipeline'u
Do uruchomienia potoku kompilacji lub wydania usługi Azure Pipelines jest potrzebny co najmniej jeden komputer agenta. Możesz użyć agentów hostowanych przez firmę Microsoft lub skonfigurować własnych agentów. Aby uzyskać więcej informacji, zobacz agentów usługi Azure Pipelines.
W przypadku podpisywania i aprowizacji aplikacji firmy Apple na hostowanych agentach systemu macOS lub jeśli nie chcesz zezwalać na dostęp do łańcucha kluczy agenta, możesz zainstalować wymagany certyfikat i profile podczas każdej kompilacji. Jeśli używasz własnego agenta i ufasz osobom i procesom, które mogą uzyskać dostęp do łańcucha kluczy agenta, możesz wstępnie zainstalować certyfikat i profile w agencie kompilacji systemu macOS.
Instalowanie certyfikatu i profilu podczas każdej kompilacji
Jeśli nie masz trwałego dostępu do agenta kompilacji, na przykład w przypadku korzystania z agentów hostowanych przez firmę Microsoft, możesz zainstalować certyfikat i profil podczas każdej kompilacji. Pipeline instaluje certyfikat P12 i profil provisioning na początku każdej kompilacji i usuwa je po zakończeniu kompilacji.
W potoku kompilacji YAML dla aplikacji dodaj zadanie InstallAppleCertificate@2 przed zadaniem Xcode@5 . W kodzie zastąp <secure-file.p12> nazwą załadowanego pliku p12. W przypadku certPwd użyj utworzonej bezpiecznej zmiennej P12password.
- task: InstallAppleCertificate@2
inputs:
certSecureFile: '<secure-file.p12>'
certPwd: '$(<P12password>)'
Dodaj również zadanie InstallAppleProvisioningProfile@1 do potoku przed zadaniem Xcode@5 . Zastąp <secure-file.mobileprovision> nazwą pliku profilu provisioningu.
- task: InstallAppleProvisioningProfile@1
inputs:
provProfileSecureFile: '<secure-file.mobileprovision>'
Uwaga
W zadaniach InstallAppleCertificate@2InstallAppleProvisioningProfile@1 i removeProfile parametr jest domyślnie ustawiony na true, który usuwa certyfikat i profil po każdej kompilacji.
Każdy agent kompilacji może teraz bezpiecznie podpisać aplikację bez konieczności zarządzania certyfikatami lub profilami na samej maszynie kompilacji.
Wstępne instalowanie certyfikatu i profilu w agencie kompilacji systemu macOS
Alternatywnie można zainstalować z wyprzedzeniem certyfikat podpisywania i profile przydzielania na własnych agentach kompilacji systemu macOS, aby były dalej używane przez kompilacje. Ta metoda jest używana tylko wtedy, gdy ufasz osobom i procesom, które mają dostęp do łańcucha kluczy systemu macOS na maszynach agentów.
Dodawanie zmiennej hasła łańcucha kluczy do potoku
Dodaj nową zmienną do potoku kompilacji o nazwie KEYCHAIN_PWD. Ustaw wartość jako domyślne hasło łańcucha kluczy systemu macOS, czyli zwykle hasło użytkownika uruchamiające agenta. Wybierz ikonę blokady , aby zabezpieczyć to hasło.
Zainstaluj certyfikat P12 na agencie
Aby zainstalować certyfikat P12 w domyślnym pęku kluczy, uruchom następujące polecenie w oknie terminalu systemu macOS na maszynie agenta. Zastąp <certificate.p12> ciąg ścieżką i nazwą pliku P12, a następnie zastąp <password> ciąg hasłem szyfrowania pliku P12.
sudo security import <certificate.p12> -P <password>
Zainstaluj profil aprowizacji na agencie
Znajdź pełną nazwę swojej tożsamości podpisu, wprowadzając security find-identity -v -p codesigning w oknie terminalu systemu macOS. Zostanie wyświetlona lista tożsamości podpisywania w formularzu iPhone Developer/Distribution: Developer Name (ID). Jeśli tożsamość jest nieprawidłowa, zobaczysz coś takiego jak (CSSMERR_TP_CERT_REVOKED) po tożsamości.
Aby zainstalować profil aprowizacji na agencie, uruchom następujące polecenie w oknie terminalu systemu macOS. Zastąp <profile> ścieżką do pliku profilu zasilania. Zastąp <UUID> symbolem UUID profilu aprowizacji, który jest nazwą pliku profilu aprowizacji bez rozszerzenia .mobileprovision.
sudo cp <profile> ~/Library/MobileDevice/Provisioning Profiles/<UUID>.mobileprovision
Dodawanie zadań podpisywania i aprowizacji, które używają domyślnego łańcucha kluczy
W potoku kompilacji YAML dodaj zadanie InstallAppleCertificate@2 przed zadaniem Xcode@5 . W kodzie ustaw następujące wartości:
-
certSecureFile: nazwa przekazanego pliku p12 . -
certPwd: zmienna bezpiecznegoP12password. -
signingIdentity: pełna nazwa tożsamości podpisywania. -
keychain:defaultaby zezwolić na dostęp do domyślnego łańcucha kluczy. -
keychainPassword: zmiennaKEYCHAIN_PWD. -
deleteCert:falseaby zachować certyfikat między kompilacjami.
- task: InstallAppleCertificate@2
inputs:
certSecureFile: '<secure-file.p12>'
certPwd: '$(P12password)'
signingIdentity: <full-signing-identity>
keychain: default
keychainPassword: `$(KEYCHAIN_PWD)
deleteCert: false
Dodaj również zadanie InstallAppleProvisioningProfile@1 przed zadaniem Xcode@5 . W kodzie:
- Ustaw
provProfileSecureFilenazwę pliku profilu aprowizacji. - Ustaw
removeProfilenafalse, aby zachować profil między kompilacjami.
- task: InstallAppleProvisioningProfile@1
inputs:
provProfileSecureFile: '<secure-file.mobileprovision>'
removeProfile: false
Agent kompilacji systemu macOS może teraz bezpiecznie podpisać i aprowizować aplikację dla wszystkich kompilacji bez konieczności dalszego zarządzania certyfikatami lub profilami.
Konfigurowanie zadania kompilacji Xcode w celu odwołwania się do bezpiecznych plików
Zadanie kompilacji Xcode (Xcode@5) odwołuje się do signingIdentity i provisioningProfileUuid z wykorzystaniem zmiennych. Te zmienne są automatycznie ustawiane dla wybranego certyfikatu i profilu aprowizacji przez poprzednie zadania Zainstaluj certyfikat firmy Apple i Zainstaluj profil aprowizacji firmy Apple .
Dodaj następujący kod do zadania potoku kompilacji Xcode (Xcode@5):
- task: Xcode@5
inputs:
signingOption: 'manual'
signingIdentity: '$(APPLE_CERTIFICATE_SIGNING_IDENTITY)'
provisioningProfileUuid: '$(APPLE_PROV_PROFILE_UUID)'
Agent kompilacji potoku teraz bezpiecznie podpisuje i aprowizuje aplikację bez dalszego zarządzania certyfikatami lub profilami na maszynie kompilacji lub w potoku kompilacji.