다음을 통해 공유


iOS용 코드 기호

이 문서에서는 iOS용 코드 서명 방법을 알아봅니다. 래핑 프로젝트를 만들고 빌드할 때 플랫폼 중 하나로 iOS를 선택했다면 iOS용 앱에 서명해야 합니다.

중요

Xcode를 사용하여 iOS용으로 래핑된 모바일 앱에 디지털 서명하는 것은 지원되지 않습니다. 아래 지침에 따라 래핑된 iOS용 모바일 앱 패키지에 올바르게 서명하세요.

전제 조건

시작하려면 다음 정보를 제공해야 합니다.

  • 앱 ID
  • 디바이스 UDID(테스트 및 개발 목적으로만)

iOS용 코드 서명에도 macOS 디바이스가 필요합니다.

Mac 준비

다음 구성으로 Mac을 설정합니다.

  1. Xcode를 설치합니다. 추가 정보: Xcode
  2. macOS용 PowerShell을 설치합니다. 추가 정보: macOS에 PowerShell 설치
  3. Apple 개발자 프로그램 등록
  4. 조직 내에서 앱을 배포하려면 Apple 엔터프라이즈 개발자 프로그램에 가입해야 합니다.

앱 ID 만들기

  1. https://developer.apple.com으로 이동하고 계정 탭을 선택하여 개발자 계정에 로그인합니다.

    계정 탭.

  2. 인증서, ID 및 프로필 > 식별자로 이동합니다.

  3. + 를 선택하여 새 식별자를 만듭니다.

    새 식별자를 만들기.

  4. 앱 ID를 선택한 다음 계속을 선택합니다.

    새 식별자 등록.

  5. 유형을 으로 선택한 다음 계속을 선택합니다.

  6. 앱 ID 등록:

    앱 ID 등록.

    1. 설명 - 앱 이름.
    2. 번들 ID - 명시적 번들 ID를 선택합니다.
    3. 래핑 프로젝트를 만들 때 사용한 번들 ID를 입력합니다. 추가 정보: 번들 ID
    4. 다음 기능을 활성화합니다.
      • 연결된 도메인
      • iCloud
      • NFC 태그 판독
      • 푸시 알림
    5. 계속을 선택합니다.
  7. 앱 ID를 검토하고 등록합니다.

배포 인증서 만들기

배포 인증서를 만들려면 먼저 새 인증서 서명 요청을 만듭니다.

인증서 서명 요청(CSR) 만들기

  1. Mac에서 애플리케이션 폴더 > 유틸리티로 이동하고 키체인 접근을 엽니다.

  2. 키체인 접근 > 인증서 도우미 > 인증 기관에서 인증서 요청을 선택합니다.

    CA에서 인증서 요청.

  3. 아래 설명과 같이 인증서 정보를 입력하고 계속을 선택합니다.

    1. 사용자 이메일 주소 필드에 이 인증서를 식별하기 위한 Apple ID 이메일 주소를 입력합니다.
    2. 일반 이름 필드에서 이름을 입력합니다.
    3. 요청 그룹에서 디스크에 저장을 선택합니다.
    4. Mac에 파일을 저장합니다.

배포 인증서 만들기

  1. https://developer.apple.com에서 계정 탭을 선택하여 개발자 계정에 로그인합니다.

  2. 인증서, ID 및 프로필 > 식별자로 이동합니다.

    1. + 를 선택하여 새 인증서를 만듭니다.

    2. 앱 스토어 및 애드혹 > 계속을 선택합니다.

      인증서, 식별자 및 프로필

      참고

      엔터프라이즈 개발자 계정이 있으면 엔터프라이즈 배포 인증서를 만드는 옵션이 있습니다.

  3. 이전 단계에서 생성된 인증서 서명 요청(CSR) 파일을 업로드합니다.

    인증서 업로드.

  4. 계속을 선택하고 Mac에 인증서를 다운로드합니다.

  5. 다운로드한 .cer 파일을 두 번 클릭하여 키체인 접근에 설치합니다.

  6. 인증서의 이름(예: iPhone 배포: 이름(팀 ID))을 기록합니다. 이 값은 서명할 때 제공해야 하는 코드 서명 ID입니다.

IPA를 설치해야 하는 모든 디바이스 추가

참고

