onboarding: replay on a fresh/reinstalled install, not every launch
The keychain-first completed flag persists across reinstalls (same bundle id), so a new install was treated as already-completed and onboarding silently skipped while permissions still prompted. Add install identity: - Store an install id in BOTH the app-own container defaults (wiped on reinstall, persists across launches) and keychain (survives reinstall). - isFreshInstall() is true on first-ever launch or when the local id is missing/different from keychain (i.e. reinstalled); it seeds a fresh common id so the next launch of the same install is not 'fresh' again. - shouldShowOnboarding() = not completed || fresh install -> onboarding now replays once per fresh/reinstall, never on ordinary launches. Works on free SideStore (no app-group), using the app's own defaults domain as the same-install signal.
This commit is contained in:
@@ -321,7 +321,7 @@ struct ContentView: View {
|
||||
#else
|
||||
let shouldSkipOnboarding = false
|
||||
#endif
|
||||
if FuelStore.loadHasCompletedOnboarding()
|
||||
if !FuelStore.shouldShowOnboarding()
|
||||
|| shouldSkipOnboarding {
|
||||
locationManager.startForegroundTracking()
|
||||
// Geofences and the Live Activity must follow the user even in
|
||||
|
||||
Reference in New Issue
Block a user