모바일 앱 서명

Azure DevOps Services | Azure DevOps Server 2022 - Azure DevOps Server 2019

Android 또는 Apple 운영 체제용 앱을 개발할 때는 결국 서명 인증서를 관리하고 Apple 앱 의 경우 프로필을 프로비전해야 합니다. 이 문서에서는 앱을 서명하고 프로비전하기 위해 안전하게 관리하는 방법을 설명합니다.

Microsoft 호스팅 Linux, macOS 또는 Windows 빌드 에이전트를 사용하거나 사용자 고유의 에이전트를 설정합니다. 빌드 및 릴리스 에이전트를 참조 하세요.

이 문서에서 다루는 내용:

Android 앱 서명

서명 인증서를 안전하게 유지하면서 Android 앱에 서명하려면 다음 단계를 수행합니다.

  1. 먼저 서명 인증서가 포함된 키 저장소 파일을 가져옵니다. Android 설명서에서는 키 저장소 파일 및 해당 키를 생성하는 프로세스에 대해 설명합니다.

  2. Android 또는 Xamarin.Android 빌드 템플릿에서 빌드 파이프라인을 만듭니다. 또는 빌드 파이프라인이 이미 있는 경우 APK를 빌드하는 작업 후에 Android 서명 작업을 추가합니다.

  3. Android 서명 태스크의 APK 검사 상자에 서명하고 사용하도록 설정합니다.

  4. 키 저장소 파일 필드 옆에 있는 설정 아이콘을 선택하고 키 저장소 파일을 보안 파일 라이브러리에 업로드합니다. 업로드하는 동안 키 저장소는 암호화되고 안전하게 저장됩니다.

  5. 키 저장소가 보안 파일 라이브러리에 업로드되면 키 저장소 파일 드롭다운에서 선택합니다.

  6. 변수 탭으로 이동하여 다음 변수를 추가합니다. 값 열에 Keystore 암호, 키 별칭 및 키 암호를 입력합니다.

    • keystore-password: 암호화되지 않은 키 저장소 파일에 대한 암호입니다. 잠금 아이콘을 선택해야 합니다. 이렇게 하면 암호가 보호되고 로그에 가려지게 됩니다.

    • 키 별칭: 생성한 서명 인증서의 키 별칭입니다.

    • 키 암호: 지정된 별칭과 연결된 키의 암호입니다. 다시 잠금 아이콘을 선택해야 합니다.

      Android 서명 변수

  7. 작업 탭으로 돌아가서 서명 옵션에서 새로 만든 변수의 이름을 참조합니다.

    Android 서명 입력 값

빌드 파이프라인을 저장하면 모두 설정됩니다. 이제 모든 빌드 에이전트는 빌드 머신 자체에서 인증서 관리 없이 앱에 안전하게 서명할 수 있습니다.

Apple iOS, macOS, tvOS 또는 watchOS 앱에 서명

앱을 서명하고 프로비전하기 위한 Xcode 또는 Xamarin.iOS 빌드의 경우 P12 서명 인증서 및 하나 이상의 프로비저닝 프로필에 액세스해야 합니다. 다음 섹션에서는 이러한 파일을 가져오는 방법을 설명합니다.

P12 서명 인증서 가져오기

개발 또는 배포 서명 인증서를 만든 후 macOS에서 .p12 Xcode 또는 Keychain Access 앱을 사용하여 파일로 내보냅니다.

  1. Xcode 8 이하를 사용하여 내보내려면 Xcode>기본 설정으로 이동합니다.>계정을 만들고 Apple 개발자 계정을 선택합니다.

  2. 세부 정보 보기를 선택하고 내보낼 서명 ID를 마우스 오른쪽 단추로 클릭한 다음 내보내기를 선택합니다.

  3. 파일 이름 및 암호를 입력합니다. 나중에 필요하므로 암호를 기록해 둡다.

    Xcode 내보내기 인증서

  4. 또는 macOS에서 키 집합 액세스 앱을 사용하여 유사한 프로세스를 따르거나 Windows에서 서명 인증서를 생성합니다. 이 방법을 선호하는 경우 이 문서에 설명된 절차를 사용합니다.

프로비저닝 프로필 가져오기

