본문 링크 (Original Link)

iOS에서 자동으로 갱신되는 구독 테스트하기

2017.09.01

#

by David Barnard, translated by pilgwon

구독은 TestFlight(샌드박스)에서 앱스토어에서와는 다르게 작동합니다. 그래서 테스트를 할 때 이 차이점을 아는 것을 필요로 합니다. 이 글은 이 정신없음을 치우고 글로 만들어두어 참고로 하기 위해 쓰는 글입니다. 잘못된 점이 있거나 Apple의 업데이트 때문에 글을 업데이트 해야 한다면 저(david@contrast.co)에게 이메일을 보내주세요.

일반적인 메모

테스트 목적으로 구독 기간을 크게 줄여나갔습니다. 이를 통해 사용자는 TestFlight 또는 샌드박스 사용자를 통해 여러 번의 갱신 및 만료를 신속하게 테스트할 수 있게 해줍니다.

실제 구독 기간 -> 테스트 기간 입니다. 1주 -> 3분 1달 -> 5분 2달 -> 10분 3달 -> 15분 6달 -> 30분 1년 -> 1시간

구독은 8시간짜리 창에서 계정별로 6번의 자동 갱신되고, 각 구독 기간 종료마다 자동으로 만료됩니다. 이 갱신은 앱이 열려 있든 열려있지 않든 앱 스토어처럼 자동으로 갱신됩니다. 앱 스토어와는 다르게, 여기엔 취소 옵션이 없고, 그래서 직접 취소하는 테스트를 할 수 없습니다. 게다가 TestFlight 유저나 샌드박스 유저들의 테스트 구독을 관리할 수 있는 방법이 존재하지 않습니다.

각 자동 갱신은 앱에 트랜젝션을 보냅니다. 한 개 또는 여러개의 트랜젝션은 시간이 얼마나 지났는지에 따라 다음 앱이 열리는 시점에 과정을 진행합니다. 트랜젝션이 유효한 지 확인하는 것은 또 다른 비밀번호 팝업을 뜨게 합니다. 하지만 앱이 앱스토어에 올라가면 추가적인 비밀번호 팝업이 뜨지 않습니다.

TestFlight 테스팅

우선, TestFlight에서의 구독은 유저에게 3번의 팝업을 띄워서 Apple ID 비밀번호를 입력하게 하고 트랜젝션을 완료하는 데에 Touch ID 사용은 못 하게 합니다. 가끔씩, 같은 기기에서 새로운 구독을 여러번 시작한 후에(첫 6번의 자동 갱신 후에), 오직 2개의 비밀번호 팝업만이 보여집니다. ¯_(ツ)_ /¯ 테스트 하는 동안의 구매 플로우가 앱 스토어의 활성화된 앱의 것과 동일하다면 좋겠지만, 어떠한 이유로도 그렇게 되지 않을 것입니다. 테스트 하는 동안 나오는 여러번의 패스워드 요구는 꽤 당황스럽지만, 안심하세요 앱 스토어에 앱이 활성화된다면 구매 플로우는 우리가 생각한대로 흘러갈 것입니다. (하나만 뜬다면 iOS 11의 구매 페이지에서도 Touch ID가 활성화될 것입니다.)

갱신과 만료 테스트하기:

  1. 1달 구독을 구독하세요.
  2. 앱을 닫고 5분 타이머를 세팅하세요.
  3. 시간이 지나면 앱을 켜세요.
  4. 팝업이 뜨면, 비밀번호를 입력하세요.

이 시점에서 앱은 구독상태에서 계속 작동해야 합니다. 2번에서 4번까지의 과정(아니면 그냥 앱을 닫아두고 기다리세요)을 35분이 지날 때까지 계속 반복하세요. (6번의 갱신이 5분마다 되고, 각각의 구독은 5분 구독을 매번 추가합니다.) 앱은 이제 비구독 상태로 돌아가고 유저가 재구독 가능하게 만듭니다.

만료 후 구매 복구 테스트하기:

  1. 1달 구독을 구독하세요.
  2. 앱을 닫고 35분을 기다리세요.
  3. 앱을 켜세요.
  4. 팝업이 뜨면, 비밀번호를 입력하세요. (앱은 비구독 상태로 돌아갑니다.)
  5. “구매 복구” 버튼을 누르세요.

