미국에서 외부 구입 링크를 제공하는 앱 배포하기

미국 App Store에 배포된 앱은 Apple의 편리하고 안전한 앱 내 구입 기능을 제공할 뿐만 아니라, StoreKit External Purchase Link Entitlement(구입 링크 권한, US)를 사용하여 앱 내 구매 기능을 제공할 수도 있습니다. 이 Entitlement(권한)는 앱에서 디지털 상품 또는 서비스를 구입하는 다른 방법을 알려주기 위하여 개발자의 웹사이트로 연결되는 링크를 포함하도록 허용하는 권한입니다. 이 Entitlement(권한)를 사용하려면 신청을 제출하고, Xcode에서 해당 Entitlement(권한)를 활성화하고, 필수 StoreKit API를 사용해야 합니다. Apple에서는 개발자의 앱을 검토하여 Entitlement(권한) 약관은 물론 앱 심사 지침 및 Apple Developer Program 사용권 계약을 준수하고 있는지 확인합니다.

Entitlement(권한) 신청하기

앱에 StoreKit External Purchase Link Entitlement(구입 링크 권한, US)를 사용하고자 하는 경우 Entitlement 신청 양식을 먼저 제출해 주시기 바랍니다. 신청인은 Apple Developer Program의 계정 소유자로서 앱의 번들 ID, 웹사이트 도메인, 결제 서비스 제공업체 등과 같은 세부 정보를 제공해야 하며 해당 Entitlement(권한)의 이용 약관에 동의해야 합니다.

Entitlement(권한)을 이용하려면 앱이 다음 자격을 충족해야 합니다.

  • 미국 스토어프론트의 iOS 또는 iPadOS App Store에서 다운로드할 수 있음
  • 미국 스토어프론트의 iOS 또는 iPadOS App Store를 통해 배포되는 경우 앱 내 구입 항목을 제공함
  • Video Partner Program 또는 News Partner Program에 참여하고 있지 않음

앱 정보 입력하기

앱 이름 및 설명. 앱 이름을 입력한 다음 앱의 주요 목적과 작동 방식을 기술합니다.

번들 ID. 사용하려는 번들 ID(앱의 고유 식별자)를 입력합니다. Entitlement(권한) 신청은 번들 ID별로 제출해야 하며, 할당된 Entitlement(권한)는 해당 번들 ID에 연결된 단일 바이너리에만 사용할 수 있습니다.

웹사이트 정보 입력하기

대상 URL. 사용자가 구매를 실행할 정확한 웹사이트 URL을 입력합니다.

고객 지원 웹사이트. 사용자가 개발자의 외부 결제 시스템을 사용하여 구입했을 때 시기적절한 지원을 받을 수 있는 고객 지원 웹사이트 URL을 입력합니다.

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

Entitlement(권한) 계정에 할당되었다는 확인 이메일을 받고 인증서, 식별자 및 프로파일에서 앱 ID를 구성했다면 Entitlement(권한)와 메타데이터 목록이 표시되도록 Xcode 프로젝트, Entitlement(권한) plist 파일, Info.plist 파일에 해당 업데이트해야 합니다.

Entitlement Profile(권한 프로파일)은 iOS 또는 iPadOS 15.4 이후 버전에서 실행되는 미국 App Store를 통해 배포된 앱과 호환되며 이러한 앱을 통해서만 사용될 수 있습니다.

Xcode에 활성화된 Entitlement(권한)가 표시된 스크린샷Xcode에 활성화된 Entitlement(권한)가 표시된 스크린샷
  1. Project Navigator(프로젝트 탐색기)에서 .entitlements 파일을 선택합니다. Xcode 14 이후 버전에서는 파일 이름 앞에 노란색 체크 표시 도장 아이콘이 표시됩니다.
  2. Entitlement(권한) plist 파일에서 Entitlements File(권한 파일) 행 위에 포인터를 두고 추가 버튼(+)을 클릭하여 새로운 Entitlement(권한) 키 쌍을 추가합니다.
  3. Entitlement(권한)에 대해 다음의 값을 입력합니다.
    1. Key(키): com.apple.developer.storekit.external-purchase-link
    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 파일 관리에 관한 자세한 내용은 문서에서 확인하시기 바랍니다.