앱에서 자동 서명을 사용하지 않는 한 Apple 개발자 포털에서 앱 프로비저닝 프로필을 다운로드할 수 있습니다. Apple 개발자 포털에서 프로비저닝 프로필을 다운로드하는 방법을 알아봅니다.

Xcode를 사용하여 Mac에 설치된 파일에 액세스할 수도 있습니다.

  1. Xcode 8 이하를 사용하여 Xcode>기본 설정으로 이동...>계정을 만들고 Apple 개발자 계정을 선택합니다.

  2. 사용하려는 프로비저닝 프로필을 마우스 오른쪽 단추로 클릭하고 Finder에서 표시를 선택합니다.

  3. 강조 표시된 파일을 Finder에서 다른 위치로 복사하고 설명 파일 이름을 지정합니다.

    Finder에 Xcode 표시

빌드 구성

빌드에서 서명 인증서에 액세스하고 앱을 서명하고 프로비저닝하기 위한 프로비저닝 프로필에 액세스하는 두 가지 권장 방법이 있습니다.

  1. 빌드하는 동안 설치
  2. macOS 빌드 에이전트에 사전 설치

자세한 내용은 아래 탭 중 하나를 선택합니다.

호스트된 macOS 에이전트와 같은 빌드 에이전트에 대한 지속적인 액세스 권한이 없는 경우 이 메서드를 사용합니다. P12 인증서 및 프로비저닝 프로필은 빌드 시작 부분에 설치되고 빌드가 완료되면 제거됩니다.

빌드하는 동안 P12 인증서 설치

시각적 편집기
  1. Xcode 또는 Xamarin.iOS 작업 전에 빌드에 Apple 인증서 설치 작업을 추가합니다.
  2. 인증서(P12) 필드 옆에 있는 설정 아이콘을 선택하고 P12 파일을 보안 파일 라이브러리에 업로드합니다. 업로드하는 동안 인증서는 암호화되고 안전하게 저장됩니다.
  3. 인증서가 보안 파일 라이브러리에 업로드되면 인증서(P12) 드롭다운에서 선택합니다.
  4. 변수 탭으로 이동하여 이름이 인 P12password변수를 추가합니다. 해당 값을 인증서의 암호로 설정합니다. 잠금 아이콘을 선택해야 합니다. 이렇게 하면 암호가 보호되고 로그에 가려지게 됩니다.
  5. 작업 탭으로 돌아갑니다. Apple Certificate 설치 태스크의 설정에서 인증서(P12) 암호 필드에서 새로 만든 변수를 다음과 같이 참조합니다.$(P12password)
샘플 YAML
  1. P12 파일을 보안 파일 라이브러리에 업로드합니다. 업로드하는 동안 인증서는 암호화되고 안전하게 저장됩니다.

  2. 변수 탭으로 이동하여 이름이 인 P12password변수를 추가합니다. 해당 값을 인증서의 암호로 설정합니다. 잠금 아이콘을 선택해야 합니다. 이렇게 하면 암호가 보호되고 로그에 가려지게 됩니다.

  3. Xcode 또는 Xamarin.iOS 작업 전에 YAML에 Apple Certificate 설치 작업을 추가합니다.

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

빌드하는 동안 프로비저닝 프로필 설치

시각적 편집기
  1. Xcode 또는 Xamarin.iOS 작업 전에 빌드에 Apple 프로비저닝 프로필 설치 작업을 추가합니다.
  2. 프로비전 프로필 위치 옵션의 경우 보안 파일(YAML, secureFiles)을 선택합니다.
  3. 프로비전 프로필 필드 옆에 있는 설정 아이콘을 선택하고 프로비전 프로필 파일을 보안 파일 라이브러리에 업로드합니다. 업로드하는 동안 인증서는 암호화되고 안전하게 저장됩니다.
  4. 인증서가 보안 파일 라이브러리에 업로드되면 프로비전 프로필 드롭다운에서 선택합니다.
  5. 빌드 후 프로필 제거 레이블이 지정된 검사box를 사용하도록 설정합니다. 이렇게 하면 프로비전 프로필이 에이전트 컴퓨터에 남아 있지 않습니다.
