[ios] StoreKit을 사용한 앱 내 구매

앱 내 구매(In-App Purchase)는 사용자에 의해 앱 내부에서 구매되는 추가 콘텐츠 또는 기능을 의미합니다. 이것은 앱의 기능과 가치를 확장하고 매출을 증가시키는 중요한 수익원이 될 수 있습니다. StoreKit은 앱 내 구매를 관리하고 처리하는 iOS의 프레임워크입니다.

이제 StoreKit을 사용하여 앱 내 구매를 구현하는 방법을 알아보겠습니다.

1. 세팅하기

먼저 앱 내 구매를 설정해야 합니다. App Store Connect에서 앱 내 구매 항목을 생성한 후, Xcode에서 앱에 연결시킬 수 있습니다.

2. 상품 표시하기

이제 앱 내에서 구매 가능한 상품을 표시해야 합니다. 이를 위해 SKProduct 클래스를 사용하여 상품 정보를 가져올 수 있습니다.

let productIdentifiers: Set<String> = ["com.example.product1", "com.example.product2"]
let request = SKProductsRequest(productIdentifiers: productIdentifiers)
request.delegate = self
request.start()

3. 구매 처리하기

사용자가 상품을 선택하고 결제 과정을 완료하면, 구매를 처리해야 합니다. 이를 위해 SKPaymentQueue을 사용하여 구매 요청을 큐에 추가하고 프로세스를 모니터링할 수 있습니다.

let payment = SKPayment(product: product)
SKPaymentQueue.default().add(payment)

4. 구매 결과 처리

구매 요청이 완료되면, StoreKit은 관련 메서드를 호출하여 구매 정보를 처리합니다. 이를 위해 SKPaymentTransactionObserver 프로토콜을 구현하여 구매 결과를 처리할 수 있습니다.

func paymentQueue(_ queue: SKPaymentQueue, updatedTransactions transactions: [SKPaymentTransaction]) {
    for transaction in transactions {
        switch transaction.transactionState {
        case .purchased:
            // 구매 성공 처리
        case .failed:
            // 구매 실패 처리
        case .restored:
            // 복원된 구매 처리
        case .deferred:
            // 결제가 보류됨
        case .purchasing:
            // 구매 처리 중
        @unknown default:
            break
        }
    }
}

요약

StoreKit을 사용하면 앱 내 구매를 쉽게 구현할 수 있습니다. 이를 통해 앱의 수익을 증가시키고 사용자 경험을 향상시킬 수 있습니다.

참고 자료: Apple Developer Documentation - In-App Purchase