Podpisywanie aplikacji mobilnej

Azure DevOps Services | Azure DevOps Server 2022 — Azure DevOps Server 2019

Aby podpisać i aprowizować aplikację mobilną dla systemów operacyjnych Android lub Apple, musisz zarządzać certyfikatami podpisywania i profilami aprowizacji firmy Apple. W tym artykule opisano sposób bezpiecznego zarządzania certyfikatami i profilami na potrzeby podpisywania i aprowizacji aplikacji w usłudze Azure Pipelines.

Uwaga

Do uruchomienia kompilacji lub wydania potrzebny jest co najmniej jeden agent. Możesz użyć hostowanego przez firmę Microsoft agenta kompilacji systemu Linux, macOS lub Windows albo skonfigurować własnego agenta. Aby uzyskać więcej informacji, zobacz Kompilowanie i wydawanie agentów.

Podpisywanie aplikacji systemu Android

Wykonaj następujące kroki, aby podpisać aplikację systemu Android przy zachowaniu bezpieczeństwa certyfikatu podpisywania.

Przekazywanie pliku magazynu kluczy

  1. Uzyskaj plik magazynu kluczy zawierający certyfikat podpisywania. W dokumentacji systemu Android opisano proces generowania pliku magazynu kluczy i jego odpowiedniego klucza.

  2. W usłudze Azure Pipelines przejdź do pozycji Biblioteki>Bezpieczne pliki. Wybierz pozycję + Bezpieczny plik i przekaż plik magazynu kluczy do bezpiecznej biblioteki plików. Podczas przekazywania magazyn kluczy jest szyfrowany i bezpiecznie przechowywany.

Dodawanie zadania podpisywania do potoku

