Udostępnij za pośrednictwem


Podpisywanie aplikacji mobilnej

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

Podczas tworzenia aplikacji dla systemów operacyjnych Android lub Apple należy w końcu zarządzać certyfikatami podpisywania, a w przypadku aplikacji firmy Apple profilów aprowizacji. W tym artykule opisano sposób bezpiecznego zarządzania nimi na potrzeby podpisywania i aprowizacji aplikacji.

Napiwek

Użyj agenta kompilacji systemu Linux, macOS lub Windows hostowanego przez firmę Microsoft albo skonfiguruj własnego agenta. Zobacz Kompilowanie i wydawanie agentów.

Ten artykuł dotyczy:

Podpisywanie aplikacji systemu Android

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

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

  2. Utwórz potok kompilacji na podstawie szablonu kompilacji android lub Xamarin.Android. Jeśli masz już potok kompilacji, dodaj zadanie Podpisywanie systemu Android po zadaniu, które kompiluje plik APK.

  3. Znajdź pole wyboru Podpisz plik APK zadania podpisywania systemu Android i włącz je.

  4. Obok pola Plik magazynu kluczy wybierz ikonę ustawień i przekaż plik magazynu kluczy do biblioteki Secure Files. Podczas przekazywania magazyn kluczy będzie szyfrowany i bezpiecznie przechowywany.

  5. Po przekazaniu magazynu kluczy do biblioteki Secure Files wybierz go z listy rozwijanej Plik magazynu kluczy.

  6. Przejdź do karty Zmienne i dodaj następujące zmienne. W kolumnie Wartość wprowadź hasło magazynu kluczy, alias klucza i hasło klucza.

    • keystore-password: hasło do niezaszyfrowanego pliku magazynu kluczy. Pamiętaj, aby wybrać ikonę blokady. Spowoduje to zabezpieczenie hasła i ukrycie go w dziennikach.

    • key-alias: alias klucza dla wygenerowanego certyfikatu podpisywania.

    • key-password: hasło klucza skojarzonego z określonym aliasem. Ponownie pamiętaj, aby wybrać ikonę blokady.

      Zmienne podpisywania systemu Android

  7. Wróć do karty Zadania i odwołaj się do nazw nowo utworzonych zmiennych w opcjach podpisywania.

    Wartości wejściowe podpisywania systemu Android

Zapisz potok kompilacji i wszystko jest gotowe! Każdy agent kompilacji będzie teraz mógł bezpiecznie podpisać aplikację bez zarządzania certyfikatami na samej maszynie kompilacji.

Podpisywanie aplikacji apple iOS, macOS, tvOS lub watchOS

W przypadku kompilacji Xcode lub Xamarin.iOS w celu podpisywania i aprowizacji aplikacji musi ona mieć dostęp do certyfikatu podpisywania P12 i co najmniej jednego profilu aprowizacji. W poniższych sekcjach opisano sposób uzyskiwania tych plików.

Uzyskiwanie certyfikatu podpisywania P12

Po utworzeniu certyfikatu tworzenia lub podpisywania dystrybucji wyeksportuj go do .p12 pliku przy użyciu programu Xcode lub aplikacji Keychain Access w systemie macOS.

  1. Aby wyeksportować przy użyciu programu Xcode 8 lub niższego, przejdź do pozycji Preferencje programu Xcode...>>Konta i wybierz konto dla deweloperów firmy Apple.

  2. Wybierz pozycję Wyświetl szczegóły..., kliknij prawym przyciskiem myszy tożsamość podpisywania, którą chcesz wyeksportować, i wybierz polecenie Eksportuj....

  3. Wprowadź nazwę pliku i hasło. Zanotuj hasło, ponieważ będzie potrzebne później.

    Xcode Export Cert

  4. Alternatywnie wykonaj podobny proces przy użyciu aplikacji Keychain Access w systemie macOS lub wygeneruj certyfikat podpisywania w systemie Windows. Jeśli wolisz tę metodę, użyj procedury opisanej w tym artykule .

Uzyskiwanie profilu aprowizacji

Profil aprowizacji aplikacji można pobrać z portalu dla deweloperów firmy Apple, chyba że aplikacja korzysta z automatycznego podpisywania. Dowiedz się, jak pobrać profil aprowizacji w portalu dla deweloperów firmy Apple.