StoreKit External Purchase 링크

  1. Project Navigator(프로젝트 탐색기)에서 iOS 타깃의 Info.plist 파일을 선택합니다.
  2. Entitlement(권한)에 다음의 값을 입력합니다.
    1. Key(키): SKExternalPurchaseLink
    2. Type(유형): Dictionary with string values(문자열 값을 포함하는 딕셔너리)
      1. Key(키): 단일 ISO 3166-1 alpha-2 미국 국가 코드 값(us)
      2. Value(값): 단일 대상 URL

Xcode의 Info.plist 파일에 입력하는 대상 URL(예: 웹사이트로 연결되는 링크)은 항상 앱 심사에 제출한 앱 바이너리에 있는 값과 일치해야 합니다. 각 값은 다음 사항을 준수하는 문자열이어야 합니다.

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

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

개발자는 StoreKit External Purchase Link Entitlement(구입 링크 권한, US) 및 필수 StoreKit API를 사용하는 것 외에도 사용자의 개인정보를 안전하게 보호하고 보안을 유지하며 사기 및 범죄를 방지하고 전반적인 사용자 경험 품질을 유지하기 위해 고안된 사용 요구 사항을 준수해야 합니다.

앱에서 앱 내 구입을 제공할 때는 Apple Developer Program 사용권 계약 및 앱 심사 지침을 준수해야 하며, 사용자의 앱 내 구입을 방해해서는 안 됩니다.

구입을 위해 개발자의 StoreKit External Purchase Link App(구입 링크 앱, US)에서 외부 웹사이트로 발생하는 각 연결 인스턴스 전에 다음 조건을 만족해야 합니다.

  • canMakePayments API를 호출하고 사용자가 결제를 승인할 수 있음을 확인합니다.
  • StoreKit External Purchase Link API를 호출하고 미국 App Store 사용자임을 확인합니다. 그리고 관련된 시스템 공개를 표시합니다.

앱에 제공하는 링크는 다음 조건을 만족해야 합니다.

  • 리디렉션, 중계 링크 또는 랜딩 페이지 없이 웹사이트로 직접 안내해야 함
  • 기기의 기본 브라우저에서 새 윈도우를 열어야 하며, 앱 내에서 웹 뷰를 열어서는 안 됨
  • 사용자를 보호하기 위해(예: 개인정보 보호) URL을 통해 추가적인 매개변수를 전달해서는 안 됨
  • 앱을 App Store에 제출하기 전에 Info.plist 파일의 <<SKExternalPurchaseLink>>에 정적으로 정의되어 있어야 함
  • 링크를 앱과 함께 App Store에 제출해야 하며, URL을 변경하는 경우 다시 제출해야 함
  • 디자인 및 언어 요구 사항(아래 참조)을 준수해야 함
  • Apple의 앱 내 구입 시스템을 모방하거나 사용자의 앱 내 구입 사용을 방해하지 말아야 함
  • 사용자가 탐색하는 1개의 앱 페이지(인터스티셜, 모달, 팝업 아님)의 단일 전용 위치에서 앱 내 1회만 표시되어야 하며, 해당 페이지 바깥에서 표시될 수 없음
  • 앱 내 구입을 사용하여 상품을 판매하거나 구입 절차를 시작하는 앱 내 흐름에 속하는 모든 페이지에 표시될 수 없음

App Store의 제품 페이지에는 개발자의 웹사이트에서 이루어지는 구입에 관한 정보나 결제를 위해 해당 웹사이트로 연결되는 링크를 포함할 수 없습니다.

사용자를 외부로 연결하는 웹사이트에서 판매되는 디지털 상품 및 서비스 중 앱에서 사용하도록 마케팅되는 것은 해당 앱에서 사용할 수 있어야 합니다.

오해의 소지가 있는 마케팅 활동(예: 유인 판매, 사기, 범죄 등)에 연관된 앱은 App Store에서 삭제되며 개발자는 Apple Developer Program에서 제명될 수 있습니다.

디자인 및 언어 지침

로그인 화면

계정 화면

앱 페이지

템플릿

사용 사례에 가장 적합한 템플릿을 사용합니다. 가격, 할인율, 웹사이트 URL 외에도 앱에 사용되는 언어는 템플릿 언어와 일치해야 합니다. 고객의 오해를 유발하는 방식으로 템플릿을 수정하거나 사용하면 안 됩니다.

