[SwiftyStoreKit] SwiftyStoreKit覚書(setup編)

ドキュメントを一通り読んで、素のStoreKitをその通り実装してみたい気持ちにも駆られたけど、ネットで評判のよいSwiftyStoreKitを使ってみようかと。

今回は、セットアップ部分を説明します。

最初のオブザーバー追加

基本的には、素のStoreKitと同様だけど、SwiftyStoreKit がすでにいろいろやってくれています。

以下のコードをapplication(:didFinishLaunchingWithOptions:)に追加して、処理されていない購入情報を処理するコードを追加するだけで良いです。

購入情報処理コード

func application(application: UIApplication, didFinishLaunchingWithOptions launchOptions: [NSObject: AnyObject]?) -> Bool {
  // see notes below for the meaning of Atomic / Non-Atomic
  SwiftyStoreKit.completeTransactions(atomically: true) { purchases in
    for purchase in purchases {
      switch purchase.transaction.transactionState {
      case .purchased, .restored:
        if purchase.needsFinishTransaction {
          // Deliver content from server, then:
          SwiftyStoreKit.finishTransaction(purchase.transaction)
        }
        // Unlock content
      case .failed, .purchasing, .deferred:
        break // do nothing
      }
    }
  }
  return true
}




Product情報の取得

retrieveProductsInfoを呼び出して、completionの中で必要な情報を取得します。

Product情報取得コード

SwiftyStoreKit.retrieveProductsInfo(AppDelegate.ProductIDSet, completion: { result in
    if result.retrievedProducts.count > 0 {
        let productList = result.retrievedProducts
        self.productInfoArray = []
        for product in productList {
            self.productInfoArray.append(product)
        }
        self.productTableView.reloadData()
    } else if let invalidProductId = result.invalidProductIDs.first {
        print("Invalid product identifier: \(invalidProductId)")
    } else {
        print("Error: \(result.error)")
    }
})

上記のコードは、self.productInfoArray に Product 情報を追加して、その情報から表示されている self.productTableView.reloadData を更新する処理を記述しています。

説明は以上です。




コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です