웹 사이트 링크가 포함된 '읽기 도구' 앱 배포하기

읽기 도구 앱이란 잡지, 신문, 도서, 오디오, 음악 또는 비디오와 같은 디지털 콘텐츠 유형 중 하나 이상을 주요 기능으로 제공하는 앱을 의미합니다. 읽기 도구 앱을 통해 사용자는 앱 외부에서 생성한 계정에 로그인하여 이전에 구입한 미디어 콘텐츠 또는 콘텐츠 구독 항목을 Apple 기기에서 확인하고 즐길 수 있습니다. 또한 사용자가 계정을 생성 및 관리할 수 있는 웹 사이트의 링크를 읽기 도구 앱에서 제공할 수 있도록 하려는 경우 External Link Account Entitlement(외부 링크 계정 권한) 요청, 사용 지침 및 구현에 관한 세부 사항에 대해 알아보시기 바랍니다.

External Link Account Entitlement(외부 링크 계정 권한) 요청하기

이 Entitlement(권한)를 사용하고 싶다면 요청 양식을 제출하여 절차를 진행하실 수 있습니다. 신청자는 Apple Developer Program의 계정 소유자여야 하며 앱에 대한 몇 가지 질문에 응답하고 Entitlement(권한)의 이용 약관에 동의해야 합니다. Entitlement(권한) 요청은 번들 ID(앱의 고유 ID)별로 제출해야 하며, 할당된 Entitlement(권한)는 해당 번들 ID에 연결된 단일 바이너리에만 사용할 수 있습니다. 대상 앱의 자격 요건은 다음과 같습니다.

  • 앱의 주요 기능으로 잡지, 신문, 도서, 오디오, 음악 또는 비디오 중 하나 이상의 디지털 콘텐츠 유형을 제공해야 합니다.
  • 사용자가 계정에 로그인할 수 있도록 해야 합니다.
  • 사용자가 로그인하여 앱 외부(예: 웹 사이트)에서 이전에 구입한 콘텐츠 또는 서비스를 사용할 수 있어야 합니다.
  • External Link Account Entitlement(외부 링크 계정 권한)를 사용하는 동안에는 iOS 또는 iPadOS에서 앱 내 구입을 제공해서는 안 됩니다.
  • 실시간 개인 간 서비스를 제공해서는 안 됩니다. (예: 과외 서비스, 의료 상담, 부동산 투어, 또는 피트니스 트레이닝 제공 등)

참고: 앱에서 사용자가 음악 또는 비디오와 같은 디지털 콘텐츠를 사용할 수 있으나 해당 기능이 앱의 주요 기능이 아닌 경우 읽기 도구 앱으로 간주하지 않으며, External Link Account Entitlement(외부 링크 계정 권한)를 사용할 수 있는 대상이 아닙니다. 예를 들어 소셜 네트워킹 앱에서 사용자에게 시청각 콘텐츠를 스트리밍하도록 한다면 이 앱에서는 사용할 수 없습니다.

Xcode에서 Entitlement(권한) 구성 및 활성화하기

Entitlement(권한)가 계정에 할당되었다는 확인 이메일을 받은 다음 해당 Entitlement(권한)를 지원하기 위해 Certificates, Identifiers & Profiles(인증서, 식별자 및 프로파일)에서 앱의 앱 ID를 구성했다면, Entitlement(권한) 및 메타데이터 목록이 표시되도록 Xcode 프로젝트, Entitlement(권한) plist 파일 및 Info.plist 파일을 업데이트해야 합니다.

Xcode에 활성화된 Entitlement(권한)가 표시된 스크린샷Xcode에 활성화된 Entitlement(권한)가 표시된 스크린샷

업데이트를 적용하는 방법은 다음과 같습니다.

  1. Project Navigator(프로젝트 탐색기)에서 .entitlements 파일을 선택합니다. Xcode 13에서 Entitlement(권한) 파일 이름 앞에 노란색 체크 표시 도장 아이콘이 표시됩니다.
  2. Entitlement(권한) plist 파일에서 Entitlements File(권한 파일) 행 위에 포인터를 두고 추가 버튼(+)을 클릭하여 새로운 Entitlement(권한) 키 쌍을 추가합니다.
  3. Entitlement(권한)에 다음의 값을 입력합니다.
    1. Key(키): com.apple.developer.storekit.external-link.account
    2. Type(유형): Boolean(불리언)
    3. Value(값): True(참)
  4. 'Info.plist 파일 업데이트하기'에서 설명한 대로 Info.plist 파일에 필요한 메타데이터를 제공합니다.

기기의 다음번 빌드 또는 Xcode Organizer에서 배포 요청 시, Xcode에서는 해당 .entitlements 파일과 캐시된 Provisioning profile(권한 설정 프로파일)이 일치하지 않음을 감지하면 최신 앱 ID 구성에 기반한 새로운 Provisioning profile(권한 설정 프로파일)을 요청하여 코드 서명 절차를 완료하게 됩니다.