Możesz również użyć programu Xcode, aby uzyskać dostęp do tych, które są zainstalowane na komputerze Mac.

  1. Korzystając z programu Xcode 8 lub niższego, przejdź do pozycji Preferencje programu Xcode...>>Konta i wybierz konto dla deweloperów firmy Apple.

  2. Kliknij prawym przyciskiem myszy profil aprowizacji, którego chcesz użyć, i wybierz polecenie Pokaż w programie Finder.

  3. Skopiuj wyróżniony plik z programu Finder do innej lokalizacji i nadaj mu opisową nazwę pliku.

    Program Xcode Show w programie Finder

Konfigurowanie kompilacji

Istnieją dwa zalecane sposoby uzyskiwania dostępu do certyfikatów podpisywania i profilów aprowizacji na potrzeby podpisywania i aprowizacji aplikacji:

  1. Instalowanie ich podczas kompilacji
  2. Wstępne instalowanie ich w agencie kompilacji systemu macOS

Wybierz jedną z poniższych kart, aby uzyskać szczegółowe informacje.

Użyj tej metody, jeśli nie masz trwałego dostępu do agenta kompilacji, takiego jak hostowani agenci systemu macOS. Certyfikat P12 i profil aprowizacji są instalowane na początku kompilacji i usuwane po zakończeniu kompilacji.

Instalowanie certyfikatu P12 podczas kompilacji

Edytor wizualizacji
  1. Dodaj zadanie Zainstaluj certyfikat firmy Apple do kompilacji przed zadaniem Xcode lub Xamarin.iOS.
  2. Obok pola Certyfikat (P12) wybierz ikonę ustawień i przekaż plik P12 do biblioteki Secure Files. Podczas przekazywania certyfikat zostanie zaszyfrowany i bezpiecznie przechowywany.
  3. Po przekazaniu certyfikatu do biblioteki Secure Files wybierz go z listy rozwijanej Certyfikat (P12).
  4. Przejdź do karty Zmienne i dodaj zmienną o nazwie P12password. Ustaw jego wartość na hasło certyfikatu. Pamiętaj, aby wybrać ikonę blokady. Spowoduje to zabezpieczenie hasła i ukrycie go w dziennikach.
  5. Wróć do karty Zadania. W ustawieniach zadania Zainstaluj certyfikat firmy Apple odwołuj się do nowo utworzonej zmiennej w polu Hasło certyfikatu (P12) jako:$(P12password)
Przykładowy kod YAML
  1. Przekaż plik P12 do biblioteki Secure Files. Podczas przekazywania certyfikat zostanie zaszyfrowany i bezpiecznie przechowywany.

  2. Przejdź do karty Zmienne i dodaj zmienną o nazwie P12password. Ustaw jego wartość na hasło certyfikatu. Pamiętaj, aby wybrać ikonę blokady. Spowoduje to zabezpieczenie hasła i ukrycie go w dziennikach.

  3. Dodaj zadanie Zainstaluj certyfikat firmy Apple do kodu YAML przed zadaniem Xcode lub Xamarin.iOS:

    - task: InstallAppleCertificate@2
        inputs:
          certSecureFile: 'my-secure-file.p12' # replace my-secure-file.p12 with the name of your P12 file.
          certPwd: '$(P12password)'
    

Instalowanie profilu aprowizacji podczas kompilacji

Edytor wizualizacji
  1. Dodaj zadanie Zainstaluj profil aprowizacji firmy Apple do kompilacji przed zadaniem Xcode lub Xamarin.iOS.
  2. W przypadku opcji Lokalizacja profilu aprowizacji wybierz pozycję Bezpieczne pliki (w pliku YAML, secureFiles).
  3. Obok pola Profil aprowizacji wybierz ikonę ustawień i przekaż plik profilu aprowizacji do biblioteki Secure Files. Podczas przekazywania certyfikat zostanie zaszyfrowany i bezpiecznie przechowywany.
  4. Po przekazaniu certyfikatu do biblioteki Secure Files wybierz go z listy rozwijanej Profil aprowizacji.
  5. Włącz pole wyboru z etykietą Usuń profil po kompilacji. Dzięki temu profil aprowizacji nie pozostanie na maszynie agenta.
