## Summary - The Capacitor shell buys through StoreKit (iOS 15) and Play Billing instead of RevenueCat. - After the store sheet succeeds, the app POSTs the signed transaction or Play purchase token to `/monetization/store/confirm/`. - Restore reads current store entitlements and confirms each one. Web checkout stays on Stripe. - The store account token from `GET /monetization/subscription/` is sent as `appAccountToken` / `obfuscatedAccountId`. Depends on the `chat_backend` PR for issue #78 (`feat/78-native-store-purchases`). ## Test plan - [x] `storeBilling`, `revenueCat`, `finance`, and `BillingSection` unit tests - [ ] iOS sandbox purchase and restore against a backend with `APPLE_IAP_BUNDLE_ID` set - [ ] Play license-test purchase and restore against a backend with `GOOGLE_PLAY_SERVICE_ACCOUNT_JSON` set - [ ] Web billing still opens Stripe Checkout Reviewed-on: #122
29 lines
1002 B
Ruby
29 lines
1002 B
Ruby
require_relative '../../node_modules/@capacitor/ios/scripts/pods_helpers'
|
|
|
|
platform :ios, '15.0'
|
|
use_frameworks!
|
|
|
|
# workaround to avoid Xcode caching of Pods that requires
|
|
# Product -> Clean Build Folder after new Cordova plugins installed
|
|
# Requires CocoaPods 1.6 or newer
|
|
install! 'cocoapods', :disable_input_output_paths => true
|
|
|
|
def capacitor_pods
|
|
pod 'Capacitor', :path => '../../node_modules/@capacitor/ios'
|
|
pod 'CapacitorCordova', :path => '../../node_modules/@capacitor/ios'
|
|
pod 'CapacitorApp', :path => '../../node_modules/@capacitor/app'
|
|
pod 'CapacitorKeyboard', :path => '../../node_modules/@capacitor/keyboard'
|
|
pod 'CapacitorPreferences', :path => '../../node_modules/@capacitor/preferences'
|
|
pod 'CapacitorStatusBar', :path => '../../node_modules/@capacitor/status-bar'
|
|
pod 'NativeStoreBilling', :path => '../../plugins/native-store-billing'
|
|
end
|
|
|
|
target 'App' do
|
|
capacitor_pods
|
|
# Add your Pods here
|
|
end
|
|
|
|
post_install do |installer|
|
|
assertDeploymentTarget(installer)
|
|
end
|