이 단계는 외부 사용자에게 앱을 배포하는 경우에만 필요합니다. 앱이 내부 사용자 전용인 경우에는 필요하지 않습니다.

  1. https://developer.apple.com에서 계정 탭을 선택하여 개발자 계정에 로그인합니다.

  2. 인증서, ID 및 프로필 > 디바이스로 이동합니다.

  3. + 를 선택하여 하나 이상의 디바이스를 등록합니다.

  4. 디바이스 이름디바이스 ID(UDID) 를 입력합니다.

    디바이스 등록.

  5. 저장을 선택합니다.

    UDID 목록을 업로드하여 여러 디바이스를 함께 등록할 수도 있습니다.

iOS 프로비저닝 프로필 만들기

  1. https://developer.apple.com으로 이동하고 계정 탭을 선택하여 개발자 계정에 로그인합니다.

  2. 인증서, ID 및 프로필 > 프로필로 이동합니다.

  3. + 를 선택하여 새 프로필을 만듭니다.

  4. 애드혹 > 계속을 선택합니다.

    애드혹.

    참고

    프로덕션 테스트와 개발 목적에는 앱 스토어 배포 방법을 사용합니다.

  5. 앞서 만든 앱 ID를 선택한 다음 계속을 선택합니다.

    앱 ID.

  6. 앞서 만든 인증서를 선택한 다음 계속을 선택합니다.

    인증서 선택.

  7. 앱을 설치하려는 모든 테스트 디바이스를 선택한 다음 계속을 선택합니다.

    디바이스 추가.

  8. 프로비저닝 프로필을 검토하고 이름을 지정합니다. 프로비저닝 프로필의 이름을 기록해 둡니다.

  9. 프로필을 생성하고 Mac에 다운로드합니다.

  10. 다운로드한 파일(*.mobileprovision)을 두 번 클릭하여 열고 Xcode에 등록합니다.

iOS 아카이브 서명

  1. App Center에서 iOS-Archive.zip 파일을 다운로드하고 압축을 풉니다. 그러면 번들 ID의 이름을 따서 명명된 폴더가 생성됩니다. 아래 예에서 번들 ID는 com.single.wrap입니다.

  2. 엔터프라이즈 인증서로 서명하는 경우 Xcode를 사용하여 Distribution-exportOptions.plist 파일을 열고 파일 내의 메서드 필드 값을 엔터프라이즈로 변경합니다.

참고

Key Vault 서명에서는 엔터프라이즈 서명이 지원되지 않습니다.

  1. 터미널을 열고 디렉토리를 압축을 푼 폴더로 변경합니다.

  2. pwsh를 입력하여 터미널에서 PowerShell을 시작합니다.

  3. "CodeSigningIdentity" 및 "ProvisioningProfilePath" 매개 변수 값으로 ./SignAndGenerateIPA.ps1을 실행합니다.

    참고

    'CodeSigningIdentity'는 Apple 개발자 웹 사이트에서 생성된 인증서의 이름입니다. 'CodeSigningIdentity' 값을 조회하려면 .mobileprovision 파일(프로비저닝 프로필)을 마우스 오른쪽 버튼으로 클릭한 다음 추가 정보를 선택합니다. 아래로 스크롤하여 프리뷰를 선택합니다. 'CodeSigningIdentity' 값은 .mobileprovision 파일의 인증서 아래에 있는 이름 필드에 저장됩니다.

    'ProvisioningProfilePath'는 이전 단계 iOS 프로비저닝 프로필 생성에서 Apple 개발자 웹 사이트에서 다운로드한 프로비저닝 프로필 파일의 경로입니다. 예를 들어 컴퓨터의 /Users/username/Downloads/MyProvisioningProfile.mobileprovision에 있을 수 있습니다.

    PowerShell 스크립트 실행.

  4. 스크립트가 완료되면 .ipa 파일(예: com.single.wrap.ipa)이 생성됩니다.

    • ./SignAndGenerateIPA.ps1 명령이 실패하면 압축이 풀린 폴더와 파일이 손상될 수 있으므로 삭제하세요. 다시 서명을 시도하기 전에 iOS-Archive.zip의 압축을 다시 풀어보세요.

    IPA 패키지.

  5. Finder 앱을 사용하여 .ipa 파일을 등록된 디바이스에 설치합니다. App Center와 같은 배포 서비스에서 패키지를 호스트할 수도 있습니다. Microsoft Intune을 사용하여 배포하려면 Microsoft Intune에 iOS/iPadOS 기간 업무 앱 추가를 참조하세요. 앱에 Intune 앱 보호 서비스에 대한 액세스 권한을 부여하는 방법에 대해 알아보려면 앱에 Intune 앱 보호 서비스에 대한 액세스 권한 부여를 참조하십시오.

참조 항목