Rebrand entire project from Feels to Reflect

Complete rename across all bundle IDs, App Groups, CloudKit containers,
StoreKit product IDs, data store filenames, URL schemes, logger subsystems,
Swift identifiers, user-facing strings (7 languages), file names, directory
names, Xcode project, schemes, assets, and documentation.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
Trey t
2026-02-26 11:47:16 -06:00
parent b1a54d2844
commit 0442eab1f8
380 changed files with 858 additions and 1077 deletions

View File

@@ -22,7 +22,7 @@ final class DeepLinkTests: BaseUITestCase {
)
// Send a malformed deep link
let malformedURL = URL(string: "feels://invalidpath")!
let malformedURL = URL(string: "reflect://invalidpath")!
app.open(malformedURL)
// App should still be running and responsive verify Day tab still exists
@@ -41,7 +41,7 @@ final class DeepLinkTests: BaseUITestCase {
captureScreenshot(name: "deeplink_malformed_no_crash")
}
/// TC-125: feels://subscribe opens subscription view.
/// TC-125: reflect://subscribe opens subscription view.
func testDeepLink_Subscribe_OpensPaywall() {
// Verify app launched
let tabBar = TabBarScreen(app: app)
@@ -53,13 +53,13 @@ final class DeepLinkTests: BaseUITestCase {
captureScreenshot(name: "deeplink_before_subscribe")
// Send subscribe deep link
let subscribeURL = URL(string: "feels://subscribe")!
let subscribeURL = URL(string: "reflect://subscribe")!
app.open(subscribeURL)
// Subscription view should appear as a sheet.
// Look for common subscription UI elements.
let subscribeText = app.staticTexts.matching(
NSPredicate(format: "label CONTAINS[c] 'subscribe' OR label CONTAINS[c] 'premium' OR label CONTAINS[c] 'upgrade' OR label CONTAINS[c] 'Feels+'")
NSPredicate(format: "label CONTAINS[c] 'subscribe' OR label CONTAINS[c] 'premium' OR label CONTAINS[c] 'upgrade' OR label CONTAINS[c] 'Reflect+'")
).firstMatch
let found = subscribeText.waitForExistence(timeout: 8)
@@ -67,7 +67,7 @@ final class DeepLinkTests: BaseUITestCase {
captureScreenshot(name: "deeplink_subscribe_result")
XCTAssertTrue(found,
"Subscription view should appear after feels://subscribe deep link"
"Subscription view should appear after reflect://subscribe deep link"
)
}
}

View File

@@ -58,7 +58,7 @@ final class PremiumCustomizationTests: BaseUITestCase {
// Verify the subscription sheet appears look for common subscription
// sheet elements (subscription store view or paywall content).
// The FeelsSubscriptionStoreView should appear as a sheet.
// The ReflectSubscriptionStoreView should appear as a sheet.
// Give extra time for StoreKit to load products.
let subscriptionSheet = app.otherElements.firstMatch
_ = subscriptionSheet.waitForExistence(timeout: 5)

View File

@@ -7,7 +7,7 @@
import XCTest
// Local copy UI test target cannot @testable import Feels
// Local copy UI test target cannot @testable import Reflect
private extension Date {
static func dates(from fromDate: Date, toDate: Date, includingToDate: Bool = false) -> [Date] {
var dates: [Date] = []