/iap-swift-lib

An easy-to-use Swift library for In-App Purchases, using Fovea.Billing for receipts validation.

Primary LanguageSwiftMIT LicenseMIT

An easy-to-use Swift library for In-App Purchases, using Fovea.Billing for receipts validation.

Features

  • ✅ Purchase a product
  • ✅ Restore purchased products
  • ✅ Verify transactions with the App Store on Fovea.Billing server
  • ✅ Handle and notify payment transaction states
  • ✅ Retreive products information from the App Store
  • ✅ Support all product types (consumable, non-consumable, auto-renewable subscription, non-renewing subscription)
  • ✅ Status of purchases available when offline
  • ✅ Server integration with a Webhook

Basic Usage

This Swift Package is very quick to install and very easy to use. Let's see the basic usage and go to the documentation for more information.

  • Initialize the library
InAppPurchase.initialize(
    iapProducts: [ IAPProduct(productIdentifier: "my_product", productType: .nonConsumable) ],
    validatorUrlString: "https://validator.fovea.cc/v1/validate?appName=demo&apiKey=12345678"
)
  • Stop library when the application will terminate
InAppPurchase.stop()
  • Display product information
guard let product: SKProduct = InAppPurchase.getProductBy(identifier: "my_product") else { return }
productTitleLabel.text = product.localizedTitle
productDescriptionLabel.text = product.localizedDescription
productPriceLabel.text = product.localizedPrice
  • Initialize a purchase
self.loaderView.show()
InAppPurchase.purchase(
    productIdentifier: "my_product",
    callback: { result in
        self.loaderView.hide()
})
  • Unlock purchased content
if InAppPurchase.hasActivePurchase(for: "my_product") {
    // display content related to the product
}
  • Restore purchases
self.loaderView.show()
InAppPurchase.restorePurchases(
    callback: { result in
        self.loaderView.hide()
})

Documentation

See also:

Xcode Demo Project

Do not hesitate to check the demo project available on here: iap-swift-lib-demo.

Coding

Generate the documentation, using Jazzy, just by running jazzy from the root of the project.

Troubleshooting

Common issues are covered here: https://github.com/iridescent-dev/iap-swift-lib/wiki/Troubleshooting

License

InAppPurchaseLib is open-sourced library licensed under the MIT License. See LICENSE for details.