News

External Link Account Entitlement 접근 권한 요청 가능

Phililip
728x90

안녕하세요.

 

 

2022년 03월 30일부터 Reader 앱 개발자는 External Link Account Entitlement 접근 권한 요청이 가능하다고 합니다.

 

여기서 Reader 앱이란 잡지, 신문, 책, 오디오, 음악, 비디오 같은 디지털 콘텐츠를 메인 기능으로 제공하는 앱을 말해요.

 

 

External Link Account Entitlement 권한을 사용하면, 사용자는 개발자가 소유하거나 관리하고 있는 웹 사이트에서 계정을 만들거나 관리할 수 있게 됩니다.

 

출처 : https://developer.apple.com/kr/app-store/review/guidelines/#reader-apps

 

 

 

## 권한 요청 자격

BundleID 마다 Entitlement를 요청해야 합니다.

 

그리고 앱이 아래 자격을 만족해야지만 요청할 수 있다고 해요.

 

  • 잡지, 신문, 책, 오디오, 음악, 비디오 같은 디지털 콘텐츠가 앱의 메인 기능일 때
  • 사용자가 계정으로 로그인이 가능할 때
  • 사용자가 앱 외부에서 이전에 구매한 콘텐츠나 서비스에 액세스 가능한 경우
  • External Link Account Entitlement를 사용하는 동안 iOS 또는 iPadOS에서 인앱 결제를 제공하지 않는 경우
  • 실시간, 개인 간 서비스를 촉진하지 않는 경우

 

 

 

## Entitlement 설정

승인 이메일을 받은 후, Xcode 프로젝트에서 entitlements plist 파일을 업데이트해줘야 합니다.

 

 

- Key : com.apple.developer.external-link.account

- Type : Boolean

- Value : True

 

 

 

## Info.plist 설정

- Key : SKExternalLinkAccount

- Type : Dictionary with string values

  - key : 지역 코드 (region code)

  - value : 목적지 URL (웹사이트)

 

예를 들어서 아래처럼 기본 URL과 JP 지역일 때의 URL을 지정해줄 수 있어요.

<plist>
<dict>
    <key>SKExternalLinkAccount</key>
    <dict>
        <key>*</key>
        <string>https://example.com</string>
        <key>jp</key>
        <string>https://example.com/jp</string>
    </dict>
</dict>
</plist>

 

그리고 목적지 URL은 제약 조건이 있어요.

  • https scheme 사용
  • 유효한 URL
  • query parameter가 없어야 함
  • 1000개 이하의 ASCII 문자열

 

 

 

## 외부 링크를 제공하는 Reader 앱 요구사항

  • 개인 소유 또는 관리를 하고 있는 웹사이트 링크이어야 합니다.
  • 디바이스의 기본 브라우저에서 새 창을 열면 webview가 열리지 않을 수 있습니다. (무슨 말이지...???)
  • URL에 파라미터를 전달하지 않습니다. (사용자 개인정보 보호를 위해)
  • URL이 변경되면 App Store에 다시 제출해야 합니다.
  • 표준 HTML 링크와 같은 형식이어야 하며, 웹사이트의 도메인 이름을 포함해야 합니다.
  • 앱 페이지 당 1번만 표시되어야 하며, 각 인스턴스는 동일 메시지를 표시해야 합니다.
  • App Store에 제출 전에 앱의 info.plist에 external-link.account가 정의되어야 합니다.
  • redirection이나 중간 방문 페이지 없이 웹사이트로 직접 이동해야 합니다.

 

 

 

## 인앱 modal sheet 구현

사용자가 계정 생성/관리를 위해 웹사이트 링크를 클릭했을 경우, 웹사이트로 이동하기 전에 앱은 반드시 modal sheet을 화면에 보여줘야 합니다.

 

그리고 modal sheet을 보여주기 전에, StoreKit의 canMakePayments API를 호출해서 사용자에게 결제 권한이 있는지 확인해야 합니다.

 

 

현재 Apple은 인앱 modal sheet을 제공하는 새로운 External Link Account API를 개발 중인데, 그게 제공되기 전까지는 Apple에서 제공하는 디자인을 정확하게 따라가야 합니다. (조금이라도 다르면 리젝 먹을 수도....?)

 

그리고 modal sheet을 구현할 때, Apple이 제공하는 locale text string을 사용해주세요.

 

출처 : https://developer.apple.com/support/downloads/Reader_App_Modal_Specifications.zip

 

 

 

 

 

 

 

직접 해보면서 설명하는 것이 아니라 틀린 설명이 있을 수 있어요ㅠㅠ  자세한 건 아래 가이드를 참고해주세요!!

- https://developer.apple.com/kr/support/reader-apps/

 

Distributing reader apps with a link to your website - 지원 - Apple Developer

포럼 Apple 엔지니어 및 다른 개발자에게 개발 주제에 관해 질문하고 이야기를 나눌 수 있습니다. 포럼 보기(영문)

developer.apple.com

 

 

 

## 참고

- https://developer.apple.com/news/?id=grjqafts 

- https://developer.apple.com/kr/app-store/review/guidelines/#reader-apps

- https://developer.apple.com/kr/support/reader-apps/

 

 


 

이번 글은 여기서 마무리.

 

 

 

반응형