-
Notifications
You must be signed in to change notification settings - Fork 326
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
Showing
10 changed files
with
98 additions
and
149 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1 +1 @@ | ||
5.6.0-SNAPSHOT | ||
5.6.0 |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,134 +1,27 @@ | ||
## 🫂 Customer Center Beta 🫂 | ||
|
||
This release adds public beta support for the new Customer Center on iOS 15.0+. | ||
|
||
This central hub is a self-service section that can be added to your app to help your users manage their subscriptions on their own, reducing the support burden on developers | ||
like you so you can spend more time building apps and less time dealing with support issues. We are hoping adding this new section to your app can help you reduce customer support | ||
interactions, obtain feedback from your users and ultimately reduce churn by retaining them as subscribers, helping you make more money. | ||
|
||
See our [Customer Center documentation](https://www.revenuecat.com/docs/tools/customer-center) for more information. | ||
|
||
### Features currently available | ||
* Users can cancel current subscriptions | ||
* Users can ask for refunds | ||
* Users can change their subscription plans | ||
* Users can restore previous purchases and contact your support email if they have trouble restoring | ||
* Users will be asked to update their app if they are on an older version before being able to contact your support email | ||
* Developers can ask for reasons for cancellations or refunds, and automatically offer promo offers to retain users | ||
* Configuration is done in the RevenueCat dashboard, and advanced configuration is available via JSON | ||
|
||
### Limitations | ||
* Only available on iOS 15+ | ||
* Limited visual configuration options in the dashboard. It is possible to configure the Customer Center via JSON. | ||
* We are exposing a SwiftUI view and a modifier at the moment. We haven't built a UIKit wrapper to help integrating on UIKit apps, but it's in the roadmap. | ||
|
||
### How to enable | ||
You can use the CustomerCenterView view directly: | ||
|
||
```swift | ||
var body: some View { | ||
Group { | ||
NavigationStack { | ||
HomeView() | ||
.navigationTitle("Home") | ||
.navigationBarTitleDisplayMode(.inline) | ||
.toolbar { | ||
ToolbarItem(placement: .topBarLeading) { | ||
Button { | ||
} label: { | ||
Image(systemName: "line.3.horizontal") | ||
} | ||
} | ||
ToolbarItem(placement: .topBarTrailing) { | ||
Button { | ||
self.isCustomerCenterPresented = true | ||
} label: { | ||
Image(systemName: "person.crop.circle") | ||
} | ||
} | ||
} | ||
} | ||
} | ||
.foregroundColor(.white) | ||
.sheet(isPresented: $isCustomerCenterPresented) { | ||
CustomerCenterView() | ||
} | ||
} | ||
``` | ||
|
||
Or you can use the modifier: | ||
|
||
```swift | ||
VStack { | ||
Button { | ||
self.presentingCustomerCenter = true | ||
} label: { | ||
TemplateLabel(name: "Customer Center", icon: "person.fill") | ||
} | ||
} | ||
.presentCustomerCenter(isPresented: self.$presentingCustomerCenter) { | ||
self.presentingCustomerCenter = false | ||
} | ||
``` | ||
|
||
### Listening to events | ||
|
||
You can listen to events in the Customer Center using the `customerCenterActionHandler` closure: | ||
|
||
```swift | ||
CustomerCenterView { customerCenterAction in | ||
switch customerCenterAction { | ||
case .restoreStarted: | ||
case .restoreFailed(_): | ||
case .restoreCompleted(_): | ||
case .showingManageSubscriptions: | ||
case .refundRequestStarted(_): | ||
case .refundRequestCompleted(_): | ||
} | ||
} | ||
``` | ||
|
||
or if using the modifier: | ||
|
||
```swift | ||
.presentCustomerCenter( | ||
isPresented: self.$presentingCustomerCenter, | ||
customerCenterActionHandler: { action in | ||
switch action { | ||
case .restoreCompleted(let customerInfo): | ||
case .restoreStarted: | ||
case .restoreFailed(let error): | ||
case .showingManageSubscriptions: | ||
case .refundRequestStarted(let productId): | ||
case .refundRequestCompleted(let status): | ||
case .feedbackSurveyCompleted(let surveyOptionID): | ||
} | ||
} | ||
) { | ||
self.presentingCustomerCenter = false | ||
} | ||
``` | ||
|
||
## Release Notes | ||
|
||
### RevenueCatUI SDK | ||
#### Paywall Components | ||
##### 🐞 Bugfixes | ||
* Match text, image, and stack properties and behaviors from dashboard (#4261) via Josh Holtz (@joshdholtz) | ||
#### Customer Center | ||
##### 🐞 Bugfixes | ||
* More customer center docs and fix init (#4304) via Cesar de la Vega (@vegaro) | ||
* Remove background from FeedbackSurveyView (#4300) via Cesar de la Vega (@vegaro) | ||
|
||
#### 🔄 Other Changes | ||
* Fix iOS 15 tests (#4320) via Cesar de la Vega (@vegaro) | ||
* Generating new test snapshots for `main` - watchos (#4323) via RevenueCat Git Bot (@RCGitBot) | ||
* Generating new test snapshots for `main` - macos (#4322) via RevenueCat Git Bot (@RCGitBot) | ||
* Adds an `onDismiss` callback to `ErrorDisplay` (#4312) via JayShortway (@JayShortway) | ||
* Added previews for text component, image component, and paywall for template 1 (#4306) via Josh Holtz (@joshdholtz) | ||
* Remove `CUSTOMER_CENTER_ENABLED` (#4305) via Cesar de la Vega (@vegaro) | ||
* [Diagnostics] Refactor diagnostics track methods to handle background work automatically (#4270) via Toni Rico (@tonidero) | ||
* [Diagnostics] Add `apple_products_request` event (#4247) via Toni Rico (@tonidero) | ||
* Bump webrick from 1.7.0 to 1.8.2 in /Tests/InstallationTests/CocoapodsInstallation (#4313) via dependabot[bot] (@dependabot[bot]) | ||
* Bump fastlane from 2.222.0 to 2.223.1 (#4309) via dependabot[bot] (@dependabot[bot]) | ||
* Bump fastlane-plugin-revenuecat_internal from `55a0455` to `5b2e35c` (#4310) via dependabot[bot] (@dependabot[bot]) | ||
## RevenueCat SDK | ||
### 🐞 Bugfixes | ||
* Fix `hasFeature(RetroactiveAttribute)` check in iOS 14 (#4359) via Cesar de la Vega (@vegaro) | ||
* Only Treat Deferred StoreKit Messages as Shown When They are Shown (#4344) via Will Taylor (@fire-at-will) | ||
### 📦 Dependency Updates | ||
* Bump fastlane from 2.223.1 to 2.224.0 (#4354) via dependabot[bot] (@dependabot[bot]) | ||
* Bump fastlane-plugin-revenuecat_internal from `5b2e35c` to `3b1e7cf` (#4347) via dependabot[bot] (@dependabot[bot]) | ||
### Win-back Offers | ||
#### ✨ New Features | ||
* CAT-1726: Support Deferring Win-Back StoreKit Messages (#4343) via Will Taylor (@fire-at-will) | ||
|
||
## RevenueCatUI SDK | ||
### 🐞 Bugfixes | ||
* Fixes double callbacks when using `PaywallViewController` (#4333) via Cesar de la Vega (@vegaro) | ||
### Customer Center | ||
#### 🐞 Bugfixes | ||
* Fix setting accent color in Customer Center (#4358) via Cesar de la Vega (@vegaro) | ||
* Improve promotional offer button when pressed (#4342) via Cesar de la Vega (@vegaro) | ||
* [CustomerCenter] Hide unknown paths (#4350) via Toni Rico (@tonidero) | ||
* Remove access to Localization env variable in ManageSubscriptionsViewModel (#4339) via Cesar de la Vega (@vegaro) | ||
|
||
### 🔄 Other Changes | ||
* Update MagicWeather sample app (#4337) via nyeu (@nyeu) | ||
* Allows enabling PAYWALL_COMPONENTS using a Local.xcconfig file. (#4341) via JayShortway (@JayShortway) | ||
* Better logs for promotional offer view (#4336) via Cesar de la Vega (@vegaro) | ||
* Fix Xcode 16 warnings (#4334) via Mark Villacampa (@MarkVillacampa) | ||
* Run CI tests on iOS18/watchOS11 & Use Xcode 16 (#4295) via Will Taylor (@fire-at-will) |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Oops, something went wrong.