Releases: FlineDev/FreemiumKit
1.16.1
1.16.0
✨ Adds support for watchOS. Now you can check your paid status on your Apple Watch app extension using FreemiumKit! ✨
Check out our new FAQ to learn more: https://freemiumkit.app/documentation/freemiumkit/faq-applewatch/
Thank you @emilismayilov095 and @ChristianSko for your feedback which made this happen! 🙏 🚀
1.15.1
1.15.0
The "Redeem" button is now also supported on macOS 15+ and visionOS!
Apple has finally added support for macOS 15. iOS was always supported.
Perfect for seasonal offer codes like XMAS24
to unlock premium features with a festive discount.
Boost user engagement across all platforms with FreemiumKit this holiday season! 🎄
1.14.0
1.13.1
1.13.0
- Deprecates
FreemiumKit.preview
in favor ofFreemiumKit.shared
for SwiftUI Previews - Adds support for seeing your actual paywall in SwiftUI Previews, but 3 steps are needed:
- Press the 'Save Changes to Remote' button in the latest version of FreemiumKit (requires
1.2.2
or later) - Drag & drop your config file from the 'Setup' tab to your
Preview Assets.xcassets
(besidesAssets.xcassets
) - Rename dragged asset from 'FreemiumKit' to 'FreemiumKitPreview' to avoid duplicate asset warnings (1.13.1+)
- Press the 'Save Changes to Remote' button in the latest version of FreemiumKit (requires
1.12.1
1.12.0
-
Added
freeIf
parameter toPaidFeatureButton
&PaidFeatureView
for freemium features with usage limitsExample usage with
PaidFeatureButton
:// Let users export 3 PDFs for free, then require subscription // - Shows normal button while free exports remain // - Shows locked button & paywall after limit reached PaidFeatureButton( "Export PDF", systemImage: "doc.pdf", freeIf: { remainingFreeExports > 0 } ) { exportPDF() remainingFreeExports -= 1 }
Example usage with
PaidFeatureView
:PaidFeatureView(freeIf: { usedPremiumContents.count < freeUsageLimit }) { Text("Premium Content") // Shown when subscribed or free condition is met } lockedView: { Label("Get Premium Content", systemImage: "lock") // Shown when locked }
1.11.0
- Adds support for dynamically controlling which tiers should be shown in the paywall by providing a
showTierInPaywall
closure. Learn More