diff --git a/iosApp/CaseraUITests.xctestplan b/iosApp/CaseraUITests.xctestplan
index 00bead4..a56ed7e 100644
--- a/iosApp/CaseraUITests.xctestplan
+++ b/iosApp/CaseraUITests.xctestplan
@@ -24,7 +24,7 @@
"SimpleLoginTest\/testCanTypeInLoginFields()"
],
"target" : {
- "containerPath" : "container:iosApp.xcodeproj",
+ "containerPath" : "container:honeyDue.xcodeproj",
"identifier" : "1CBF1BEC2ECD9768001BF56C",
"name" : "HoneyDueUITests"
}
diff --git a/iosApp/Configuration/Config.xcconfig b/iosApp/Configuration/Config.xcconfig
index a184aec..a9e8e85 100644
--- a/iosApp/Configuration/Config.xcconfig
+++ b/iosApp/Configuration/Config.xcconfig
@@ -1,7 +1,6 @@
TEAM_ID=
PRODUCT_NAME=honeyDue
-PRODUCT_BUNDLE_IDENTIFIER=com.tt.honeyDue.HoneyDue$(TEAM_ID)
CURRENT_PROJECT_VERSION=1
MARKETING_VERSION=1.0
\ No newline at end of file
diff --git a/iosApp/HoneyDue/AppIntent.swift b/iosApp/HoneyDue/AppIntent.swift
index dece293..5570cc4 100644
--- a/iosApp/HoneyDue/AppIntent.swift
+++ b/iosApp/HoneyDue/AppIntent.swift
@@ -147,7 +147,9 @@ struct OpenTaskIntent: AppIntent {
final class WidgetActionManager {
static let shared = WidgetActionManager()
- private let appGroupIdentifier = "group.com.tt.honeyDue.HoneyDueDev"
+ private let appGroupIdentifier: String = {
+ Bundle.main.infoDictionary?["AppGroupIdentifier"] as? String ?? "group.com.tt.honeyDue.dev"
+ }()
private let pendingTasksFileName = "widget_pending_tasks.json"
private let tokenKey = "widget_auth_token"
private let dirtyFlagKey = "widget_tasks_dirty"
diff --git a/iosApp/HoneyDue/Assets.xcassets/AppIcon.appiconset/Contents.json b/iosApp/HoneyDue/Assets.xcassets/AppIcon.appiconset/Contents.json
index 2305880..c68da6c 100644
--- a/iosApp/HoneyDue/Assets.xcassets/AppIcon.appiconset/Contents.json
+++ b/iosApp/HoneyDue/Assets.xcassets/AppIcon.appiconset/Contents.json
@@ -1,6 +1,7 @@
{
"images" : [
{
+ "filename" : "icon.png",
"idiom" : "universal",
"platform" : "ios",
"size" : "1024x1024"
diff --git a/iosApp/HoneyDue/HoneyDue.swift b/iosApp/HoneyDue/HoneyDue.swift
index 0978e2c..99f552d 100644
--- a/iosApp/HoneyDue/HoneyDue.swift
+++ b/iosApp/HoneyDue/HoneyDue.swift
@@ -110,7 +110,9 @@ class CacheManager {
}
}
- private static let appGroupIdentifier = "group.com.tt.honeyDue.HoneyDueDev"
+ private static let appGroupIdentifier: String = {
+ Bundle.main.infoDictionary?["AppGroupIdentifier"] as? String ?? "group.com.tt.honeyDue.dev"
+ }()
private static let tasksFileName = "widget_tasks.json"
/// Get the shared App Group container URL
diff --git a/iosApp/HoneyDue/Info.plist b/iosApp/HoneyDue/Info.plist
index 0f118fb..d05ef19 100644
--- a/iosApp/HoneyDue/Info.plist
+++ b/iosApp/HoneyDue/Info.plist
@@ -2,6 +2,8 @@
+ AppGroupIdentifier
+ $(APP_GROUP_IDENTIFIER)
NSExtension
NSExtensionPointIdentifier
diff --git a/iosApp/HoneyDueExtension.entitlements b/iosApp/HoneyDueExtension.entitlements
index 030d7c0..d9849a8 100644
--- a/iosApp/HoneyDueExtension.entitlements
+++ b/iosApp/HoneyDueExtension.entitlements
@@ -4,7 +4,7 @@
com.apple.security.application-groups
- group.com.tt.honeyDue.HoneyDueDev
+ $(APP_GROUP_IDENTIFIER)
diff --git a/iosApp/HoneyDueUITests.xctestplan b/iosApp/HoneyDueUITests.xctestplan
new file mode 100644
index 0000000..a986eb1
--- /dev/null
+++ b/iosApp/HoneyDueUITests.xctestplan
@@ -0,0 +1,37 @@
+{
+ "configurations" : [
+ {
+ "id" : "F0DABEBB-1E5F-4A1A-BFDC-5AAA8635B8BA",
+ "name" : "Test Scheme Action",
+ "options" : {
+
+ }
+ }
+ ],
+ "defaultOptions" : {
+ "performanceAntipatternCheckerEnabled" : true,
+ "targetForVariableExpansion" : {
+ "containerPath" : "container:honeyDue.xcodeproj",
+ "identifier" : "D4ADB376A7A4CFB73469E173",
+ "name" : "HoneyDue"
+ }
+ },
+ "testTargets" : [
+ {
+ "parallelizable" : true,
+ "target" : {
+ "containerPath" : "container:honeyDue.xcodeproj",
+ "identifier" : "1C685CD12EC5539000A9669B",
+ "name" : "HoneyDueTests"
+ }
+ },
+ {
+ "target" : {
+ "containerPath" : "container:honeyDue.xcodeproj",
+ "identifier" : "1CBF1BEC2ECD9768001BF56C",
+ "name" : "HoneyDueUITests"
+ }
+ }
+ ],
+ "version" : 1
+}
diff --git a/iosApp/HoneyDueUITests/Suite0_OnboardingTests.swift b/iosApp/HoneyDueUITests/Suite0_OnboardingTests.swift
index a4f3d61..226c05b 100644
--- a/iosApp/HoneyDueUITests/Suite0_OnboardingTests.swift
+++ b/iosApp/HoneyDueUITests/Suite0_OnboardingTests.swift
@@ -5,7 +5,7 @@ import XCTest
/// SETUP REQUIREMENTS:
/// This test suite requires the app to be UNINSTALLED before running.
/// Add a Pre-action script to the honeyDueUITests scheme (Edit Scheme → Test → Pre-actions):
-/// /usr/bin/xcrun simctl uninstall booted com.tt.honeyDue.HoneyDueDev
+/// /usr/bin/xcrun simctl uninstall booted com.tt.honeyDue.dev
/// exit 0
///
/// There is ONE fresh-install test that runs the complete onboarding flow.
diff --git a/iosApp/iosApp.xcodeproj/project.pbxproj b/iosApp/honeyDue.xcodeproj/project.pbxproj
similarity index 97%
rename from iosApp/iosApp.xcodeproj/project.pbxproj
rename to iosApp/honeyDue.xcodeproj/project.pbxproj
index e399b9e..ceeedfb 100644
--- a/iosApp/iosApp.xcodeproj/project.pbxproj
+++ b/iosApp/honeyDue.xcodeproj/project.pbxproj
@@ -44,14 +44,14 @@
containerPortal = 6A3E1D84F9F1A2FD92A75A6C /* Project object */;
proxyType = 1;
remoteGlobalIDString = D4ADB376A7A4CFB73469E173;
- remoteInfo = iosApp;
+ remoteInfo = honeyDue;
};
1CBF1BF32ECD9768001BF56C /* PBXContainerItemProxy */ = {
isa = PBXContainerItemProxy;
containerPortal = 6A3E1D84F9F1A2FD92A75A6C /* Project object */;
proxyType = 1;
remoteGlobalIDString = D4ADB376A7A4CFB73469E173;
- remoteInfo = iosApp;
+ remoteInfo = honeyDue;
};
/* End PBXContainerItemProxy section */
@@ -457,7 +457,7 @@
packageProductDependencies = (
1C81F38F2EE69AF1000739EA /* PostHog */,
);
- productName = iosApp;
+ productName = honeyDue;
productReference = 96A3DDC05E14B3F83E56282F /* HoneyDue.app */;
productType = "com.apple.product-type.application";
};
@@ -493,7 +493,7 @@
};
};
};
- buildConfigurationList = F25B3A5CCAC6BFCC21CD4636 /* Build configuration list for PBXProject "iosApp" */;
+ buildConfigurationList = F25B3A5CCAC6BFCC21CD4636 /* Build configuration list for PBXProject "honeyDue" */;
developmentRegion = en;
hasScannedForEncodings = 0;
knownRegions = (
@@ -664,6 +664,7 @@
0248CABA5A5197845F2E5C26 /* Release */ = {
isa = XCBuildConfiguration;
buildSettings = {
+ APP_GROUP_IDENTIFIER = group.com.tt.honeyDue;
ARCHS = arm64;
ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
ASSETCATALOG_COMPILER_GLOBAL_ACCENT_COLOR_NAME = AccentColor;
@@ -688,7 +689,7 @@
"$(inherited)",
"@executable_path/Frameworks",
);
- PRODUCT_BUNDLE_IDENTIFIER = com.tt.honeyDue.HoneyDueDev;
+ PRODUCT_BUNDLE_IDENTIFIER = com.tt.honeyDue;
SWIFT_EMIT_LOC_STRINGS = YES;
SWIFT_VERSION = 5.0;
TARGETED_DEVICE_FAMILY = "1,2";
@@ -718,7 +719,8 @@
);
MARKETING_VERSION = 1.0;
OTHER_SWIFT_FLAGS = "-DWIDGET_EXTENSION";
- PRODUCT_BUNDLE_IDENTIFIER = com.tt.honeyDue.HoneyDueDev.HoneyDueDev;
+ APP_GROUP_IDENTIFIER = group.com.tt.honeyDue.dev;
+ PRODUCT_BUNDLE_IDENTIFIER = com.tt.honeyDue.dev.HoneyDueExtension;
PRODUCT_NAME = "$(TARGET_NAME)";
SKIP_INSTALL = YES;
STRING_CATALOG_GENERATE_SYMBOLS = YES;
@@ -753,7 +755,8 @@
);
MARKETING_VERSION = 1.0;
OTHER_SWIFT_FLAGS = "-DWIDGET_EXTENSION";
- PRODUCT_BUNDLE_IDENTIFIER = com.tt.honeyDue.HoneyDueDev.HoneyDueDev;
+ APP_GROUP_IDENTIFIER = group.com.tt.honeyDue;
+ PRODUCT_BUNDLE_IDENTIFIER = com.tt.honeyDue.HoneyDueExtension;
PRODUCT_NAME = "$(TARGET_NAME)";
SKIP_INSTALL = YES;
STRING_CATALOG_GENERATE_SYMBOLS = YES;
@@ -777,7 +780,7 @@
GENERATE_INFOPLIST_FILE = YES;
IPHONEOS_DEPLOYMENT_TARGET = 26.1;
MARKETING_VERSION = 1.0;
- PRODUCT_BUNDLE_IDENTIFIER = "com.t-t.HoneyDueTests";
+ PRODUCT_BUNDLE_IDENTIFIER = com.tt.HoneyDueTests;
PRODUCT_NAME = "$(TARGET_NAME)";
STRING_CATALOG_GENERATE_SYMBOLS = NO;
SWIFT_APPROACHABLE_CONCURRENCY = YES;
@@ -803,7 +806,7 @@
GENERATE_INFOPLIST_FILE = YES;
IPHONEOS_DEPLOYMENT_TARGET = 26.1;
MARKETING_VERSION = 1.0;
- PRODUCT_BUNDLE_IDENTIFIER = "com.t-t.HoneyDueTests";
+ PRODUCT_BUNDLE_IDENTIFIER = com.tt.HoneyDueTests;
PRODUCT_NAME = "$(TARGET_NAME)";
STRING_CATALOG_GENERATE_SYMBOLS = NO;
SWIFT_APPROACHABLE_CONCURRENCY = YES;
@@ -836,7 +839,7 @@
"@executable_path/../../Frameworks",
);
MARKETING_VERSION = 1.0;
- PRODUCT_BUNDLE_IDENTIFIER = com.tt.honeyDue.HoneyDueDev.HoneyDueQLPreview;
+ PRODUCT_BUNDLE_IDENTIFIER = com.tt.honeyDue.dev.HoneyDueQLPreview;
PRODUCT_NAME = "$(TARGET_NAME)";
SKIP_INSTALL = YES;
STRING_CATALOG_GENERATE_SYMBOLS = YES;
@@ -867,7 +870,7 @@
"@executable_path/../../Frameworks",
);
MARKETING_VERSION = 1.0;
- PRODUCT_BUNDLE_IDENTIFIER = com.tt.honeyDue.HoneyDueDev.HoneyDueQLPreview;
+ PRODUCT_BUNDLE_IDENTIFIER = com.tt.honeyDue.HoneyDueQLPreview;
PRODUCT_NAME = "$(TARGET_NAME)";
SKIP_INSTALL = YES;
STRING_CATALOG_GENERATE_SYMBOLS = YES;
@@ -898,7 +901,7 @@
"@executable_path/../../Frameworks",
);
MARKETING_VERSION = 1.0;
- PRODUCT_BUNDLE_IDENTIFIER = com.tt.honeyDue.HoneyDueDev.HoneyDueQLThumbnail;
+ PRODUCT_BUNDLE_IDENTIFIER = com.tt.honeyDue.dev.HoneyDueQLThumbnail;
PRODUCT_NAME = "$(TARGET_NAME)";
SKIP_INSTALL = YES;
STRING_CATALOG_GENERATE_SYMBOLS = YES;
@@ -929,7 +932,7 @@
"@executable_path/../../Frameworks",
);
MARKETING_VERSION = 1.0;
- PRODUCT_BUNDLE_IDENTIFIER = com.tt.honeyDue.HoneyDueDev.HoneyDueQLThumbnail;
+ PRODUCT_BUNDLE_IDENTIFIER = com.tt.honeyDue.HoneyDueQLThumbnail;
PRODUCT_NAME = "$(TARGET_NAME)";
SKIP_INSTALL = YES;
STRING_CATALOG_GENERATE_SYMBOLS = YES;
@@ -952,7 +955,7 @@
IPHONEOS_DEPLOYMENT_TARGET = 26.1;
MACOSX_DEPLOYMENT_TARGET = 26.1;
MARKETING_VERSION = 1.0;
- PRODUCT_BUNDLE_IDENTIFIER = "com.t-t.HoneyDueUITests";
+ PRODUCT_BUNDLE_IDENTIFIER = com.tt.HoneyDueUITests;
PRODUCT_NAME = "$(TARGET_NAME)";
SDKROOT = auto;
STRING_CATALOG_GENERATE_SYMBOLS = NO;
@@ -978,7 +981,7 @@
IPHONEOS_DEPLOYMENT_TARGET = 26.1;
MACOSX_DEPLOYMENT_TARGET = 26.1;
MARKETING_VERSION = 1.0;
- PRODUCT_BUNDLE_IDENTIFIER = "com.t-t.HoneyDueUITests";
+ PRODUCT_BUNDLE_IDENTIFIER = com.tt.HoneyDueUITests;
PRODUCT_NAME = "$(TARGET_NAME)";
SDKROOT = auto;
STRING_CATALOG_GENERATE_SYMBOLS = NO;
@@ -1121,6 +1124,7 @@
E767E942685C7832D51FF978 /* Debug */ = {
isa = XCBuildConfiguration;
buildSettings = {
+ APP_GROUP_IDENTIFIER = group.com.tt.honeyDue.dev;
ARCHS = arm64;
ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
ASSETCATALOG_COMPILER_GLOBAL_ACCENT_COLOR_NAME = AccentColor;
@@ -1145,7 +1149,7 @@
"$(inherited)",
"@executable_path/Frameworks",
);
- PRODUCT_BUNDLE_IDENTIFIER = com.tt.honeyDue.HoneyDueDev;
+ PRODUCT_BUNDLE_IDENTIFIER = com.tt.honeyDue.dev;
SWIFT_EMIT_LOC_STRINGS = YES;
SWIFT_VERSION = 5.0;
TARGETED_DEVICE_FAMILY = "1,2";
@@ -1209,7 +1213,7 @@
defaultConfigurationIsVisible = 0;
defaultConfigurationName = Release;
};
- F25B3A5CCAC6BFCC21CD4636 /* Build configuration list for PBXProject "iosApp" */ = {
+ F25B3A5CCAC6BFCC21CD4636 /* Build configuration list for PBXProject "honeyDue" */ = {
isa = XCConfigurationList;
buildConfigurations = (
80B0F01D77D413305F161C14 /* Debug */,
diff --git a/iosApp/iosApp.xcodeproj/project.xcworkspace/contents.xcworkspacedata b/iosApp/honeyDue.xcodeproj/project.xcworkspace/contents.xcworkspacedata
similarity index 100%
rename from iosApp/iosApp.xcodeproj/project.xcworkspace/contents.xcworkspacedata
rename to iosApp/honeyDue.xcodeproj/project.xcworkspace/contents.xcworkspacedata
diff --git a/iosApp/iosApp.xcodeproj/project.xcworkspace/xcshareddata/swiftpm/Package.resolved b/iosApp/honeyDue.xcodeproj/project.xcworkspace/xcshareddata/swiftpm/Package.resolved
similarity index 100%
rename from iosApp/iosApp.xcodeproj/project.xcworkspace/xcshareddata/swiftpm/Package.resolved
rename to iosApp/honeyDue.xcodeproj/project.xcworkspace/xcshareddata/swiftpm/Package.resolved
diff --git a/iosApp/iosApp.xcodeproj/xcshareddata/xcschemes/Casera.xcscheme b/iosApp/honeyDue.xcodeproj/xcshareddata/xcschemes/HoneyDue.xcscheme
similarity index 91%
rename from iosApp/iosApp.xcodeproj/xcshareddata/xcschemes/Casera.xcscheme
rename to iosApp/honeyDue.xcodeproj/xcshareddata/xcschemes/HoneyDue.xcscheme
index fae3c91..5224c01 100644
--- a/iosApp/iosApp.xcodeproj/xcshareddata/xcschemes/Casera.xcscheme
+++ b/iosApp/honeyDue.xcodeproj/xcshareddata/xcschemes/HoneyDue.xcscheme
@@ -18,7 +18,7 @@
BlueprintIdentifier = "D4ADB376A7A4CFB73469E173"
BuildableName = "honeyDue.app"
BlueprintName = "HoneyDue"
- ReferencedContainer = "container:iosApp.xcodeproj">
+ ReferencedContainer = "container:honeyDue.xcodeproj">
@@ -36,7 +36,7 @@
BlueprintIdentifier = "1C685CD12EC5539000A9669B"
BuildableName = "HoneyDueTests.xctest"
BlueprintName = "HoneyDueTests"
- ReferencedContainer = "container:iosApp.xcodeproj">
+ ReferencedContainer = "container:honeyDue.xcodeproj">
@@ -58,7 +58,7 @@
BlueprintIdentifier = "D4ADB376A7A4CFB73469E173"
BuildableName = "honeyDue.app"
BlueprintName = "HoneyDue"
- ReferencedContainer = "container:iosApp.xcodeproj">
+ ReferencedContainer = "container:honeyDue.xcodeproj">
@@ -74,7 +74,7 @@
BlueprintIdentifier = "D4ADB376A7A4CFB73469E173"
BuildableName = "honeyDue.app"
BlueprintName = "HoneyDue"
- ReferencedContainer = "container:iosApp.xcodeproj">
+ ReferencedContainer = "container:honeyDue.xcodeproj">
diff --git a/iosApp/iosApp.xcodeproj/xcshareddata/xcschemes/CaseraExtension.xcscheme b/iosApp/honeyDue.xcodeproj/xcshareddata/xcschemes/HoneyDueExtension.xcscheme
similarity index 92%
rename from iosApp/iosApp.xcodeproj/xcshareddata/xcschemes/CaseraExtension.xcscheme
rename to iosApp/honeyDue.xcodeproj/xcshareddata/xcschemes/HoneyDueExtension.xcscheme
index 30f7a7a..001c9cb 100644
--- a/iosApp/iosApp.xcodeproj/xcshareddata/xcschemes/CaseraExtension.xcscheme
+++ b/iosApp/honeyDue.xcodeproj/xcshareddata/xcschemes/HoneyDueExtension.xcscheme
@@ -19,7 +19,7 @@
BlueprintIdentifier = "1C07893C2EBC218B00392B46"
BuildableName = "HoneyDueExtension.appex"
BlueprintName = "HoneyDueExtension"
- ReferencedContainer = "container:iosApp.xcodeproj">
+ ReferencedContainer = "container:honeyDue.xcodeproj">
+ ReferencedContainer = "container:honeyDue.xcodeproj">
@@ -53,7 +53,7 @@
BlueprintIdentifier = "1CBF1BEC2ECD9768001BF56C"
BuildableName = "HoneyDueUITests.xctest"
BlueprintName = "HoneyDueUITests"
- ReferencedContainer = "container:iosApp.xcodeproj">
+ ReferencedContainer = "container:honeyDue.xcodeproj">
@@ -77,7 +77,7 @@
BlueprintIdentifier = "D4ADB376A7A4CFB73469E173"
BuildableName = "honeyDue.app"
BlueprintName = "HoneyDue"
- ReferencedContainer = "container:iosApp.xcodeproj">
+ ReferencedContainer = "container:honeyDue.xcodeproj">
@@ -113,7 +113,7 @@
BlueprintIdentifier = "D4ADB376A7A4CFB73469E173"
BuildableName = "honeyDue.app"
BlueprintName = "HoneyDue"
- ReferencedContainer = "container:iosApp.xcodeproj">
+ ReferencedContainer = "container:honeyDue.xcodeproj">
diff --git a/iosApp/iosApp.xcodeproj/xcshareddata/xcschemes/CaseraUITests.xcscheme b/iosApp/honeyDue.xcodeproj/xcshareddata/xcschemes/HoneyDueUITests.xcscheme
similarity index 92%
rename from iosApp/iosApp.xcodeproj/xcshareddata/xcschemes/CaseraUITests.xcscheme
rename to iosApp/honeyDue.xcodeproj/xcshareddata/xcschemes/HoneyDueUITests.xcscheme
index d9066bd..fb75c50 100644
--- a/iosApp/iosApp.xcodeproj/xcshareddata/xcschemes/CaseraUITests.xcscheme
+++ b/iosApp/honeyDue.xcodeproj/xcshareddata/xcschemes/HoneyDueUITests.xcscheme
@@ -14,7 +14,7 @@
shouldUseLaunchSchemeArgsEnv = "YES">
@@ -26,7 +26,7 @@
BlueprintIdentifier = "1CBF1BEC2ECD9768001BF56C"
BuildableName = "HoneyDueUITests.xctest"
BlueprintName = "HoneyDueUITests"
- ReferencedContainer = "container:iosApp.xcodeproj">
+ ReferencedContainer = "container:honeyDue.xcodeproj">
+ ReferencedContainer = "container:honeyDue.xcodeproj">
@@ -90,7 +90,7 @@
BlueprintIdentifier = "D4ADB376A7A4CFB73469E173"
BuildableName = "honeyDue.app"
BlueprintName = "HoneyDue"
- ReferencedContainer = "container:iosApp.xcodeproj">
+ ReferencedContainer = "container:honeyDue.xcodeproj">
diff --git a/iosApp/iosApp/Design/DesignSystem.swift b/iosApp/iosApp/Design/DesignSystem.swift
index 2d8e7aa..e95c768 100644
--- a/iosApp/iosApp/Design/DesignSystem.swift
+++ b/iosApp/iosApp/Design/DesignSystem.swift
@@ -11,7 +11,8 @@ extension Color {
/// Shared App Group defaults for reading the active theme.
/// Thread-safe: UserDefaults is safe to read from any thread/actor.
private static let _themeDefaults: UserDefaults = {
- UserDefaults(suiteName: "group.com.tt.honeyDue.HoneyDueDev") ?? .standard
+ let groupID = Bundle.main.infoDictionary?["AppGroupIdentifier"] as? String
+ return groupID.flatMap { UserDefaults(suiteName: $0) } ?? .standard
}()
private static func themed(_ name: String) -> Color {
diff --git a/iosApp/iosApp/Helpers/ThemeManager.swift b/iosApp/iosApp/Helpers/ThemeManager.swift
index 96c8959..3e32a3f 100644
--- a/iosApp/iosApp/Helpers/ThemeManager.swift
+++ b/iosApp/iosApp/Helpers/ThemeManager.swift
@@ -60,7 +60,9 @@ enum ThemeID: String, CaseIterable, Codable {
}
// MARK: - Shared App Group UserDefaults
-private let appGroupID = "group.com.tt.honeyDue.HoneyDueDev"
+private let appGroupID: String = {
+ Bundle.main.infoDictionary?["AppGroupIdentifier"] as? String ?? "group.com.tt.honeyDue.dev"
+}()
private let sharedDefaults: UserDefaults = {
guard let defaults = UserDefaults(suiteName: appGroupID) else {
#if DEBUG
diff --git a/iosApp/iosApp/Helpers/WidgetDataManager.swift b/iosApp/iosApp/Helpers/WidgetDataManager.swift
index b238b32..29e2895 100644
--- a/iosApp/iosApp/Helpers/WidgetDataManager.swift
+++ b/iosApp/iosApp/Helpers/WidgetDataManager.swift
@@ -20,7 +20,9 @@ final class WidgetDataManager {
static let completedColumn = "completed_tasks"
static let cancelledColumn = "cancelled_tasks"
- private let appGroupIdentifier = "group.com.tt.honeyDue.HoneyDueDev"
+ private let appGroupIdentifier: String = {
+ Bundle.main.infoDictionary?["AppGroupIdentifier"] as? String ?? "group.com.tt.honeyDue.dev"
+ }()
private let tasksFileName = "widget_tasks.json"
private let actionsFileName = "widget_pending_actions.json"
private let pendingTasksFileName = "widget_pending_tasks.json"
diff --git a/iosApp/iosApp/Info.plist b/iosApp/iosApp/Info.plist
index 9f89ab3..1a49718 100644
--- a/iosApp/iosApp/Info.plist
+++ b/iosApp/iosApp/Info.plist
@@ -2,6 +2,8 @@
+ AppGroupIdentifier
+ $(APP_GROUP_IDENTIFIER)
BGTaskSchedulerPermittedIdentifiers
com.tt.honeyDue.refresh
diff --git a/iosApp/iosApp/Localizable.xcstrings b/iosApp/iosApp/Localizable.xcstrings
index 81c003a..d4de574 100644
--- a/iosApp/iosApp/Localizable.xcstrings
+++ b/iosApp/iosApp/Localizable.xcstrings
@@ -4257,13 +4257,6 @@
"Caption" : {
"comment" : "A label displayed above the caption of an image in the photo viewer.",
"isCommentAutoGenerated" : true
- },
- "honeyDue" : {
- "comment" : "The name of the app.",
- "isCommentAutoGenerated" : true
- },
- "HONEYDUE PRO" : {
-
},
"Change" : {
"comment" : "A button that allows the user to change the time in a notification.",
@@ -17416,6 +17409,13 @@
},
"Here are tasks recommended for your area.\nPick the ones you'd like to track!" : {
+ },
+ "honeyDue" : {
+ "comment" : "The name of the app.",
+ "isCommentAutoGenerated" : true
+ },
+ "HONEYDUE PRO" : {
+
},
"Hour" : {
"comment" : "A picker for selecting an hour.",
@@ -17461,14 +17461,14 @@
"comment" : "A button label that instructs the user to join an existing residence.",
"isCommentAutoGenerated" : true
},
- "Join honeyDue" : {
- "comment" : "A title for the registration screen.",
- "isCommentAutoGenerated" : true
- },
"Join Failed" : {
"comment" : "An alert title displayed when joining a residence fails.",
"isCommentAutoGenerated" : true
},
+ "Join honeyDue" : {
+ "comment" : "A title for the registration screen.",
+ "isCommentAutoGenerated" : true
+ },
"Join Residence" : {
"comment" : "A button label that allows a user to join an existing residence.",
"isCommentAutoGenerated" : true
@@ -17499,11 +17499,11 @@
"Logging in..." : {
},
- "Manage at honeydue.app" : {
+ "Manage at honeyDue.treytartt.com" : {
},
- "Manage your subscription at honeydue.app" : {
- "comment" : "A text instruction that directs them to manage their subscription on honeydue.app.",
+ "Manage your subscription at honeyDue.treytartt.com" : {
+ "comment" : "A description of how to manage a subscription on a third-party platform.",
"isCommentAutoGenerated" : true
},
"Manage your subscription on your Android device" : {
@@ -17513,10 +17513,6 @@
"comment" : "A button label that says \"Mark Task In Progress\".",
"isCommentAutoGenerated" : true
},
- "HoneyDue Icon Animations" : {
- "comment" : "The title of the playground interface.",
- "isCommentAutoGenerated" : true
- },
"Need inspiration?" : {
},
@@ -17568,8 +17564,8 @@
"comment" : "A button that dismisses the success dialog.",
"isCommentAutoGenerated" : true
},
- "Open honeydue.app" : {
- "comment" : "A button label that opens the honeydue.app settings page.",
+ "Open honeyDue.treytartt.com" : {
+ "comment" : "A button label that opens the user's subscription management page in a web browser.",
"isCommentAutoGenerated" : true
},
"or" : {
@@ -21659,10 +21655,6 @@
},
"Remove User" : {
- },
- "Replay" : {
- "comment" : "A button that replays the current animation.",
- "isCommentAutoGenerated" : true
},
"Reset All Tasks" : {
"comment" : "A button label that resets all tasks.",
diff --git a/iosApp/iosApp/iosApp.entitlements b/iosApp/iosApp/iosApp.entitlements
index ba67575..03ca013 100644
--- a/iosApp/iosApp/iosApp.entitlements
+++ b/iosApp/iosApp/iosApp.entitlements
@@ -10,7 +10,7 @@
com.apple.security.application-groups
- group.com.tt.honeyDue.HoneyDueDev
+ $(APP_GROUP_IDENTIFIER)