Rebrand from MyCrib to Casera

- Rename Kotlin package from com.example.mycrib to com.example.casera
- Update Android app name, namespace, and application ID
- Update iOS bundle identifiers and project settings
- Rename iOS directories (MyCribTests -> CaseraTests, etc.)
- Update deep link schemes from mycrib:// to casera://
- Update app group identifiers
- Update subscription product IDs
- Update all UI strings and branding

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
Trey t
2025-11-28 21:10:38 -06:00
parent 8dbc816a33
commit c6eef720ed
215 changed files with 767 additions and 767 deletions

View File

@@ -1,7 +1,7 @@
import SwiftUI
// MARK: - Design System
// Modern, sleek design system for MyCrib with Light and Dark mode support
// Modern, sleek design system for Casera with Light and Dark mode support
// MARK: - Colors

View File

@@ -7,7 +7,7 @@ import ComposeApp
final class WidgetDataManager {
static let shared = WidgetDataManager()
private let appGroupIdentifier = "group.com.tt.mycrib.MyCribDev"
private let appGroupIdentifier = "group.com.tt.casera.CaseraDev"
private let tasksFileName = "widget_tasks.json"
private init() {}

View File

@@ -8,10 +8,10 @@
<array>
<dict>
<key>CFBundleURLName</key>
<string>com.mycrib.app</string>
<string>com.casera.app</string>
<key>CFBundleURLSchemes</key>
<array>
<string>mycrib</string>
<string>casera</string>
</array>
</dict>
</array>

View File

@@ -142,7 +142,7 @@ struct ProfileTabView: View {
Section {
VStack(alignment: .leading, spacing: 4) {
Text("MyCrib")
Text("Casera")
.font(.caption)
.fontWeight(.semibold)
.foregroundColor(Color.appTextPrimary)

View File

@@ -20,7 +20,7 @@ struct RegisterView: View {
.font(.system(size: 60))
.foregroundStyle(Color.appPrimary.gradient)
Text("Join MyCrib")
Text("Join Casera")
.font(.largeTitle)
.fontWeight(.bold)

View File

@@ -9,8 +9,8 @@ class StoreKitManager: ObservableObject {
// Product IDs (must match App Store Connect and Configuration.storekit)
private let productIDs = [
"com.example.mycrib.pro.monthly",
"com.example.mycrib.pro.annual"
"com.example.casera.pro.monthly",
"com.example.casera.pro.annual"
]
@Published var products: [Product] = []

View File

@@ -9,7 +9,7 @@ struct LoginHeader: View {
.frame(width: 80, height: 80)
.foregroundColor(Color.appPrimary)
Text("MyCrib")
Text("Casera")
.font(.largeTitle)
.fontWeight(.bold)
.foregroundColor(Color.appTextPrimary)

View File

@@ -9,7 +9,7 @@ struct RegisterHeader: View {
.frame(width: 64, height: 64)
.foregroundColor(Color.appPrimary)
Text("Join MyCrib")
Text("Join Casera")
.font(.largeTitle)
.fontWeight(.bold)
.foregroundColor(Color.appTextPrimary)

View File

@@ -26,8 +26,8 @@ struct iOSApp: App {
private func handleDeepLink(url: URL) {
print("Deep link received: \(url)")
// Handle mycrib://reset-password?token=xxx
guard url.scheme == "mycrib",
// Handle casera://reset-password?token=xxx
guard url.scheme == "casera",
url.host == "reset-password" else {
print("Unrecognized deep link scheme or host")
return