샘플 YAML
  1. 프로비저닝 프로필을 보안 파일 라이브러리에 업로드합니다. 업로드하는 동안 인증서는 암호화되고 안전하게 저장됩니다.

  2. Xcode 또는 Xamarin.iOS 작업 전에 YAML에 Apple 프로비저닝 프로필 설치 작업을 추가합니다.

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

    [참고] 빌드 기본값이 true후 프로필을 제거합니다.

Xcode 작업의 파일 참조

시각적 편집기
  1. Xcode 작업을 선택합니다.
  2. 서명 스타일 옵션의 경우 수동 서명을 선택합니다.
  3. 서명 ID 필드에 .를 입력$(APPLE_CERTIFICATE_SIGNING_IDENTITY)합니다. 이 변수는 선택한 인증서에 대한 Apple Certificate 설치 태스크에 의해 자동으로 설정됩니다.
  4. 프로비저닝 프로필 UUID 필드에 .를 입력합니다$(APPLE_PROV_PROFILE_UUID). 이 변수는 선택한 프로비저닝 프로필에 대한 Apple 프로비저닝 프로필 설치 태스크에 의해 자동으로 설정됩니다.
샘플 YAML
- task: Xcode@5
  inputs:
    signingOption: 'manual'
    signingIdentity: '$(APPLE_CERTIFICATE_SIGNING_IDENTITY)'
    provisioningProfileUuid: '$(APPLE_PROV_PROFILE_UUID)'

Xamarin.iOS 작업에서 파일 참조

시각적 편집기
  1. Xamarin.iOS 작업을 선택합니다.
  2. using 재정의 옵션의 경우 식별자를 선택합니다.
  3. 서명 ID 필드에 .를 입력$(APPLE_CERTIFICATE_SIGNING_IDENTITY)합니다. 이 변수는 선택한 인증서에 대한 Apple Certificate 설치 태스크에 의해 자동으로 설정됩니다.
  4. 프로비저닝 프로필 UUID 필드에 .를 입력합니다$(APPLE_PROV_PROFILE_UUID). 이 변수는 선택한 프로비저닝 프로필에 대한 Apple 프로비저닝 프로필 설치 태스크에 의해 자동으로 설정됩니다.
샘플 YAML
- task: XamariniOS@2
    inputs:
      solutionFile: '**/*.iOS.csproj'
      signingIdentity: '$(APPLE_CERTIFICATE_SIGNING_IDENTITY)'
      signingProvisioningProfileID: '$(APPLE_PROV_PROFILE_UUID)'

빌드 파이프라인을 저장하면 모두 설정됩니다. 이제 빌드 에이전트가 앱을 안전하게 서명하고 프로비전할 수 있습니다.

FAQ

에이전트가 필요한가요?

빌드 또는 릴리스를 실행하려면 하나 이상의 에이전트가 필요합니다.

문제가 있습니다. 문제를 어떻게 해결할 수 있나요?

빌드 및 릴리스 문제 해결을 참조하세요.

기본 에이전트 풀을 선택할 수 없으며 빌드 또는 릴리스를 큐에 넣을 수 없습니다. 어떻게 고치나요?

에이전트 풀을 참조하세요.

“오류: 로컬 발급자 인증서를 가져올 수 없습니다.” 오류로 인해 NuGet 푸시 작업이 실패합니다. 이 문제를 어떻게 해결할 수 있나요?

이 문제는 신뢰할 수 있는 루트 인증서를 추가하여 해결할 수 있습니다. NODE_EXTRA_CA_CERTS=file 환경 변수를 빌드 에이전트에 추가하거나 NODE.EXTRA.CA.CERTS=file 작업 변수를 파이프라인에 추가할 수 있습니다. 이 변수에 대한 자세한 내용은 Node.js 설명서를 참조하세요. 파이프라인에서의 변수를 설정하는 방법은 파이프라인에서 변수 설정을 참조하세요.

TFS 온-프레미스를 사용하고 있지만 일부 기능이 표시되지 않습니다. 이유는 무엇인가요?

일부 기능은 Azure Pipelines에서만 사용할 수 있으며 온-프레미스에서는 아직 사용할 수 없습니다. 최신 버전의 TFS로 업그레이드한 경우 일부 기능을 온-프레미스에서 사용할 수 있습니다.