An easy-to-use Swift library for In-App Purchases, using Fovea.Billing for receipts validation.
- ✅ 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
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()
})
See also:
Do not hesitate to check the demo project available on here: iap-swift-lib-demo.
Generate the documentation, using Jazzy, just by running jazzy
from the root of the project.
Common issues are covered here: https://github.com/iridescent-dev/iap-swift-lib/wiki/Troubleshooting
InAppPurchaseLib is open-sourced library licensed under the MIT License. See LICENSE for details.