Add debug bypass subscription toggle, tests, and data layer improvements

- Add runtime toggle in Settings (DEBUG only) to bypass subscription/hide trial banner
- IAPManager.bypassSubscription is now a @Published var persisted via UserDefaults
- Hide upgrade banner in SettingsTabView and trial warnings when bypass is enabled
- Add FeelsTests directory with integration tests
- Update DataController, DataControllerGET, DataControllerUPDATE
- Update Xcode project and scheme configuration
- Update localization strings and App Store screen docs

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
Trey t
2026-02-15 17:12:56 -06:00
parent 7c142568be
commit 7639f881da
14 changed files with 1064 additions and 34 deletions

View File

@@ -2718,6 +2718,10 @@
}
}
},
"Bypass Subscription" : {
"comment" : "A label describing a feature that allows users to bypass in-app purchases for testing purposes.",
"isCommentAutoGenerated" : true
},
"Cancel" : {
"comment" : "The text for a button that dismisses the current view.",
"isCommentAutoGenerated" : true,
@@ -4679,6 +4683,10 @@
}
}
},
"Data Storage Unavailable" : {
"comment" : "An alert title when the app cannot save mood data permanently.",
"isCommentAutoGenerated" : true
},
"Date Range" : {
"comment" : "A label describing the date range for the mood data being exported.",
"isCommentAutoGenerated" : true,
@@ -7791,6 +7799,14 @@
}
}
},
"Help improve Feels by sharing anonymous usage data" : {
"comment" : "A description of the analytics toggle.",
"isCommentAutoGenerated" : true
},
"Hide trial banner & grant full access" : {
"comment" : "A description of the feature that hides the trial banner and grants full access to the app.",
"isCommentAutoGenerated" : true
},
"How are you feeling?" : {
"localizations" : {
"de" : {
@@ -11003,6 +11019,10 @@
"comment" : "A button label that pauses a live activity.",
"isCommentAutoGenerated" : true
},
"Payment Issue" : {
"comment" : "A label indicating that there is a payment issue with a subscription.",
"isCommentAutoGenerated" : true
},
"Paywall Styles" : {
"localizations" : {
"de" : {
@@ -14182,6 +14202,10 @@
}
}
},
"Share Analytics" : {
"comment" : "A label describing the purpose of the \"Share Analytics\" toggle.",
"isCommentAutoGenerated" : true
},
"share_view_all_moods_total_template_title" : {
"extractionState" : "manual",
"localizations" : {
@@ -16147,6 +16171,10 @@
}
}
},
"Toggle anonymous usage analytics" : {
"comment" : "A hint that describes the functionality of the \"Share Analytics\" toggle.",
"isCommentAutoGenerated" : true
},
"Top Mood" : {
"comment" : "A label displayed above the top mood value in the month card.",
"isCommentAutoGenerated" : true,
@@ -18036,6 +18064,10 @@
}
}
},
"Your mood data cannot be saved permanently. Please restart the app. If the problem persists, reinstall the app." : {
"comment" : "An alert message displayed when the user's mood data cannot be saved permanently. It instructs the user to restart the app or reinstall it if the issue persists.",
"isCommentAutoGenerated" : true
},
"Your Personal\nDiary" : {
"comment" : "A title describing the main feature of the premium subscription: a personal diary.",
"isCommentAutoGenerated" : true,