구입 템플릿:

구입할 수 있는 웹사이트: www.example.com 외부 링크 아이콘외부 링크 아이콘

혜택 템플릿:

혜택을 이용할 수 있는 웹사이트: www.example.com 외부 링크 아이콘외부 링크 아이콘

혜택을 이용할 수 있는 웹사이트: www.example.com 외부 링크 아이콘외부 링크 아이콘

할인 템플릿:

할인된 가격으로 구입할 수 있는 웹사이트: www.example.com 외부 링크 아이콘외부 링크 아이콘

할인된 가격으로 구입할 수 있는 웹사이트: www.example.com 외부 링크 아이콘외부 링크 아이콘

할인율 템플릿:

XX% 할인을 받을 수 있는 웹사이트: www.example.com 외부 링크 아이콘외부 링크 아이콘

특정 가격 템플릿:

$X.XX로 구입할 수 있는 웹사이트: www.example.com 외부 링크 아이콘외부 링크 아이콘

스타일과 아이콘

링크는 반드시 휴먼 인터페이스 가이드라인에 명시된 일반 버튼 스타일을 적용해야 합니다. 대비되는 배경색으로 채운 테두리를 사용할 수 없습니다. 텍스트 주변의 배경은 앱 페이지의 배경과 일치해야 합니다. Apple에서 제공하는 외부 링크 아이콘은 웹사이트 URL의 오른쪽에 바로 표시해야 합니다. 아이콘 크기는 텍스트 크기와 시각적으로 일치해야 합니다.

www.example.com 외부 링크 아이콘외부 링크 아이콘

앱 내 시스템 공개 시트

앱이 StoreKit External Purchase Link API를 호출할 때마다 시스템이 제공하는 시스템 공개 시트(iOS 15.4 및/또는 iPadOS 15.4 이후 버전)를 표시합니다. 이 시트는 사용자에게 Apple이 아닌 다른 소스를 통한 구입을 위해 앱을 나가 외부 웹사이트로 이동하게 된다는 점을 설명합니다. 사용자가 ‘계속’ 버튼을 탭하면 웹 브라우저에서 개발자의 웹사이트로 이동됩니다.

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

심사를 위해 App Store Connect에서 새로운 앱 바이너리를 제출하려면 다음의 제출 요구 사항과 더불어 Entitlement(권한) 이용 약관, 앱 심사 지침, Apple Developer Program 사용권 계약을 준수해야 합니다.

  • 앱 및 외부 결제 흐름을 위한 앱 내 공개 시트를 올바르게 구현하고 테스트해야 합니다.
  • 링크가 미국 App Store 사용자에게만 표시되어야 합니다.
  • 구입 및 지원을 위해 앱이 링크로 연결하는 웹사이트가 정상적으로 작동해야 합니다.
  • 제출 시 링크의 위치가 포함된 앱 UI 스크린샷을 함께 제출해야 합니다.
  • 심사 메모에 결제 서비스 제공업체(PSP)의 이름을 입력해야 합니다. PSP가 앱에서 거래를 완료할 준비가 되어 있는지 반드시 확인하세요. PSP는 다음을 조건을 충족해야 합니다.
    • 신용카드 및 직불카드 데이터 처리에 관한 레벨 1 PCI(Payment Card Industry) 규정을 준수함
    • 승인되지 않은 거래, 구독 관리(해당하는 경우), 환불 요청 등을 처리하는 절차를 포함하여 사용자를 위한 고객 서비스 절차를 제공함
    • 사용자에게 판매되는 모든 디지털 상품 및 서비스의 가격을 미국 달러로 표시함

StoreKit External Purchase Link Entitlement(구입 링크 권한, US) 프로파일의 베타 테스트에 TestFlight를 사용할 수 있습니다. 단, 이러한 테스트에서 발생한 모든 거래는 테스터에게 무료로 제공되어야 합니다.

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

수수료, 거래 보고 및 결제