Info.plist 파일 업데이트하기

Entitlement(권한)마다 데이터에 대한 특정 요구 사항이 있으며 해당 데이터는 앱의 Info.plist 파일에 입력해야 합니다.

Info.plist 파일의 데이터를 업데이트하는 방법은 다음과 같습니다.

  1. Project Navigator(프로젝트 탐색기)에서 iOS 타깃의 Info.plist 파일을 선택합니다.
  2. Entitlement(권한)에 대해 다음의 값을 제공합니다.
    1. Key(키): SKExternalLinkAccount
    2. Type(유형): Dictionary with string values(문자열 값을 포함하는 딕셔너리)
      1. Key(키): 지역 코드를 Key(키)로 입력하고 단일 URL을 Value(값)에 입력합니다. 키에 기본 URL로 매핑되는 문자열*을 포함하고 있어야 합니다.
      2. Value(값): 단일 목적지 URL(웹 사이트 링크)

참고: Xcode에서 Info.plist 파일에 입력한 URL은 앱 심사에 제출한 앱 바이너리의 값과 언제나 일치해야 합니다. 각 값은 다음 사항을 준수하는 문자열이어야 합니다.

  • https 체계를 사용.
  • 유효한 절대 URL 형성.
  • 쿼리 매개변수를 포함하지 않음.
  • 1,000자 이하의 ASCII 문자 포함.

앱의 Info.plist 파일을 관리하는 방법 알아보기

앱 및 링크 요구 사항 이해하기

앱에 Entitlement(권한)를 활성화하고 필요한 External Link Account API를 구현하는 것 외에도 개인 정보 보호 및 보안, 사기 행위 방지, 전반적인 앱 경험 품질 유지를 위해 설계된 사용 요구 사항을 준수해야 합니다. 읽기 도구 앱에서 제공하는 링크에 적용되는 요구 사항.

  • 개발자 소유의 웹 사이트 또는 개발자가 책임을 지는 웹 사이트로만 연결되어야 함.
  • 기기의 기본 브라우저에서 새 윈도우를 열어야 하며, 앱 내에서 웹 보기를 열어서는 안 됨.
  • 사용자를 보호하기 위해(예: 개인 정보 보호) URL을 통해 추가적인 매개변수를 전달해서는 안 됨.
  • 링크를 읽기 도구 앱과 함께 App Store에 제출해야 하며, URL을 변경하는 경우 다시 제출해야 함.
  • 웹 사이트에서 제공하는 항목의 가격을 나타내는 표현을 포함하거나 그러한 표현과 함께 사용해서는 안 됨(허용되는 표현의 예: 'example.com에서 계정을 생성하거나 관리하세요').
  • 표준 HTML 링크 형식(예: 파란색의 밑줄이 그어진 텍스트)을 사용해야 하며 웹 사이트 도메인 이름을 포함해야 함.
  • 앱 페이지당 한 번만 표시해야 하며 인스턴스마다 동일한 메시지를 표시해야 함.
  • App Store에 제출하기 전에 앱의 Info.plist에 있는 external-link.account 키 값에 정적으로 정의되어 있어야 함.
  • 리디렉션, 중계 링크 또는 랜딩 페이지 없이 웹 사이트로 직접 이동해야 함.

시스템 요구 사양

External Link Account Entitlement(외부 링크 계정 권한)는 App Store를 사용하는 국가 또는 지역에서 배포한 승인된 읽기 도구 앱에서라면 모두 사용할 수 있으며, iOS 또는 iPadOS를 실행하는 기기와 호환됩니다.

앱 내 모달 시트 구현하기

StoreKit API 사용하기. 계정을 생성하거나 기존의 계정을 관리하기 위해 웹 사이트 링크를 탭할 때마다 앱에서는 링크로 연결하기 전에 앱 내에 전면 모달 시트를 표시해야 합니다. 앱에서 canMakePayments를 호출하고 해당 시트를 표시하기 전에 사용자에게 결제 권한이 있는지 확인해야 합니다.

모달 시트 세부 사항 따르기. iOS 16 및/또는 iPadOS 16 이후 버전에서는 해당 사항을 External Link Account API를 사용하여 구현할 수 있습니다. iOS 및 iPadOS의 이전 버전을 사용하는 기기에서는 아래에 제공된 모달 시트의 디자인 및 텍스트를 그대로 따라 모달 시트를 구현해야 합니다.

여러 로케일 지원하기. 웹 사이트의 특정 로케일 버전 URL을 추가하려면 앱에서 사용하는 Info.plist 파일에 해당 URL을 지역별 키 값 및 연결된 URL 문자열 값이 포함된 딕셔너리로 추가해야 합니다. 또한 모달 시트 구현에 Apple에서 제공한 로케일 텍스트 문자열을 사용하도록 합니다.

설계 사양 다운로드(5MB)

