2016-09-23 2 views
1

나는 응용 프로그램의 영수증에서 원래 응용 프로그램 버전을 읽고 싶습니다.iOS 앱 수신은 언제 사용할 수 있습니까?

앱 스토어에서 설치되지 않았기 때문에 앱에 영수증이 없습니다. 샌드 박스 영수증을 받으려면 SKReceiptRefreshRequest을 시작해야합니다. 그러나 사용자에게 로그인하라는 메시지가 표시됩니다.

다음과 같은 질문이 있습니다. 프로덕션 환경에서 스토어에서 앱을 다운로드하는 경우 영수증이 포함될 수 있습니까? 왜냐하면 내가 새로 고침 요청을 시작해야 할 경우 사용자에게 자격 증명을 묻는 메시지가 표시되기 때문입니다. 그리고 나는 맥락없이 그것을하고 싶지 않습니다.

사용할 수없는 경우이 사례의 모범 사례는 무엇입니까? SKReceiptRefreshRequest을 '구매 복원'루틴에 통합 하시겠습니까?

PS :이 앱은 iOS 9 이상에서만 사용할 수 있습니다.

답변

3

편집

때 iOS 앱 영수증은 사용할 수 없습니다? 앱 영수증이 누락되는 시나리오는 다음과 같습니다. 사용자가 컴퓨터 (iOS 기기가 아닌 기기)의 iTunes에서 앱을 구입 한 다음 나중에 해당 앱을 기기에 동기화하면 앱 영수증이 발급되지 않습니다.

은 약 48:30


2 편집

응용 프로그램 영수증은 사용자가 새 기기에 복원 할 때입니다 누락됩니다 다른 상황에서 시작 this WWDC 2014 video를 참조하십시오. 앱 영수증은 기기마다 다르므로 새 기기로 다시 가져와야합니다.


원래 대답 내가 프리미엄 (Freemium)을 지불에서 응용 프로그램을 전환하는 과정에서 오전

그래서 나는 또한 원래 응용 프로그램 버전이 필요합니다. 나는 당신의 "거기에있는 것이 보장되는지"에 대한 답을 모른다. 그러나 여기에 내가 어떻게 그것을 처리하기로 결심 했는가?

시작시 이전에 유지 된 원래 응용 프로그램 버전을 찾습니다. 그것이 아직 존재하지 않는다면 (이것은 아마도 첫 번째 출시 일 것입니다) 네트워크를 점검합니다. 괜찮 으면 앱 영수증을 확인합니다. 거기에 있다면 유효성 검사를 위해 앱 스토어로 보내고, 성공하면 응답에서 원래 애플리케이션 버전을 가져 와서 유지합니다. 계속되는 값을 유지하는 후속 실행에서는 영수증 유효성 검사를 다시하지 않습니다. 시작시 앱 영수증이 없으면 영수증 새로 고침을 요청하지 않습니다. 나는 당신과 동의한다,이 시점에서 아무 문맥도 없다.

나는 이것이 네트워크에 도달 할 수있는 모든 경우에 작동하지만 IAP 시점에서 또 다른 검사를 수행한다고 생각합니다. 이렇게 ...

            ┌────────────┐            
               │ Tap Add │            
               └────────────┘            
                 │             
┌───────────────────────────────────────────────────────┤             
│              │             
│              ▼             
│           ┌────────────────────┐    ┌──────────────────────┐ 
│    ┌──Don't Know─────────────────│ Pre-IAP customer? │───Yes─────────▶│ Create new thing │ 
│    │        └────────────────────┘    └──────────────────────┘ 
│    │          │             
│    │          │       ┌──────────────────────┐ 
│    │          └──────No─────────────────▶│   IAP   │ 
│    │                 └──────────────────────┘ 
│    │                       
│    ▼      ┌────────────────────────────────────────┐       
│ ┌──────────────────────┐    │Maybe: Allow one grace thing. Warn that │       
│ │ Network Reachable? │────No──────▶│ the user must connect to the internet │       
│ └──────────────────────┘    │  before adding another thing.  │       
│    │      └────────────────────────────────────────┘       
│    Yes                       
│    │                       
│    ▼      ┌────────────────────────────────────────────────────┐    
│ ┌──────────────────────┐    │ Maybe, depending on your requirements: Alert the │    
│ │ Receipt Present? │────No──────▶│user that the app receipt is not present and the app│    
│ └──────────────────────┘    │  store may ask for their credentials.  │    
│    │      └────────────────────────────────────────────────────┘    
│    Yes             │          
│    │          ┌─────────────┘          
│    ▼          ▼              
│ ┌──────────────────────┐    ┌────────────────────────┐           
│ │  Valid?  │◀────────────│ Refresh the receipt. │           
│ └──────────────────────┘    └────────────────────────┘           
│    │                       
│    └─Yes───┐                     
│      ▼                     
│ ┌───────────────────────────────────────┐                
└──│ Persist original_application_version │                
    └───────────────────────────────────────┘      
+0

철저한 답변 주셔서 감사합니다. 방금 영수증을받지 않고 다시 요청해야 할 경우 방황했습니다. 그런데 현지 영수증 유효성 검사를 수행하거나 버전 번호를 읽는 등의 작업을 수행 할 필요가 없습니다. iTunes에 문의하십시오. –

+0

이 답변은 우수 사례와 관련된 마지막 질문에 대한 답이 많았습니다. 나는 나의 접근 방식이 모범 사례라고 제안하지는 않는다. 그것은 내가 그것을 어떻게 다루는가입니다. 로컬 유효성 검사와 관련하여이 접근 방식을 평가했지만 앱 스토어 유효성 검사를 선택했습니다.로컬 유효성 검사를 위해 필요한 모든 암호화 조각을 가져 오는 것은 적어도 저에게는 결코 쉬운 일이 아니며 IAP를 완료하려면 어쨌든 앱 스토어와 이야기해야합니다. –

관련 문제