App Store 개발자는 앱에 CTA와 함께 버튼 또는 링크를 배치하는 경우를 포함하여 지적 재산으로 보호되는 Apple의 독점 기술과 도구의 혜택을 누리며, 그 사용자 기반에 접근할 수 있습니다. 여기에는 개발자 도구, SDK 및 API에 대한 Apple의 투자와 플랫폼 자체 업데이트가 포함됩니다. Apple은 안전하고 신뢰할 수 있는 경험을 제공하며, Apple 플랫폼에서는 사용자와 개발자가 자유롭게 거래할 수 있습니다.

Apple은 다음 설명과 같이 사용자가 외부 링크로 연결된 후 7일 이내에 시작된 디지털 구매에 대해 수수료를 부과합니다. 이는 Apple이 App Store를 통해 지원한 모든 거래를 아우르지는 않지만, 링크로 연결된 거래의 지원을 포함하여 Apple이 개발자에게 제공하는 상당한 가치에 합당한 수단입니다.

Apple의 수수료는 개발자가 웹사이트에서 사용자에게 디지털 상품 및 서비스를 판매(‘거래’)하여 취득한 수익금의 27%입니다. 이 경우 해당 판매가 사용자가 외부 링크로 이동한 후(예: 사용자가 시스템 공개 시트에서 ‘계속’을 탭함) 7일 이내에 발생하였으며 해당 디지털 상품 또는 서비스를 앱에서 사용할 수 있어야 합니다. 여기에는 (a)모든 관련 세금, (b)모든 환불, 취소 및 결제 거부에 대한 조정이 포함됩니다. 자동 갱신 구독의 경우 (i) 무료 평가판 또는 혜택을 포함하여 사용자가 외부 링크로 이동한 후 7일 이내에 시작된 판매는 거래입니다. (ii) 구독이 시작된 후 이루어지는 각 후속 자동 갱신 역시 거래입니다.

개발자가 Small Business Program에 참여하고 있거나 2년 이상 된 자동 갱신 구독의 거래의 경우 수수료는 12%입니다.

이러한 수수료율은 각 사용자가 결제한 총 금액에서 개발자가 부과한 거래세를 차감한 금액에 적용됩니다. 개발자는 타사 결제 제공업체가 처리한 판매에 대해 적용되는 모든 세금을 징수하고 송금할 책임이 있습니다.

이 Entitlement(권한)를 채택하는 경우 매월 말일 이후 15일 이내에 거래 보고서를 제공해야 합니다. 거래가 없더라도 이러한 사실을 명시한 보고서를 제출해야 합니다. 제출 빈도가 변경되면 본 페이지가 업데이트됩니다. 보고서에 포함해야 할 자세한 내용은 보고서 예시에서 참고하시기 바랍니다. 향후 Apple이 보고를 용이하게 하는 API를 개발하는 경우 제시된 기한 및 요구 사항을 준수하여 앱 업데이트와 함께 해당 API를 30일 이내에 채택해야 합니다.

Apple 수수료 지급 기한이 되면 보고서 내용을 바탕으로 청구서를 받게 되며, 청구서 발급 30일 이내에 청구 금액을 Apple에 송금해야 합니다. 연체 금액에는 월 1% 또는 법정최고이율 중 더 낮은 이율의 이자가 부과됩니다.

Entitlement(권한)의 약관에 따라 Apple에는 감사권이 있습니다. 이를 바탕으로 Apple은 디지털 거래 기록의 정확성을 검토하여 개발자가 적절한 수수료를 지급했는지 확인할 수 있습니다. 연체 시 이자가 발생합니다. Apple에 수수료를 지급하지 않으면 개발자가 받을 앱 내 구입 수익금에서 벌충할 수 있습니다. 또는 App Store에서 앱이 삭제되거나 Apple Developer Program에서 퇴출되는 등 기타 결과가 발생할 수 있습니다.

고객 지원

이 Entitlement(권한)를 사용하는 경우 App Store 외부에서 발생한 결제 관련 질문 또는 문제에 대해 사용자에게 적시에 지원을 제공하는 것은 개발자의 책임입니다. 아울러 Apple은 환불, 구입 내역, 구독 관리 그리고 디지털 상품 및 서비스 구입 시 발생한 기타 문제와 관련하여 고객을 지원할 수 없습니다. 따라서 이러한 문제와 관련하여 고객을 지원할 책임은 개발자에게 있습니다.