활성화된 구독이 발견되지 않고 유저에게 그에 대한 메세지를 표시해야 합니다.

활성화된 구독에서 구매 복구 테스트하기:

  1. 1달 구독을 구독하세요.
  2. 5분안에 앱을 지우고 새로 받으세요.
  3. 앱을 켜세요.
  4. “구매 복구” 버튼을 누르세요.

활성화된 구독이 발견돼야 하고 앱이 구독된 상태로 변경 되어야 합니다.

다른 기기에서 구매 복구 테스트하기:

  1. 1달 구독을 구독하세요.
  2. 구독이 만료되기 전에 다른 기기에 앱을 설치하세요.
  3. 앱을 켜세요.
  4. “구매 복구” 버튼을 누르세요.

활성화된 구독이 발견돼야 하고, 앱은 구독된 상태로 변경 되어야 합니다.

TestFlight 주의 사항

구독은 오직 8시간동안 6번만 자동갱신된다는 것을 참고하시고, 6번의 갱신이 이미 발생했다면 위의 절차가 약간 바뀔 것입니다.

만약 구독이 계정과 엮여있고 구독 상태는 서버에 저장돼 있다면, 테스팅 절차는 이 글의 범위를 넘어서서 더 복잡해집니다.

한 가지 기억해 두어야 할 것은 구독은 시작(3개의 패스워드 팝업, 그리고 Touch ID 불가능)하기와 갱신(또 다른 패스워드 팝업, 그리고 Touch ID 불가능)하기가 아주 어렵고, 구독 상태는 비구독 상태일때보다 베타 사용자가 해야 할 테스트가 훨씬 적습니다. 베타 테스터를 사용하여 가입하지 않아도 장시간 동안 가입 상태를 유지할 수 있도록 비밀 번호 잠금 해제 코드를 생성하는 것이 좋습니다.

실제 환경 테스팅

앱 스토어에서 아직 출시되지 않은 앱의 경우, 승인된 앱의 초기 버전은 구독을 테스트하는 훌륭한 방법입니다:

  1. 앱 리뷰에 베타 버전의 앱을 제출합니다. 그리고 릴리즈 방법을 수동으로 지정해서 앱이 앱 스토어에 릴리즈되지 않도록 합니다.
  2. 앱을 위한 프로모션 코드를 발급합니다. 이 방법은 앱 스토어에 아직 올라가지 않았지만 검증된 앱을 받아볼 수 있게 해줍니다.
  3. 프로모션 코드로 앱을 다운받습니다.
  4. 구독합니다.

이 앱은 앱 스토어에 올라갈 앱이기 때문에, 구독은 앱 스토어에 올라간 앱의 플로우와 정확하게 똑같이 작동합니다, 게다가 테스트 유저들에게 과금하는 것과 테스터들이 앱 스토어 앱에서 구독 관리할 수 있는 것도 포함하고 있습니다. 프로모션 코드는 테스터들에게 발급할 수 있으며, 테스트들은 앱을 무료로 테스트할 수 있습니다. 프로모션 코드를 통한 구독 과금은 자동 갱신을 하지 않는다는 것빼고 아주 완벽하게 작동합니다.

샌드박스 테스팅

마지막으로, 샌드박스 테스트 계정은 자동 갱신 구독도 테스트 할 수 있습니다. 하지만 이런 형태의 테스트는 잘 작동하고 있어서 어떻게 작동하는지 고민하지 않을 것입니다.

리젝션

위에서 언급된 모든 테스트 후에도, 제 앱은 앱과 앱스토어에서 구독이 어떤 것인지 정확하지 않아서 심사에서 거절되었습니다. 다른 분들의 시간을 아끼기 위해, 거부 신고에 관련된 섹션을 보여드리겠습니다:

우리는 우리의 앱이 자동갱신 구독에 대한 이용 약관(특히 Shcedule 2, Section 3.8(b))을 제대로 충족하지 못했다는 사실을 알았고, 아래에 포함되어 있습니다:

당신은 당신의 자동갱신 구독과 관련하여 다음과 같은 내용을 사용자에게 분명하고 눈에 띄게 공개해야 합니다:

해결책

Atlantic 앱과 위의 텍스트를 참고로 하면, 다음과 같습니다:

Weather Atlas Pro 구독에 대한 정보:

david