모달 시트

웹 사이트

심사를 위해 App Store Connect에서 앱 제출하기

심사를 위해 App Store Connect에서 앱 바이너리를 제출하려면 Entitlement(권한)의 이용 약관, App Store 심사 지침 및 Apple Developer Program 사용권 계약을 준수해야 합니다.

또한 다음 사항도 확인하도록 합니다.

  • 앱 내 모달 시트를 올바르게 구현하고 테스트했는지 확인.
  • 앱에서 연결하는 웹 사이트가 올바르게 작동하는지 확인.
  • 사용자에게 필수 정보를 공개하는 앱 UI의 스크린샷을 제출물에 포함하였는지 확인.

제출한 앱이 불완전한 경우 심사 시간이 지연되거나 앱이 거부될 수 있습니다. 앱 심사가 완료되면 App Store Connect에 심사 상태가 업데이트되며 알림을 받게 됩니다.

자주 묻는 질문

App Store에 이전에 출시한 읽기 도구 앱이 있습니다. Entitlement(권한)를 반드시 사용해야 하나요?

아니요. External Link Account Entitlement(외부 링크 계정 권한)는 선택 사항이며, 계정 생성 및 관리를 위해 웹 사이트로의 연결을 제공하는 읽기 도구 앱에만 요구되는 사항입니다. 지침 3.1.3(a)에 따라 읽기 도구 앱은 앱 내에서 무료 사용자들에게는 계정 생성 기능을, 기존 사용자에게는 계정 관리 기능을 계속해서 제공할 수 있습니다.

앱의 메타데이터에 계정 생성 및 관리를 위한 웹 사이트 링크를 포함시켜도 되나요?

아니요. 계정 생성 및 관리를 위해 읽기 도구 앱에서 외부 웹 사이트로 링크를 사용하여 연결할 수 있는 유일한 방법은 External Link Account Entitlement(외부 링크 계정 권한)를 사용하는 것입니다. 이 방법을 통해 Apple 생태계를 벗어나는 사용자에게 더욱 안전하고 투명한 경험을 제공하게 됩니다.

App Store에서 다양한 읽기 도구 앱을 배포하고 있습니다. 할당된 동일한 Entitlement(권한)를 두 개 이상의 앱에 사용해도 되나요?

아니요. External Link Account Entitlement(외부 링크 계정 권한)는 번들 ID(앱의 고유 ID)별로 할당되어 있으며, 할당된 Entitlement(권한)는 해당 번들 ID에 연결된 단일 바이너리에만 사용할 수 있습니다. 여러 개의 읽기 도구 앱을 배포하고 있다면 각 읽기 도구 앱별로 Entitlement(권한)를 요청해야 합니다.

링크로 연결하여 웹에서 계정을 생성하고 관리하도록 앱 내 구입을 제공하는 앱에 Entitlement(권한)를 사용해도 되나요?

iOS 또는 iPadOS에서 앱 내 구입을 제공하는 앱은 Entitlement(권한)를 사용할 수 없습니다.

앱이 이미 App Store에 출시되어 있는 경우 해당 앱을 읽기 도구 앱으로 변경해도 되나요?

경우에 따라 다릅니다. 개발자가 새로운 콘텐츠와 기능을 추가하여 앱의 비즈니스 모델이 시간이 지남에 따라 변경될 수 있습니다. 하지만 현재 사용자들의 사용 경험을 해칠 수 있으므로 앱의 주요 기능이 크게 변경된 업데이트를 제출하는 것은 적절하지 않습니다. App Store에 배포하고 싶은 새로운 콘셉트의 앱이 있다면 새로운 앱 기록 및 바이너리를 생성하여 심사를 위해 제출하는 것이 좋습니다.

External Link Account Entitlement(외부 링크 계정 권한)를 할당받았지만, 심사를 위해 앱을 제출하니 적용 대상인 읽기 도구 앱이 아니라고 합니다. 이 문제를 어떻게 해결해야 하나요?

App Store에 제출하는 모든 앱은 앱 심사 팀의 승인을 받아야 합니다. 앱 제출 절차 중에 앱이 읽기 도구 앱의 자격 요건을 충족하지 않는 것으로 판명되었다면, 앱에 External Link Account Entitlement(외부 링크 계정 권한)가 포함되어 있는 한 앱은 승인되지 않습니다. 자세한 내용은 App Store Connect에서 메시지를 참고하시기 바랍니다.

External Link Account API를 앱에 반드시 사용해야 하나요?

External Link Account Entitlement(외부 링크 계정 권한)를 포함하고 있고 iOS 16 및/또는 iPadOS 16 이후 버전에서 실행되는 읽기 도구 앱은 External Link Account API를 반드시 사용해야 합니다. App Store에서 앱을 사용 가능한 경우 앱에 API를 구현하고 2022년 10월 12일까지 업데이트를 제출해야 합니다.

리소스