Przykładowy kod YAML
  1. Przekaż profil aprowizacji do biblioteki Secure Files. Podczas przekazywania certyfikat zostanie zaszyfrowany i bezpiecznie przechowywany.

  2. Dodaj zadanie Install Apple Provisioning Profile (Zainstaluj profil aprowizacji firmy Apple) do kodu YAML przed zadaniem Xcode lub Xamarin.iOS:

    - task: InstallAppleProvisioningProfile@1
        inputs:
          provProfileSecureFile: 'my-provisioning-profile.mobileprovision' # replace my-provisioning-profile.mobileprovision with the name of your provisioning profile file.
    

    [UWAGA] Usuń profil po ustawieniu wartości domyślnych kompilacji na true.

Odwołuj się do plików w zadaniu Xcode

Edytor wizualizacji
  1. Wybierz zadanie Xcode.
  2. Dla opcji Styl podpisywania wybierz pozycję Ręczne podpisywanie.
  3. W polu Tożsamość podpisywania wprowadź wartość $(APPLE_CERTIFICATE_SIGNING_IDENTITY). Ta zmienna jest automatycznie ustawiana przez zadanie Zainstaluj certyfikat firmy Apple dla wybranego certyfikatu.
  4. W polu Identyfikator UUID profilu aprowizacji wprowadź wartość $(APPLE_PROV_PROFILE_UUID). Ta zmienna jest automatycznie ustawiana przez zadanie Zainstaluj profil aprowizacji firmy Apple dla wybranego profilu aprowizacji.
Przykładowy kod YAML
- task: Xcode@5
  inputs:
    signingOption: 'manual'
    signingIdentity: '$(APPLE_CERTIFICATE_SIGNING_IDENTITY)'
    provisioningProfileUuid: '$(APPLE_PROV_PROFILE_UUID)'

Odwołanie do plików w zadaniu platformy Xamarin.iOS

Edytor wizualizacji
  1. Wybierz zadanie Xamarin.iOS.
  2. W przypadku opcji Zastąpij przy użyciu wybierz pozycję Identyfikatory.
  3. W polu Tożsamość podpisywania wprowadź wartość $(APPLE_CERTIFICATE_SIGNING_IDENTITY). Ta zmienna jest automatycznie ustawiana przez zadanie Zainstaluj certyfikat firmy Apple dla wybranego certyfikatu.
  4. W polu Identyfikator UUID profilu aprowizacji wprowadź wartość $(APPLE_PROV_PROFILE_UUID). Ta zmienna jest automatycznie ustawiana przez zadanie Zainstaluj profil aprowizacji firmy Apple dla wybranego profilu aprowizacji.
Przykładowy kod YAML
- task: XamariniOS@2
    inputs:
      solutionFile: '**/*.iOS.csproj'
      signingIdentity: '$(APPLE_CERTIFICATE_SIGNING_IDENTITY)'
      signingProvisioningProfileID: '$(APPLE_PROV_PROFILE_UUID)'

Zapisz potok kompilacji i wszystko jest gotowe! Agent kompilacji będzie teraz mógł bezpiecznie podpisać i aprowizować aplikację.

Często zadawane pytania

Czy potrzebuję agenta?

Do uruchomienia kompilacji lub wydania potrzebny jest co najmniej jeden agent .

Mam problemy. Jak można je rozwiązać?

Zobacz Rozwiązywanie problemów z kompilacją i wydaniem.

Nie mogę wybrać domyślnej puli agentów i nie mogę w kolejce kompilacji ani wydania. Jak mogę to naprawić?

Zobacz Pule agentów.

Moje zadanie wypychania NuGet kończy się niepowodzeniem z powodu następującego błędu: "Błąd: nie można pobrać certyfikatu wystawcy lokalnego". Jak rozwiązać ten problem?

Można to naprawić przez dodanie zaufanego certyfikatu głównego. Możesz dodać zmienną środowiskową NODE_EXTRA_CA_CERTS=file do agenta kompilacji lub dodać zmienną zadania NODE.EXTRA.CA.CERTS=file w potoku. Aby uzyskać więcej informacji na temat tej zmiennej, zobacz dokumentację platformy Node.js. Zobacz Ustawianie zmiennych w potoku, aby uzyskać instrukcje dotyczące ustawiania zmiennej w potoku.

Używam lokalnego serwera TFS i nie widzę niektórych z tych funkcji. Dlaczego nie?

Niektóre z tych funkcji są dostępne tylko w usłudze Azure Pipelines i nie są jeszcze dostępne lokalnie. Niektóre funkcje są dostępne lokalnie, jeśli przeprowadzono uaktualnienie do najnowszej wersji serwera TFS.