Rename iFeels to Feels across entire codebase
- Bundle IDs: com.tt.ifeel* → com.tt.feels* - App Groups: group.com.tt.ifeel* → group.com.tt.feels* - iCloud containers: iCloud.com.tt.ifeel* → iCloud.com.tt.feels* - IAP product IDs: com.tt.ifeel.IAP.* → com.tt.feels.IAP.* - URLs: ifeels.app → feels.app - Logger subsystems and dispatch queues - Product names and display names 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
This commit is contained in:
@@ -9,7 +9,7 @@ import Foundation
|
||||
import BackgroundTasks
|
||||
|
||||
class BGTask {
|
||||
static let updateDBMissingID = "com.tt.ifeel.dbUpdateMissing"
|
||||
static let updateDBMissingID = "com.tt.feels.dbUpdateMissing"
|
||||
|
||||
@MainActor
|
||||
class func runFillInMissingDatesTask(task: BGProcessingTask) {
|
||||
|
||||
@@ -14,7 +14,7 @@ class HealthKitManager: ObservableObject {
|
||||
static let shared = HealthKitManager()
|
||||
|
||||
private let healthStore = HKHealthStore()
|
||||
private let logger = Logger(subsystem: Bundle.main.bundleIdentifier ?? "com.tt.ifeel", category: "HealthKit")
|
||||
private let logger = Logger(subsystem: Bundle.main.bundleIdentifier ?? "com.tt.feels", category: "HealthKit")
|
||||
|
||||
@Published var isAuthorized = false
|
||||
@Published var authorizationError: Error?
|
||||
|
||||
@@ -45,8 +45,8 @@ class IAPManager: ObservableObject {
|
||||
static let subscriptionGroupID = "2CFE4C4F"
|
||||
|
||||
private let productIdentifiers: Set<String> = [
|
||||
"com.tt.ifeel.IAP.subscriptions.monthly",
|
||||
"com.tt.ifeel.IAP.subscriptions.yearly"
|
||||
"com.tt.feels.IAP.subscriptions.monthly",
|
||||
"com.tt.feels.IAP.subscriptions.yearly"
|
||||
]
|
||||
|
||||
private let trialDays = 30
|
||||
|
||||
@@ -15,7 +15,7 @@ import os.log
|
||||
final class MoodLogger {
|
||||
static let shared = MoodLogger()
|
||||
|
||||
private static let logger = Logger(subsystem: "com.tt.ifeel", category: "MoodLogger")
|
||||
private static let logger = Logger(subsystem: "com.tt.feels", category: "MoodLogger")
|
||||
|
||||
/// Key for tracking the last date side effects were applied
|
||||
private static let lastSideEffectsDateKey = "lastSideEffectsAppliedDate"
|
||||
|
||||
@@ -11,7 +11,7 @@ import os.log
|
||||
|
||||
@MainActor
|
||||
final class DataController: ObservableObject {
|
||||
private static let logger = Logger(subsystem: Bundle.main.bundleIdentifier ?? "com.tt.ifeel", category: "DataController")
|
||||
private static let logger = Logger(subsystem: Bundle.main.bundleIdentifier ?? "com.tt.feels", category: "DataController")
|
||||
static let shared = DataController()
|
||||
|
||||
private(set) var container: ModelContainer
|
||||
|
||||
@@ -20,7 +20,7 @@ final class ExtensionDataProvider {
|
||||
|
||||
static let shared = ExtensionDataProvider()
|
||||
|
||||
private static let logger = Logger(subsystem: Bundle.main.bundleIdentifier ?? "com.tt.ifeel", category: "ExtensionDataProvider")
|
||||
private static let logger = Logger(subsystem: Bundle.main.bundleIdentifier ?? "com.tt.feels", category: "ExtensionDataProvider")
|
||||
|
||||
private var _container: ModelContainer?
|
||||
|
||||
|
||||
@@ -25,7 +25,7 @@ enum SharedModelContainerError: LocalizedError {
|
||||
}
|
||||
|
||||
enum SharedModelContainer {
|
||||
private static let logger = Logger(subsystem: Bundle.main.bundleIdentifier ?? "com.tt.ifeel", category: "SharedModelContainer")
|
||||
private static let logger = Logger(subsystem: Bundle.main.bundleIdentifier ?? "com.tt.feels", category: "SharedModelContainer")
|
||||
|
||||
/// Creates a ModelContainer with the appropriate configuration for app group sharing
|
||||
/// - Parameter useCloudKit: Whether to enable CloudKit sync (defaults to true)
|
||||
@@ -107,9 +107,9 @@ enum SharedModelContainer {
|
||||
/// CloudKit container identifier based on build configuration
|
||||
static var cloudKitContainerID: String {
|
||||
#if DEBUG
|
||||
return "iCloud.com.tt.ifeelDebug"
|
||||
return "iCloud.com.tt.feelsDebug"
|
||||
#else
|
||||
return "iCloud.com.tt.ifeel"
|
||||
return "iCloud.com.tt.feels"
|
||||
#endif
|
||||
}
|
||||
|
||||
|
||||
@@ -10,8 +10,8 @@ import SwiftUI
|
||||
import SwiftData
|
||||
|
||||
struct Constants {
|
||||
static let groupShareId = "group.com.tt.ifeel"
|
||||
static let groupShareIdDebug = "group.com.tt.ifeelDebug"
|
||||
static let groupShareId = "group.com.tt.feels"
|
||||
static let groupShareIdDebug = "group.com.tt.feelsDebug"
|
||||
|
||||
static var currentGroupShareId: String {
|
||||
#if DEBUG
|
||||
|
||||
@@ -29,6 +29,6 @@ enum AppLogger {
|
||||
// MARK: - Private
|
||||
|
||||
private static var subsystem: String {
|
||||
Bundle.main.bundleIdentifier ?? "com.tt.ifeel"
|
||||
Bundle.main.bundleIdentifier ?? "com.tt.feels"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -13,7 +13,7 @@ final class ImageCache {
|
||||
static let shared = ImageCache()
|
||||
|
||||
private let cache = NSCache<NSString, UIImage>()
|
||||
private let queue = DispatchQueue(label: "com.tt.ifeel.imagecache", qos: .userInitiated)
|
||||
private let queue = DispatchQueue(label: "com.tt.feels.imagecache", qos: .userInitiated)
|
||||
|
||||
private init() {
|
||||
// Configure cache limits
|
||||
|
||||
@@ -17,7 +17,7 @@ final class WatchConnectivityManager: NSObject, ObservableObject {
|
||||
|
||||
static let shared = WatchConnectivityManager()
|
||||
|
||||
private static let logger = Logger(subsystem: "com.tt.ifeel", category: "WatchConnectivity")
|
||||
private static let logger = Logger(subsystem: "com.tt.feels", category: "WatchConnectivity")
|
||||
|
||||
private var session: WCSession?
|
||||
|
||||
|
||||
@@ -72,7 +72,7 @@ extension VoteMoodIntent: ForegroundContinuableIntent {}
|
||||
|
||||
#if WIDGET_EXTENSION
|
||||
enum WidgetMoodSaver {
|
||||
private static let logger = Logger(subsystem: "com.tt.ifeel.widget", category: "WidgetMoodSaver")
|
||||
private static let logger = Logger(subsystem: "com.tt.feels.widget", category: "WidgetMoodSaver")
|
||||
|
||||
@MainActor
|
||||
static func save(mood: Mood, date: Date) {
|
||||
|
||||
@@ -683,7 +683,7 @@ struct SettingsContentView: View {
|
||||
theme.currentTheme.secondaryBGColor
|
||||
Button(action: {
|
||||
EventLogger.log(event: "show_eula")
|
||||
if let url = URL(string: "https://ifeels.app/eula.html") {
|
||||
if let url = URL(string: "https://feels.app/eula.html") {
|
||||
UIApplication.shared.open(url)
|
||||
}
|
||||
}, label: {
|
||||
@@ -702,7 +702,7 @@ struct SettingsContentView: View {
|
||||
theme.currentTheme.secondaryBGColor
|
||||
Button(action: {
|
||||
EventLogger.log(event: "show_privacy")
|
||||
if let url = URL(string: "https://ifeels.app/privacy.html") {
|
||||
if let url = URL(string: "https://feels.app/privacy.html") {
|
||||
UIApplication.shared.open(url)
|
||||
}
|
||||
}, label: {
|
||||
@@ -1367,7 +1367,7 @@ struct SettingsView: View {
|
||||
theme.currentTheme.secondaryBGColor
|
||||
Button(action: {
|
||||
EventLogger.log(event: "show_eula")
|
||||
openURL(URL(string: "https://ifeels.app/eula.html")!)
|
||||
openURL(URL(string: "https://feels.app/eula.html")!)
|
||||
}, label: {
|
||||
Text(String(localized: "settings_view_show_eula"))
|
||||
.foregroundColor(textColor)
|
||||
@@ -1383,7 +1383,7 @@ struct SettingsView: View {
|
||||
theme.currentTheme.secondaryBGColor
|
||||
Button(action: {
|
||||
EventLogger.log(event: "show_privacy")
|
||||
openURL(URL(string: "https://ifeels.app/privacy.html")!)
|
||||
openURL(URL(string: "https://feels.app/privacy.html")!)
|
||||
}, label: {
|
||||
Text(String(localized: "settings_view_show_privacy"))
|
||||
.foregroundColor(textColor)
|
||||
|
||||
Reference in New Issue
Block a user