ios

storekit 공부하기

코코넛딩 2024. 12. 6. 15:53

Transaction

static var updates: Transaction.Transactions {get}

  • 시스템이 앱 외부 또는 다른 장치에서 발생한 트랜잭션을 생성하거나 업데이트 할때마다 트랜잭션을 방출하는 비동기 시퀸스 입니다.
  • 앱이 실행 중일 때 트랜잭션 업데이트를 통해 새로운 트랜잭션을 받을 수 있다.
  • 이 시퀸스는 앱 외부에서 발생한 트랙잭션을 받습니다.
      • Ask to Buy 트랜잭션 (부모가 자녀의 구매요청을 승인하는 경우)
      • 구독 오퍼 코드가 사용되는 경우
      • 앱 스토어에서 고객이 구매하는 경우의 트랜잭션
  • 다른 장치에서 앱을 통해 완료한 트랜잭션도 방출됨
  • 동일한 장치에서 인앱 구매가 성공적으로 완료되면 StoreKit는 해당 트랜잭션을 Product.PurchaseResult.success(_:) 통해 반환한다.
  • 앱이 실행될 때 즉시 트랜잭션 업데이트를 수신하려면 Task를 생성하여 리스터에서 트랜잭션을 순차적으로 처리해야함
  • 앱에 미완료된 트랜잭션이 있으면, 업데이트 리스너가 앱 실행 직후에 한 번만 그 트랜잭션을 수신한다.
  • 트랜잭션을 수신하기 위한 Task가 없다면 앱은 그 트랜잭션을 놓칠수가 있다.
  •  

func finish() async

  • 앱스토어에서 콘텐츠를 구매한 후 앱에서 update()로 구매 사실을 감지하여 구매한 콘텐츠를 제공하거나 서비스를 활성화 한 후, 트랜잭션을 완료했다고 앱 스토어에 알리는 메서드 입니다.
  • 트랜잭션을 완료하기 위해 호출함
  • 온디맨드 리소스(필요할 때 다운로드하는 리소스)의 경우 

static var currentEntitlements: Transaction.Transactions { get }

 

  • 인앱 구매와 구독을 한 고객에게 자격을 부여하는 최근 트랜잭션의 시퀸스이다.
  • 현재 권한 시퀸스는 고객이 권한을 가지고 있는 각 제품에 대한 최신 거래를 내보낸다.
    • 소모 불가능한 앱 내 구매에 대한 거래
    • 자동 갱신 구독
      • Product.SubscriptionInfo.RenewalState 상태가 subscribed(구독중) 또는 inGrace Period(유예기간 중)인 각 구독에 대해 가장 최근의 트랜잭션이 반환된다.
    • 비 갱신 구독 
      • 종료된 것을 포함하여 각 구독에 대해 가장 최근의 트랜잭션이 반환된다.
  • 다음 제품은 현재 자격에 나타나지 않는다.
    • App Store에서 환불하거나 취소된 제품
    • 소모성 In-App Purchase
  • 미 완료된 소모성 상품의 트랜잭션을 확인하려면, Transactin의 unfinished 또는 all 시퀸스를 사용해야한다.

 

Product

static func products<Identifiers>(for identifiers: Identifiers) async throws -> [Product] where Identifiers : Collection, Identifiers.Element == String

 

  • 앱 스토어에서 프로덕트 데이터를 요청한다.
  • identifiers 
    • App Store Connect에서 이전에 구성한 고유한 인 앱 구매 제품 식별자의 컬렉션입니다.
    • StoreKit은 컬렉션의 중복 식별자를 무시합니다.
  • 반환 값
    • App Store에서 반환된 다양한 제품
    • 식별자가 잘못 되었거나 App Store에서 찾을 수 없는 경우 App Store는 반환 값에서 제외한다.
    • 시스템 관련 오류를 반환 할 수 있다. StoreKit Error

@MainActor func purchase(options: Set<Product.PurchaseOption> = []) async throws -> Product.PurchaseResult

 

  • 이 메서드는 App Store와 통신하여 구매를 시작하고, 시스템 확인창을 표시하는 역할을 한다.
  • 매개변수 : options
    • 구매와 관련된 추가 정보를 제공하는 옵션 세트
  • 반환 값 : Product.PurchaseResult
    • 구매 결과를 나타냄
  • 사용 시점
    • 사용자가 앱 내에서 구매를 시작하거나 App Store에서 프로모션된 인앱 구매를 선택한 경우 호출합니다.
    • 이 메서드는 시스템 확인 창을 띄우며, 사용자는 구매를 확인하거나 취소할 수 있습니다.
  • 예외
    • Product.PurchaseError
    • StoreKitError