Skip to content

Commit

Permalink
Always refresh app features onForeground() (#1022)
Browse files Browse the repository at this point in the history
Even if they haven't changed since the app was last sent to the
background.

Regression from #1019 where the initial .reloadReceipt() call was
wrapped in a Task to make it asynchronous.
  • Loading branch information
keeshux authored Dec 17, 2024
1 parent 09d598e commit 75de202
Showing 1 changed file with 10 additions and 1 deletion.
11 changes: 10 additions & 1 deletion Library/Sources/UILibrary/Business/AppContext.swift
Original file line number Diff line number Diff line change
Expand Up @@ -98,14 +98,23 @@ private extension AppContext {

pp_log(.App.profiles, .info, "\tObserve in-app events...")
iapManager.observeObjects()

// load in background, see comment right below
Task {
await iapManager.reloadReceipt()
}

// using Task above (#1019) causes the receipt to be loaded asynchronously.
// the initial call to onEligibleFeatures() may execute before the receipt is
// loaded and therefore do nothing. with .removeDuplicates(), there would
// not be a second chance to call onEligibleFeatures() if the eligible
// features haven't changed after reloading the receipt (this is the case
// for TestFlight where some features are set statically). that's why it's
// commented now
pp_log(.App.profiles, .info, "\tObserve eligible features...")
iapManager
.$eligibleFeatures
.removeDuplicates()
// .removeDuplicates()
.sink { [weak self] eligible in
Task {
try await self?.onEligibleFeatures(eligible)
Expand Down

0 comments on commit 75de202

Please sign in to comment.