Dodaj zadanie AndroidSigning@3 do potoku YAML po kroku, który kompiluje aplikację. W zadaniu AndroidSigning@3 :

  • <apkFiles> jest wymagany i jest ścieżką i nazwami plików APK do podpisania. Wartość domyślna to **/*.apk.
  • <apksign> musi mieć truewartość , która jest wartością domyślną.
  • <keystore-file> 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.

Zmienne można ustawiać i używać w języku YAML lub ustawić zmienne przy użyciu karty Zmienne w interfejsie użytkownika usługi Azure Pipelines i odwoływać się do nich w języku 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)

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ę, kompilacja Xcode lub Xamarin.iOS wymaga dostępu do certyfikatu podpisywania P12 i co najmniej jednego profilu aprowizacji. W poniższych krokach wyjaśniono, jak uzyskać te pliki.

Uzyskiwanie certyfikatu podpisywania P12

  1. 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:

      1. Przejdź do pozycji Konta preferencji>Xcode>.

      2. W lewej kolumnie wybierz swój identyfikator Apple ID.

      3. Po prawej stronie wybierz swoje osobiste lub zespołowe konto i wybierz pozycję Zarządzaj certyfikatami.

      4. Ctrl+Wybierz certyfikat, który chcesz wyeksportować, i wybierz pozycję Eksportuj certyfikat z menu.

        Zrzut ekranu przedstawiający eksportowanie certyfikatu przy użyciu programu Xcode.

      5. W oknie dialogowym wprowadź nazwę certyfikatu, lokalizację do zapisania pliku i hasło w celu zabezpieczenia certyfikatu.

    • Możesz też użyć procedury opisanej w artykule Podpisywanie systemu iOS, aby wykonać podobny proces przy użyciu aplikacji Keychain Access w systemie macOS lub wygenerować certyfikat podpisywania w systemie Windows.

  2. Przekaż plik P12 do biblioteki bezpiecznych plików usługi Azure Pipelines. Podczas przekazywania certyfikat jest szyfrowany i bezpiecznie przechowywany.

  3. W potoku przejdź do karty Zmienne i dodaj zmienną o nazwie P12password z hasłem certyfikatu jako wartością. Pamiętaj, aby wybrać ikonę blokady, aby zabezpieczyć hasło i zasłonić je w dziennikach.

Uzyskiwanie profilu aprowizacji

Jeśli aplikacja nie korzysta z automatycznego podpisywania, możesz pobrać 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>Xcode>. Wybierz swój identyfikator Apple ID i twój zespół, a następnie wybierz pozycję Pobierz profile ręczne.

W usłudze Azure Pipelines przekaż profil aprowizacji do biblioteki bezpiecznych plików. Podczas przekazywania plik jest szyfrowany i bezpiecznie przechowywany.

Dodawanie zadań podpisywania i aprowizacji do potoku

Aby podpisać i aprowizować aplikację, możesz zainstalować certyfikat i profil podczas każdej kompilacji lub wstępnie zainstalować pliki w agencie kompilacji systemu macOS.

Instalowanie certyfikatu i profilu podczas każdej kompilacji

Zainstaluj certyfikat i profil podczas każdej kompilacji, gdy nie masz trwałego dostępu do agenta kompilacji, na przykład w przypadku korzystania z hostowanych agentów systemu macOS. Certyfikat P12 i profil aprowizacji są instalowane na początku kompilacji i usuwane po zakończeniu kompilacji.

  • Dodaj zadanie InstallAppleCertificate@2 do potoku YAML przed zadaniem Xcode lub Xamarin.iOS. W kodzie zastąp <secure-file.p12> ciąg nazwą przekazanego pliku p12 . Użyj zmiennej dla bezpiecznego P12passwordelementu .

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

    Uwaga

    InstallAppleCertificate@2 W zadaniu deleteCert parametr jest domyślnie ustawiony na true, który usuwa certyfikat po kompilacji.

  • Dodaj zadanie InstallAppleProvisioningProfile@1 do kodu YAML przed zadaniem Xcode lub Xamarin.iOS. Zastąp <secure-file.mobileprovision> ciąg nazwą pliku profilu aprowizacji.

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

    Uwaga

    InstallAppleProvisioningProfile@1 W zadaniu removeProfile parametr jest domyślnie ustawiony na true, który usuwa profil po 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

Zamiast instalować certyfikat podpisywania i profile aprowizacji podczas kompilacji, można je wstępnie zainstalować na agencie kompilacji systemu macOS. Pliki są następnie dostępne do dalszego używania 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 maszynie agenta.

Preinstalacja certyfikatu P12

  1. Aby zainstalować certyfikat P12 w domyślnym pęku kluczy, uruchom następujące polecenie w oknie terminalu systemu macOS na agencie kompilacji. Zastąp <certificate.p12> ciąg ścieżką i nazwą pliku P12. Zastąp <password> ciąg hasłem szyfrowania pliku P12.

    sudo security import <certificate.p12> -P <password>
    
  2. Dodaj nową zmienną do potoku o nazwie KEYCHAIN_PWD. Ustaw wartość jako hasło na domyślny pęk kluczy, który jest zwykle hasłem dla użytkownika, który uruchamia agenta. Pamiętaj, aby wybrać ikonę blokady, aby zabezpieczyć to hasło.

Wstępne instalowanie profilu aprowizacji

  1. Znajdź pełną nazwę tożsamości podpisywania, otwierając okno terminalu systemu macOS i wprowadzając polecenie security find-identity -v -p codesigning. 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.

  2. Aby zainstalować profil aprowizacji na maszynie agenta, uruchom następujące polecenie w oknie terminalu systemu macOS. Zastąp <profile> ciąg ścieżką do pliku profilu aprowizacji i zastąp ciąg <UUID> identyfikatorem UUID profilu aprowizacji, który jest nazwą pliku profilu aprowizacji bez .mobileprovision rozszerzenia.

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

Dodawanie zadań podpisywania i aprowizacji, które używają domyślnego łańcucha kluczy

  • Dodaj zadanie InstallAppleCertificate@2 do potoku YAML przed zadaniem Xcode lub Xamarin.iOS. W kodzie ustaw następujące wartości:

    • certSecureFile: nazwa przekazanego pliku p12 .
    • certPwd: zmienna bezpiecznego P12password.
    • signingIdentity: pełna nazwa tożsamości podpisywania.
    • keychain: default, aby zezwolić na dostęp do domyślnego łańcucha kluczy.
    • keychainPassword: zmienna KEYCHAIN_PWD .
    • deleteCert: false, aby 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 zadanie InstallAppleProvisioningProfile@1. W kodzie:

    • Ustaw provProfileSecureFile nazwę pliku profilu aprowizacji.
    • Ustaw removeProfile wartość na , aby false profil był zachowywany 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 dalszego zarządzania certyfikatami lub profilami.

Odwołuj się do bezpiecznych plików w zadaniu kompilacji Xcode lub Xamarin.iOS

Aby używać bezpiecznego certyfikatu i profilu w potokach, skonfiguruj następujące ustawienia w zadaniach kompilacji Xcode lub Xamarin.iOS.

Odwołania do bezpiecznych plików w zadaniach kompilacji używają zmiennych dla obiektów signingIdentity i provisioningProfileUuid. Te zmienne są automatycznie ustawiane przez zadania Zainstaluj certyfikat firmy Apple i Zainstaluj profil aprowizacji firmy Apple dla wybranego certyfikatu i profilu aprowizacji.

W przypadku środowiska Xcode:

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

W przypadku platformy Xamarin.iOS:

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

Agent kompilacji potoku teraz bezpiecznie podpisuje i aprowizuje aplikację bez dalszego zarządzania certyfikatami lub profilami na samej maszynie kompilacji.

Aby uzyskać więcej informacji na temat: