Skip to content

Commit c6386ca

Browse files
authored
Update VC SDK docs for iOS VC SDK beta 4 (#935)
1 parent 5047fb1 commit c6386ca

File tree

3 files changed

+35
-13
lines changed

3 files changed

+35
-13
lines changed
Lines changed: 16 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,20 @@
1-
// Get the balance of a specific virtual currency
2-
let balance = customerInfo.virtualCurrencies[<your_virtual_currency_code>]?.balance
1+
// Fetch virtual currencies
2+
// With Async/Await
3+
let virtualCurrencies = try? await Purchases.shared.virtualCurrencies()
4+
5+
// With Completion Handlers
6+
Purchases.shared.virtualCurrencies { virtualCurrencies, error in
7+
8+
}
9+
10+
// Get the details of a specific virtual currency
11+
let virtualCurrency = virtualCurrencies.all[<your_virtual_currency_code>]
12+
let balance = virtualCurrency?.balance
13+
let name = virtualCurrency?.name
14+
let code = virtualCurrency?.code
15+
let description = virtualCurrency?.serverDescription
316

417
// Iterate through all virtual currency balances
5-
for(virtualCurrencyCode, virtualCurrencyInfo) in customerInfo.virtualCurrencies {
18+
for(virtualCurrencyCode, virtualCurrencyInfo) in virtualCurrencies.all {
619
print("\(virtualCurrencyCode): \(virtualCurrencyInfo.balance)")
720
}

docs/offerings/virtual-currency.mdx

Lines changed: 19 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -46,11 +46,7 @@ SDK support for virtual currencies is currently in beta, and as such requires th
4646

4747
### iOS
4848

49-
Use the `virtual-currency-beta` branch of the purchases-ios SDK to access the virtual currency beta features. If you’re using Swift Package Manager, you can do this in Xcode like so:
50-
51-
![](/docs_images/virtual-currency/ios-spm-virtual-currency-beta-branch-configuration.png)
52-
53-
If you're using CocoaPods, set your `purchases-ios` version to the most recent `vc-beta` version in your Podfile:
49+
Set your `purchases-ios` version to the most recent `vc-beta` version where your dependency is declared:
5450

5551
[![Latest Virtual Currency iOS Beta Release](https://img.shields.io/github/release/RevenueCat/purchases-ios.svg?filter=*vc-beta*&style=flat)](https://github.com/RevenueCat/purchases-ios/releases)
5652

@@ -158,12 +154,8 @@ import content5 from "@site/code_blocks/virtual-currency/balance-response.json?r
158154

159155
#### From the SDK
160156

161-
If you're using the virtual currency SDK betas, you can fetch the virtual currency balances from the [CustomerInfo](https://www.revenuecat.com/docs/customers/customer-info) object in the SDK:
162-
157+
##### iOS
163158
import fetchVCBalancesSwift from "@site/code_blocks/virtual-currency/vc-balance-sdk-ios.swift?raw";
164-
import fetchVCBalancesKotlin from "@site/code_blocks/virtual-currency/vc-balance-sdk-android.kt?raw";
165-
import fetchVCBalancesReactNative from "@site/code_blocks/virtual-currency/vc-balance-sdk-react-native.ts.txt?raw";
166-
import fetchVCBalancesFlutter from "@site/code_blocks/virtual-currency/vc-balance-sdk-flutter.dart?raw";
167159

168160
<RCCodeBlock
169161
tabs={[
@@ -172,6 +164,23 @@ import fetchVCBalancesFlutter from "@site/code_blocks/virtual-currency/vc-balanc
172164
content: fetchVCBalancesSwift,
173165
name: "Swift",
174166
},
167+
]}
168+
/>
169+
170+
:::warning VirtualCurrencies does not update automatically when balance changes
171+
When a customer's balance is updated from your backend, the VirtualCurrencies object remains cached and is not automatically updated. In order to get the updated balance, you need to call `Purchases/invalidateVirtualCurrenciesCache()` and fetch the VirtualCurrencies object again.
172+
:::
173+
174+
##### Android, React Native, and Flutter
175+
176+
If you're using the virtual currency SDK betas for Android, React Native, and Flutter, you can fetch the virtual currency balances from the [CustomerInfo](https://www.revenuecat.com/docs/customers/customer-info) object in the SDK:
177+
178+
import fetchVCBalancesKotlin from "@site/code_blocks/virtual-currency/vc-balance-sdk-android.kt?raw";
179+
import fetchVCBalancesReactNative from "@site/code_blocks/virtual-currency/vc-balance-sdk-react-native.ts.txt?raw";
180+
import fetchVCBalancesFlutter from "@site/code_blocks/virtual-currency/vc-balance-sdk-flutter.dart?raw";
181+
182+
<RCCodeBlock
183+
tabs={[
175184
{
176185
type: "kotlin",
177186
content: fetchVCBalancesKotlin,

0 commit comments

Comments
 (0)