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:
@@ -92,7 +92,7 @@
|
|||||||
"locale" : "en_US"
|
"locale" : "en_US"
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"productID" : "com.tt.ifeel.IAP.subscriptions.monthly",
|
"productID" : "com.tt.feels.IAP.subscriptions.monthly",
|
||||||
"recurringSubscriptionPeriod" : "P1M",
|
"recurringSubscriptionPeriod" : "P1M",
|
||||||
"referenceName" : "Monthly",
|
"referenceName" : "Monthly",
|
||||||
"subscriptionGroupID" : "2CFE4C4F",
|
"subscriptionGroupID" : "2CFE4C4F",
|
||||||
@@ -120,7 +120,7 @@
|
|||||||
"locale" : "en_US"
|
"locale" : "en_US"
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"productID" : "com.tt.ifeel.IAP.subscriptions.yearly",
|
"productID" : "com.tt.feels.IAP.subscriptions.yearly",
|
||||||
"recurringSubscriptionPeriod" : "P1Y",
|
"recurringSubscriptionPeriod" : "P1Y",
|
||||||
"referenceName" : "Yearly",
|
"referenceName" : "Yearly",
|
||||||
"subscriptionGroupID" : "2CFE4C4F",
|
"subscriptionGroupID" : "2CFE4C4F",
|
||||||
|
|||||||
@@ -4,7 +4,7 @@
|
|||||||
<dict>
|
<dict>
|
||||||
<key>com.apple.developer.icloud-container-identifiers</key>
|
<key>com.apple.developer.icloud-container-identifiers</key>
|
||||||
<array>
|
<array>
|
||||||
<string>iCloud.com.tt.ifeelDebug</string>
|
<string>iCloud.com.tt.feelsDebug</string>
|
||||||
</array>
|
</array>
|
||||||
<key>com.apple.developer.icloud-services</key>
|
<key>com.apple.developer.icloud-services</key>
|
||||||
<array>
|
<array>
|
||||||
@@ -12,7 +12,7 @@
|
|||||||
</array>
|
</array>
|
||||||
<key>com.apple.security.application-groups</key>
|
<key>com.apple.security.application-groups</key>
|
||||||
<array>
|
<array>
|
||||||
<string>group.com.tt.ifeelDebug</string>
|
<string>group.com.tt.feelsDebug</string>
|
||||||
</array>
|
</array>
|
||||||
<key>com.apple.developer.healthkit</key>
|
<key>com.apple.developer.healthkit</key>
|
||||||
<true/>
|
<true/>
|
||||||
|
|||||||
@@ -6,7 +6,7 @@
|
|||||||
<string>development</string>
|
<string>development</string>
|
||||||
<key>com.apple.developer.icloud-container-identifiers</key>
|
<key>com.apple.developer.icloud-container-identifiers</key>
|
||||||
<array>
|
<array>
|
||||||
<string>iCloud.com.tt.ifeelDebug</string>
|
<string>iCloud.com.tt.feelsDebug</string>
|
||||||
</array>
|
</array>
|
||||||
<key>com.apple.developer.icloud-services</key>
|
<key>com.apple.developer.icloud-services</key>
|
||||||
<array>
|
<array>
|
||||||
@@ -14,7 +14,7 @@
|
|||||||
</array>
|
</array>
|
||||||
<key>com.apple.security.application-groups</key>
|
<key>com.apple.security.application-groups</key>
|
||||||
<array>
|
<array>
|
||||||
<string>group.com.tt.ifeelDebug</string>
|
<string>group.com.tt.feelsDebug</string>
|
||||||
</array>
|
</array>
|
||||||
<key>com.apple.developer.healthkit</key>
|
<key>com.apple.developer.healthkit</key>
|
||||||
<true/>
|
<true/>
|
||||||
|
|||||||
@@ -4,7 +4,7 @@
|
|||||||
<dict>
|
<dict>
|
||||||
<key>com.apple.security.application-groups</key>
|
<key>com.apple.security.application-groups</key>
|
||||||
<array>
|
<array>
|
||||||
<string>group.com.tt.ifeel</string>
|
<string>group.com.tt.feels</string>
|
||||||
</array>
|
</array>
|
||||||
</dict>
|
</dict>
|
||||||
</plist>
|
</plist>
|
||||||
|
|||||||
@@ -4,7 +4,7 @@
|
|||||||
<dict>
|
<dict>
|
||||||
<key>com.apple.security.application-groups</key>
|
<key>com.apple.security.application-groups</key>
|
||||||
<array>
|
<array>
|
||||||
<string>group.com.tt.ifeelDebug</string>
|
<string>group.com.tt.feelsDebug</string>
|
||||||
</array>
|
</array>
|
||||||
</dict>
|
</dict>
|
||||||
</plist>
|
</plist>
|
||||||
|
|||||||
@@ -4,13 +4,13 @@
|
|||||||
<dict>
|
<dict>
|
||||||
<key>BGTaskSchedulerPermittedIdentifiers</key>
|
<key>BGTaskSchedulerPermittedIdentifiers</key>
|
||||||
<array>
|
<array>
|
||||||
<string>com.tt.ifeel.dbUpdateMissing</string>
|
<string>com.tt.feels.dbUpdateMissing</string>
|
||||||
</array>
|
</array>
|
||||||
<key>CFBundleURLTypes</key>
|
<key>CFBundleURLTypes</key>
|
||||||
<array>
|
<array>
|
||||||
<dict>
|
<dict>
|
||||||
<key>CFBundleURLName</key>
|
<key>CFBundleURLName</key>
|
||||||
<string>com.tt.ifeel</string>
|
<string>com.tt.feels</string>
|
||||||
<key>CFBundleURLSchemes</key>
|
<key>CFBundleURLSchemes</key>
|
||||||
<array>
|
<array>
|
||||||
<string>feels</string>
|
<string>feels</string>
|
||||||
|
|||||||
@@ -65,7 +65,7 @@
|
|||||||
1C0DAB50279DB0FB003B1F21 /* Feels/Localizable.xcstrings */ = {isa = PBXFileReference; lastKnownFileType = text.json.xcstrings; path = Feels/Localizable.xcstrings; sourceTree = "<group>"; };
|
1C0DAB50279DB0FB003B1F21 /* Feels/Localizable.xcstrings */ = {isa = PBXFileReference; lastKnownFileType = text.json.xcstrings; path = Feels/Localizable.xcstrings; sourceTree = "<group>"; };
|
||||||
1CB4D09E28787B3C00902A56 /* Configuration.storekit */ = {isa = PBXFileReference; lastKnownFileType = text; path = Configuration.storekit; sourceTree = "<group>"; };
|
1CB4D09E28787B3C00902A56 /* Configuration.storekit */ = {isa = PBXFileReference; lastKnownFileType = text; path = Configuration.storekit; sourceTree = "<group>"; };
|
||||||
1CB4D09F28787D8A00902A56 /* StoreKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = StoreKit.framework; path = Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS15.5.sdk/System/Library/Frameworks/StoreKit.framework; sourceTree = DEVELOPER_DIR; };
|
1CB4D09F28787D8A00902A56 /* StoreKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = StoreKit.framework; path = Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS15.5.sdk/System/Library/Frameworks/StoreKit.framework; sourceTree = DEVELOPER_DIR; };
|
||||||
1CD90AF5278C7DE0001C4FEA /* iFeels.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = iFeels.app; sourceTree = BUILT_PRODUCTS_DIR; };
|
1CD90AF5278C7DE0001C4FEA /* Feels.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = Feels.app; sourceTree = BUILT_PRODUCTS_DIR; };
|
||||||
1CD90AFB278C7DE0001C4FEA /* Feels.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = Feels.app; sourceTree = BUILT_PRODUCTS_DIR; };
|
1CD90AFB278C7DE0001C4FEA /* Feels.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = Feels.app; sourceTree = BUILT_PRODUCTS_DIR; };
|
||||||
1CD90AFD278C7DE0001C4FEA /* macOS.entitlements */ = {isa = PBXFileReference; lastKnownFileType = text.plist.entitlements; path = macOS.entitlements; sourceTree = "<group>"; };
|
1CD90AFD278C7DE0001C4FEA /* macOS.entitlements */ = {isa = PBXFileReference; lastKnownFileType = text.plist.entitlements; path = macOS.entitlements; sourceTree = "<group>"; };
|
||||||
1CD90B02278C7DE0001C4FEA /* Tests iOS.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = "Tests iOS.xctest"; sourceTree = BUILT_PRODUCTS_DIR; };
|
1CD90B02278C7DE0001C4FEA /* Tests iOS.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = "Tests iOS.xctest"; sourceTree = BUILT_PRODUCTS_DIR; };
|
||||||
@@ -220,7 +220,7 @@
|
|||||||
isa = PBXGroup;
|
isa = PBXGroup;
|
||||||
children = (
|
children = (
|
||||||
1E594AEAB5F046E3B3ED7C47 /* Feels Watch App.app */,
|
1E594AEAB5F046E3B3ED7C47 /* Feels Watch App.app */,
|
||||||
1CD90AF5278C7DE0001C4FEA /* iFeels.app */,
|
1CD90AF5278C7DE0001C4FEA /* Feels.app */,
|
||||||
1CD90AFB278C7DE0001C4FEA /* Feels.app */,
|
1CD90AFB278C7DE0001C4FEA /* Feels.app */,
|
||||||
1CD90B02278C7DE0001C4FEA /* Tests iOS.xctest */,
|
1CD90B02278C7DE0001C4FEA /* Tests iOS.xctest */,
|
||||||
1CD90B0E278C7DE0001C4FEA /* Tests macOS.xctest */,
|
1CD90B0E278C7DE0001C4FEA /* Tests macOS.xctest */,
|
||||||
@@ -291,7 +291,7 @@
|
|||||||
1C9566432EF8F5F70032E68F /* Algorithms */,
|
1C9566432EF8F5F70032E68F /* Algorithms */,
|
||||||
);
|
);
|
||||||
productName = "Feels (iOS)";
|
productName = "Feels (iOS)";
|
||||||
productReference = 1CD90AF5278C7DE0001C4FEA /* iFeels.app */;
|
productReference = 1CD90AF5278C7DE0001C4FEA /* Feels.app */;
|
||||||
productType = "com.apple.product-type.application";
|
productType = "com.apple.product-type.application";
|
||||||
};
|
};
|
||||||
1CD90AFA278C7DE0001C4FEA /* Feels (macOS) */ = {
|
1CD90AFA278C7DE0001C4FEA /* Feels (macOS) */ = {
|
||||||
@@ -582,14 +582,14 @@
|
|||||||
GENERATE_INFOPLIST_FILE = YES;
|
GENERATE_INFOPLIST_FILE = YES;
|
||||||
INFOPLIST_KEY_CFBundleDisplayName = Feels;
|
INFOPLIST_KEY_CFBundleDisplayName = Feels;
|
||||||
INFOPLIST_KEY_UISupportedInterfaceOrientations = "UIInterfaceOrientationPortrait UIInterfaceOrientationPortraitUpsideDown";
|
INFOPLIST_KEY_UISupportedInterfaceOrientations = "UIInterfaceOrientationPortrait UIInterfaceOrientationPortraitUpsideDown";
|
||||||
INFOPLIST_KEY_WKCompanionAppBundleIdentifier = com.tt.ifeelDebug;
|
INFOPLIST_KEY_WKCompanionAppBundleIdentifier = com.tt.feelsDebug;
|
||||||
INFOPLIST_KEY_WKRunsIndependentlyOfCompanionApp = NO;
|
INFOPLIST_KEY_WKRunsIndependentlyOfCompanionApp = NO;
|
||||||
LD_RUNPATH_SEARCH_PATHS = (
|
LD_RUNPATH_SEARCH_PATHS = (
|
||||||
"$(inherited)",
|
"$(inherited)",
|
||||||
"@executable_path/Frameworks",
|
"@executable_path/Frameworks",
|
||||||
);
|
);
|
||||||
MARKETING_VERSION = 1.0.2;
|
MARKETING_VERSION = 1.0.2;
|
||||||
PRODUCT_BUNDLE_IDENTIFIER = com.tt.ifeelDebug.watchkitapp;
|
PRODUCT_BUNDLE_IDENTIFIER = com.tt.feelsDebug.watchkitapp;
|
||||||
PRODUCT_NAME = "$(TARGET_NAME)";
|
PRODUCT_NAME = "$(TARGET_NAME)";
|
||||||
SDKROOT = watchos;
|
SDKROOT = watchos;
|
||||||
SKIP_INSTALL = YES;
|
SKIP_INSTALL = YES;
|
||||||
@@ -748,8 +748,8 @@
|
|||||||
"@executable_path/Frameworks",
|
"@executable_path/Frameworks",
|
||||||
);
|
);
|
||||||
MARKETING_VERSION = 1.0.2;
|
MARKETING_VERSION = 1.0.2;
|
||||||
PRODUCT_BUNDLE_IDENTIFIER = com.tt.ifeelDebug;
|
PRODUCT_BUNDLE_IDENTIFIER = com.tt.feelsDebug;
|
||||||
PRODUCT_NAME = iFeels;
|
PRODUCT_NAME = Feels;
|
||||||
PROVISIONING_PROFILE_SPECIFIER = "";
|
PROVISIONING_PROFILE_SPECIFIER = "";
|
||||||
SDKROOT = iphoneos;
|
SDKROOT = iphoneos;
|
||||||
SWIFT_EMIT_LOC_STRINGS = YES;
|
SWIFT_EMIT_LOC_STRINGS = YES;
|
||||||
@@ -783,8 +783,8 @@
|
|||||||
"@executable_path/Frameworks",
|
"@executable_path/Frameworks",
|
||||||
);
|
);
|
||||||
MARKETING_VERSION = 1.0.2;
|
MARKETING_VERSION = 1.0.2;
|
||||||
PRODUCT_BUNDLE_IDENTIFIER = com.tt.ifeelDebug;
|
PRODUCT_BUNDLE_IDENTIFIER = com.tt.feelsDebug;
|
||||||
PRODUCT_NAME = iFeels;
|
PRODUCT_NAME = Feels;
|
||||||
PROVISIONING_PROFILE_SPECIFIER = "";
|
PROVISIONING_PROFILE_SPECIFIER = "";
|
||||||
SDKROOT = iphoneos;
|
SDKROOT = iphoneos;
|
||||||
SWIFT_EMIT_LOC_STRINGS = YES;
|
SWIFT_EMIT_LOC_STRINGS = YES;
|
||||||
@@ -817,7 +817,7 @@
|
|||||||
);
|
);
|
||||||
MACOSX_DEPLOYMENT_TARGET = 12.1;
|
MACOSX_DEPLOYMENT_TARGET = 12.1;
|
||||||
MARKETING_VERSION = 1.0;
|
MARKETING_VERSION = 1.0;
|
||||||
PRODUCT_BUNDLE_IDENTIFIER = com.tt.ifeel;
|
PRODUCT_BUNDLE_IDENTIFIER = com.tt.feels;
|
||||||
PRODUCT_NAME = Feels;
|
PRODUCT_NAME = Feels;
|
||||||
SDKROOT = macosx;
|
SDKROOT = macosx;
|
||||||
SWIFT_EMIT_LOC_STRINGS = YES;
|
SWIFT_EMIT_LOC_STRINGS = YES;
|
||||||
@@ -848,7 +848,7 @@
|
|||||||
);
|
);
|
||||||
MACOSX_DEPLOYMENT_TARGET = 12.1;
|
MACOSX_DEPLOYMENT_TARGET = 12.1;
|
||||||
MARKETING_VERSION = 1.0;
|
MARKETING_VERSION = 1.0;
|
||||||
PRODUCT_BUNDLE_IDENTIFIER = com.tt.ifeelDebug;
|
PRODUCT_BUNDLE_IDENTIFIER = com.tt.feelsDebug;
|
||||||
PRODUCT_NAME = Feels;
|
PRODUCT_NAME = Feels;
|
||||||
SDKROOT = macosx;
|
SDKROOT = macosx;
|
||||||
SWIFT_EMIT_LOC_STRINGS = YES;
|
SWIFT_EMIT_LOC_STRINGS = YES;
|
||||||
@@ -940,7 +940,7 @@
|
|||||||
CURRENT_PROJECT_VERSION = 23;
|
CURRENT_PROJECT_VERSION = 23;
|
||||||
GENERATE_INFOPLIST_FILE = YES;
|
GENERATE_INFOPLIST_FILE = YES;
|
||||||
INFOPLIST_FILE = "FeelsWidgetExtension-Info.plist";
|
INFOPLIST_FILE = "FeelsWidgetExtension-Info.plist";
|
||||||
INFOPLIST_KEY_CFBundleDisplayName = iFeelsWidget;
|
INFOPLIST_KEY_CFBundleDisplayName = FeelsWidget;
|
||||||
INFOPLIST_KEY_NSHumanReadableCopyright = "";
|
INFOPLIST_KEY_NSHumanReadableCopyright = "";
|
||||||
IPHONEOS_DEPLOYMENT_TARGET = 18.6;
|
IPHONEOS_DEPLOYMENT_TARGET = 18.6;
|
||||||
LD_RUNPATH_SEARCH_PATHS = (
|
LD_RUNPATH_SEARCH_PATHS = (
|
||||||
@@ -949,7 +949,7 @@
|
|||||||
"@executable_path/../../Frameworks",
|
"@executable_path/../../Frameworks",
|
||||||
);
|
);
|
||||||
MARKETING_VERSION = 1.0.2;
|
MARKETING_VERSION = 1.0.2;
|
||||||
PRODUCT_BUNDLE_IDENTIFIER = com.tt.ifeelDebug.FeelsWidgetDebug;
|
PRODUCT_BUNDLE_IDENTIFIER = com.tt.feelsDebug.FeelsWidgetDebug;
|
||||||
PRODUCT_NAME = "$(TARGET_NAME)";
|
PRODUCT_NAME = "$(TARGET_NAME)";
|
||||||
PROVISIONING_PROFILE_SPECIFIER = "";
|
PROVISIONING_PROFILE_SPECIFIER = "";
|
||||||
SDKROOT = iphoneos;
|
SDKROOT = iphoneos;
|
||||||
@@ -972,7 +972,7 @@
|
|||||||
CURRENT_PROJECT_VERSION = 23;
|
CURRENT_PROJECT_VERSION = 23;
|
||||||
GENERATE_INFOPLIST_FILE = YES;
|
GENERATE_INFOPLIST_FILE = YES;
|
||||||
INFOPLIST_FILE = "FeelsWidgetExtension-Info.plist";
|
INFOPLIST_FILE = "FeelsWidgetExtension-Info.plist";
|
||||||
INFOPLIST_KEY_CFBundleDisplayName = iFeelsWidget;
|
INFOPLIST_KEY_CFBundleDisplayName = FeelsWidget;
|
||||||
INFOPLIST_KEY_NSHumanReadableCopyright = "";
|
INFOPLIST_KEY_NSHumanReadableCopyright = "";
|
||||||
IPHONEOS_DEPLOYMENT_TARGET = 18.6;
|
IPHONEOS_DEPLOYMENT_TARGET = 18.6;
|
||||||
LD_RUNPATH_SEARCH_PATHS = (
|
LD_RUNPATH_SEARCH_PATHS = (
|
||||||
@@ -981,7 +981,7 @@
|
|||||||
"@executable_path/../../Frameworks",
|
"@executable_path/../../Frameworks",
|
||||||
);
|
);
|
||||||
MARKETING_VERSION = 1.0.2;
|
MARKETING_VERSION = 1.0.2;
|
||||||
PRODUCT_BUNDLE_IDENTIFIER = com.tt.ifeelDebug.FeelsWidget;
|
PRODUCT_BUNDLE_IDENTIFIER = com.tt.feelsDebug.FeelsWidget;
|
||||||
PRODUCT_NAME = "$(TARGET_NAME)";
|
PRODUCT_NAME = "$(TARGET_NAME)";
|
||||||
PROVISIONING_PROFILE_SPECIFIER = "";
|
PROVISIONING_PROFILE_SPECIFIER = "";
|
||||||
SDKROOT = iphoneos;
|
SDKROOT = iphoneos;
|
||||||
@@ -1006,14 +1006,14 @@
|
|||||||
GENERATE_INFOPLIST_FILE = YES;
|
GENERATE_INFOPLIST_FILE = YES;
|
||||||
INFOPLIST_KEY_CFBundleDisplayName = Feels;
|
INFOPLIST_KEY_CFBundleDisplayName = Feels;
|
||||||
INFOPLIST_KEY_UISupportedInterfaceOrientations = "UIInterfaceOrientationPortrait UIInterfaceOrientationPortraitUpsideDown";
|
INFOPLIST_KEY_UISupportedInterfaceOrientations = "UIInterfaceOrientationPortrait UIInterfaceOrientationPortraitUpsideDown";
|
||||||
INFOPLIST_KEY_WKCompanionAppBundleIdentifier = com.tt.ifeel;
|
INFOPLIST_KEY_WKCompanionAppBundleIdentifier = com.tt.feels;
|
||||||
INFOPLIST_KEY_WKRunsIndependentlyOfCompanionApp = NO;
|
INFOPLIST_KEY_WKRunsIndependentlyOfCompanionApp = NO;
|
||||||
LD_RUNPATH_SEARCH_PATHS = (
|
LD_RUNPATH_SEARCH_PATHS = (
|
||||||
"$(inherited)",
|
"$(inherited)",
|
||||||
"@executable_path/Frameworks",
|
"@executable_path/Frameworks",
|
||||||
);
|
);
|
||||||
MARKETING_VERSION = 1.0.2;
|
MARKETING_VERSION = 1.0.2;
|
||||||
PRODUCT_BUNDLE_IDENTIFIER = com.tt.ifeel.watchkitapp;
|
PRODUCT_BUNDLE_IDENTIFIER = com.tt.feels.watchkitapp;
|
||||||
PRODUCT_NAME = "$(TARGET_NAME)";
|
PRODUCT_NAME = "$(TARGET_NAME)";
|
||||||
SDKROOT = watchos;
|
SDKROOT = watchos;
|
||||||
SKIP_INSTALL = YES;
|
SKIP_INSTALL = YES;
|
||||||
|
|||||||
@@ -15,7 +15,7 @@
|
|||||||
<BuildableReference
|
<BuildableReference
|
||||||
BuildableIdentifier = "primary"
|
BuildableIdentifier = "primary"
|
||||||
BlueprintIdentifier = "1CD90AF4278C7DE0001C4FEA"
|
BlueprintIdentifier = "1CD90AF4278C7DE0001C4FEA"
|
||||||
BuildableName = "iFeels.app"
|
BuildableName = "Feels.app"
|
||||||
BlueprintName = "Feels (iOS)"
|
BlueprintName = "Feels (iOS)"
|
||||||
ReferencedContainer = "container:Feels.xcodeproj">
|
ReferencedContainer = "container:Feels.xcodeproj">
|
||||||
</BuildableReference>
|
</BuildableReference>
|
||||||
@@ -55,7 +55,7 @@
|
|||||||
<BuildableReference
|
<BuildableReference
|
||||||
BuildableIdentifier = "primary"
|
BuildableIdentifier = "primary"
|
||||||
BlueprintIdentifier = "1CD90AF4278C7DE0001C4FEA"
|
BlueprintIdentifier = "1CD90AF4278C7DE0001C4FEA"
|
||||||
BuildableName = "iFeels.app"
|
BuildableName = "Feels.app"
|
||||||
BlueprintName = "Feels (iOS)"
|
BlueprintName = "Feels (iOS)"
|
||||||
ReferencedContainer = "container:Feels.xcodeproj">
|
ReferencedContainer = "container:Feels.xcodeproj">
|
||||||
</BuildableReference>
|
</BuildableReference>
|
||||||
@@ -75,7 +75,7 @@
|
|||||||
<BuildableReference
|
<BuildableReference
|
||||||
BuildableIdentifier = "primary"
|
BuildableIdentifier = "primary"
|
||||||
BlueprintIdentifier = "1CD90AF4278C7DE0001C4FEA"
|
BlueprintIdentifier = "1CD90AF4278C7DE0001C4FEA"
|
||||||
BuildableName = "iFeels.app"
|
BuildableName = "Feels.app"
|
||||||
BlueprintName = "Feels (iOS)"
|
BlueprintName = "Feels (iOS)"
|
||||||
ReferencedContainer = "container:Feels.xcodeproj">
|
ReferencedContainer = "container:Feels.xcodeproj">
|
||||||
</BuildableReference>
|
</BuildableReference>
|
||||||
|
|||||||
@@ -30,7 +30,7 @@
|
|||||||
<BuildableReference
|
<BuildableReference
|
||||||
BuildableIdentifier = "primary"
|
BuildableIdentifier = "primary"
|
||||||
BlueprintIdentifier = "1CD90AF4278C7DE0001C4FEA"
|
BlueprintIdentifier = "1CD90AF4278C7DE0001C4FEA"
|
||||||
BuildableName = "iFeels.app"
|
BuildableName = "Feels.app"
|
||||||
BlueprintName = "Feels (iOS)"
|
BlueprintName = "Feels (iOS)"
|
||||||
ReferencedContainer = "container:Feels.xcodeproj">
|
ReferencedContainer = "container:Feels.xcodeproj">
|
||||||
</BuildableReference>
|
</BuildableReference>
|
||||||
@@ -72,7 +72,7 @@
|
|||||||
<BuildableReference
|
<BuildableReference
|
||||||
BuildableIdentifier = "primary"
|
BuildableIdentifier = "primary"
|
||||||
BlueprintIdentifier = "1CD90AF4278C7DE0001C4FEA"
|
BlueprintIdentifier = "1CD90AF4278C7DE0001C4FEA"
|
||||||
BuildableName = "iFeels.app"
|
BuildableName = "Feels.app"
|
||||||
BlueprintName = "Feels (iOS)"
|
BlueprintName = "Feels (iOS)"
|
||||||
ReferencedContainer = "container:Feels.xcodeproj">
|
ReferencedContainer = "container:Feels.xcodeproj">
|
||||||
</BuildableReference>
|
</BuildableReference>
|
||||||
@@ -108,7 +108,7 @@
|
|||||||
<BuildableReference
|
<BuildableReference
|
||||||
BuildableIdentifier = "primary"
|
BuildableIdentifier = "primary"
|
||||||
BlueprintIdentifier = "1CD90AF4278C7DE0001C4FEA"
|
BlueprintIdentifier = "1CD90AF4278C7DE0001C4FEA"
|
||||||
BuildableName = "iFeels.app"
|
BuildableName = "Feels.app"
|
||||||
BlueprintName = "Feels (iOS)"
|
BlueprintName = "Feels (iOS)"
|
||||||
ReferencedContainer = "container:Feels.xcodeproj">
|
ReferencedContainer = "container:Feels.xcodeproj">
|
||||||
</BuildableReference>
|
</BuildableReference>
|
||||||
|
|||||||
@@ -12,12 +12,12 @@
|
|||||||
<key>Feels (macOS).xcscheme_^#shared#^_</key>
|
<key>Feels (macOS).xcscheme_^#shared#^_</key>
|
||||||
<dict>
|
<dict>
|
||||||
<key>orderHint</key>
|
<key>orderHint</key>
|
||||||
<integer>2</integer>
|
<integer>3</integer>
|
||||||
</dict>
|
</dict>
|
||||||
<key>Feels Watch App.xcscheme_^#shared#^_</key>
|
<key>Feels Watch App.xcscheme_^#shared#^_</key>
|
||||||
<dict>
|
<dict>
|
||||||
<key>orderHint</key>
|
<key>orderHint</key>
|
||||||
<integer>3</integer>
|
<integer>2</integer>
|
||||||
</dict>
|
</dict>
|
||||||
<key>FeelsWidgetExtension.xcscheme_^#shared#^_</key>
|
<key>FeelsWidgetExtension.xcscheme_^#shared#^_</key>
|
||||||
<dict>
|
<dict>
|
||||||
|
|||||||
File diff suppressed because it is too large
Load Diff
@@ -4,7 +4,7 @@
|
|||||||
<dict>
|
<dict>
|
||||||
<key>com.apple.developer.icloud-container-identifiers</key>
|
<key>com.apple.developer.icloud-container-identifiers</key>
|
||||||
<array>
|
<array>
|
||||||
<string>iCloud.com.tt.ifeelDebug</string>
|
<string>iCloud.com.tt.feelsDebug</string>
|
||||||
</array>
|
</array>
|
||||||
<key>com.apple.developer.icloud-services</key>
|
<key>com.apple.developer.icloud-services</key>
|
||||||
<array>
|
<array>
|
||||||
@@ -12,7 +12,7 @@
|
|||||||
</array>
|
</array>
|
||||||
<key>com.apple.security.application-groups</key>
|
<key>com.apple.security.application-groups</key>
|
||||||
<array>
|
<array>
|
||||||
<string>group.com.tt.ifeelDebug</string>
|
<string>group.com.tt.feelsDebug</string>
|
||||||
</array>
|
</array>
|
||||||
</dict>
|
</dict>
|
||||||
</plist>
|
</plist>
|
||||||
|
|||||||
@@ -6,7 +6,7 @@
|
|||||||
<string>development</string>
|
<string>development</string>
|
||||||
<key>com.apple.developer.icloud-container-identifiers</key>
|
<key>com.apple.developer.icloud-container-identifiers</key>
|
||||||
<array>
|
<array>
|
||||||
<string>iCloud.com.tt.ifeelDebug</string>
|
<string>iCloud.com.tt.feelsDebug</string>
|
||||||
</array>
|
</array>
|
||||||
<key>com.apple.developer.icloud-services</key>
|
<key>com.apple.developer.icloud-services</key>
|
||||||
<array>
|
<array>
|
||||||
@@ -14,7 +14,7 @@
|
|||||||
</array>
|
</array>
|
||||||
<key>com.apple.security.application-groups</key>
|
<key>com.apple.security.application-groups</key>
|
||||||
<array>
|
<array>
|
||||||
<string>group.com.tt.ifeelDebug</string>
|
<string>group.com.tt.feelsDebug</string>
|
||||||
</array>
|
</array>
|
||||||
</dict>
|
</dict>
|
||||||
</plist>
|
</plist>
|
||||||
|
|||||||
@@ -9,7 +9,7 @@ import Foundation
|
|||||||
import BackgroundTasks
|
import BackgroundTasks
|
||||||
|
|
||||||
class BGTask {
|
class BGTask {
|
||||||
static let updateDBMissingID = "com.tt.ifeel.dbUpdateMissing"
|
static let updateDBMissingID = "com.tt.feels.dbUpdateMissing"
|
||||||
|
|
||||||
@MainActor
|
@MainActor
|
||||||
class func runFillInMissingDatesTask(task: BGProcessingTask) {
|
class func runFillInMissingDatesTask(task: BGProcessingTask) {
|
||||||
|
|||||||
@@ -14,7 +14,7 @@ class HealthKitManager: ObservableObject {
|
|||||||
static let shared = HealthKitManager()
|
static let shared = HealthKitManager()
|
||||||
|
|
||||||
private let healthStore = HKHealthStore()
|
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 isAuthorized = false
|
||||||
@Published var authorizationError: Error?
|
@Published var authorizationError: Error?
|
||||||
|
|||||||
@@ -45,8 +45,8 @@ class IAPManager: ObservableObject {
|
|||||||
static let subscriptionGroupID = "2CFE4C4F"
|
static let subscriptionGroupID = "2CFE4C4F"
|
||||||
|
|
||||||
private let productIdentifiers: Set<String> = [
|
private let productIdentifiers: Set<String> = [
|
||||||
"com.tt.ifeel.IAP.subscriptions.monthly",
|
"com.tt.feels.IAP.subscriptions.monthly",
|
||||||
"com.tt.ifeel.IAP.subscriptions.yearly"
|
"com.tt.feels.IAP.subscriptions.yearly"
|
||||||
]
|
]
|
||||||
|
|
||||||
private let trialDays = 30
|
private let trialDays = 30
|
||||||
|
|||||||
@@ -15,7 +15,7 @@ import os.log
|
|||||||
final class MoodLogger {
|
final class MoodLogger {
|
||||||
static let shared = 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
|
/// Key for tracking the last date side effects were applied
|
||||||
private static let lastSideEffectsDateKey = "lastSideEffectsAppliedDate"
|
private static let lastSideEffectsDateKey = "lastSideEffectsAppliedDate"
|
||||||
|
|||||||
@@ -11,7 +11,7 @@ import os.log
|
|||||||
|
|
||||||
@MainActor
|
@MainActor
|
||||||
final class DataController: ObservableObject {
|
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()
|
static let shared = DataController()
|
||||||
|
|
||||||
private(set) var container: ModelContainer
|
private(set) var container: ModelContainer
|
||||||
|
|||||||
@@ -20,7 +20,7 @@ final class ExtensionDataProvider {
|
|||||||
|
|
||||||
static let shared = 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?
|
private var _container: ModelContainer?
|
||||||
|
|
||||||
|
|||||||
@@ -25,7 +25,7 @@ enum SharedModelContainerError: LocalizedError {
|
|||||||
}
|
}
|
||||||
|
|
||||||
enum SharedModelContainer {
|
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
|
/// Creates a ModelContainer with the appropriate configuration for app group sharing
|
||||||
/// - Parameter useCloudKit: Whether to enable CloudKit sync (defaults to true)
|
/// - Parameter useCloudKit: Whether to enable CloudKit sync (defaults to true)
|
||||||
@@ -107,9 +107,9 @@ enum SharedModelContainer {
|
|||||||
/// CloudKit container identifier based on build configuration
|
/// CloudKit container identifier based on build configuration
|
||||||
static var cloudKitContainerID: String {
|
static var cloudKitContainerID: String {
|
||||||
#if DEBUG
|
#if DEBUG
|
||||||
return "iCloud.com.tt.ifeelDebug"
|
return "iCloud.com.tt.feelsDebug"
|
||||||
#else
|
#else
|
||||||
return "iCloud.com.tt.ifeel"
|
return "iCloud.com.tt.feels"
|
||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -10,8 +10,8 @@ import SwiftUI
|
|||||||
import SwiftData
|
import SwiftData
|
||||||
|
|
||||||
struct Constants {
|
struct Constants {
|
||||||
static let groupShareId = "group.com.tt.ifeel"
|
static let groupShareId = "group.com.tt.feels"
|
||||||
static let groupShareIdDebug = "group.com.tt.ifeelDebug"
|
static let groupShareIdDebug = "group.com.tt.feelsDebug"
|
||||||
|
|
||||||
static var currentGroupShareId: String {
|
static var currentGroupShareId: String {
|
||||||
#if DEBUG
|
#if DEBUG
|
||||||
|
|||||||
@@ -29,6 +29,6 @@ enum AppLogger {
|
|||||||
// MARK: - Private
|
// MARK: - Private
|
||||||
|
|
||||||
private static var subsystem: String {
|
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()
|
static let shared = ImageCache()
|
||||||
|
|
||||||
private let cache = NSCache<NSString, UIImage>()
|
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() {
|
private init() {
|
||||||
// Configure cache limits
|
// Configure cache limits
|
||||||
|
|||||||
@@ -17,7 +17,7 @@ final class WatchConnectivityManager: NSObject, ObservableObject {
|
|||||||
|
|
||||||
static let shared = WatchConnectivityManager()
|
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?
|
private var session: WCSession?
|
||||||
|
|
||||||
|
|||||||
@@ -72,7 +72,7 @@ extension VoteMoodIntent: ForegroundContinuableIntent {}
|
|||||||
|
|
||||||
#if WIDGET_EXTENSION
|
#if WIDGET_EXTENSION
|
||||||
enum WidgetMoodSaver {
|
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
|
@MainActor
|
||||||
static func save(mood: Mood, date: Date) {
|
static func save(mood: Mood, date: Date) {
|
||||||
|
|||||||
@@ -683,7 +683,7 @@ struct SettingsContentView: View {
|
|||||||
theme.currentTheme.secondaryBGColor
|
theme.currentTheme.secondaryBGColor
|
||||||
Button(action: {
|
Button(action: {
|
||||||
EventLogger.log(event: "show_eula")
|
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)
|
UIApplication.shared.open(url)
|
||||||
}
|
}
|
||||||
}, label: {
|
}, label: {
|
||||||
@@ -702,7 +702,7 @@ struct SettingsContentView: View {
|
|||||||
theme.currentTheme.secondaryBGColor
|
theme.currentTheme.secondaryBGColor
|
||||||
Button(action: {
|
Button(action: {
|
||||||
EventLogger.log(event: "show_privacy")
|
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)
|
UIApplication.shared.open(url)
|
||||||
}
|
}
|
||||||
}, label: {
|
}, label: {
|
||||||
@@ -1367,7 +1367,7 @@ struct SettingsView: View {
|
|||||||
theme.currentTheme.secondaryBGColor
|
theme.currentTheme.secondaryBGColor
|
||||||
Button(action: {
|
Button(action: {
|
||||||
EventLogger.log(event: "show_eula")
|
EventLogger.log(event: "show_eula")
|
||||||
openURL(URL(string: "https://ifeels.app/eula.html")!)
|
openURL(URL(string: "https://feels.app/eula.html")!)
|
||||||
}, label: {
|
}, label: {
|
||||||
Text(String(localized: "settings_view_show_eula"))
|
Text(String(localized: "settings_view_show_eula"))
|
||||||
.foregroundColor(textColor)
|
.foregroundColor(textColor)
|
||||||
@@ -1383,7 +1383,7 @@ struct SettingsView: View {
|
|||||||
theme.currentTheme.secondaryBGColor
|
theme.currentTheme.secondaryBGColor
|
||||||
Button(action: {
|
Button(action: {
|
||||||
EventLogger.log(event: "show_privacy")
|
EventLogger.log(event: "show_privacy")
|
||||||
openURL(URL(string: "https://ifeels.app/privacy.html")!)
|
openURL(URL(string: "https://feels.app/privacy.html")!)
|
||||||
}, label: {
|
}, label: {
|
||||||
Text(String(localized: "settings_view_show_privacy"))
|
Text(String(localized: "settings_view_show_privacy"))
|
||||||
.foregroundColor(textColor)
|
.foregroundColor(textColor)
|
||||||
|
|||||||
Reference in New Issue
Block a user