diff --git a/.claude/settings.local.json b/.claude/settings.local.json
index cf7dbae..61a2dda 100644
--- a/.claude/settings.local.json
+++ b/.claude/settings.local.json
@@ -18,7 +18,8 @@
"Bash(ps:*)",
"Bash(stdbuf:*)",
"Bash(sysctl:*)",
- "Bash(tee:*)"
+ "Bash(tee:*)",
+ "Bash(codesign -d --entitlements :- /Users/treyt/Library/Developer/Xcode/DerivedData/honeyDue-buvczbpttcfkxxcmxbnqkqrmujyh/Build/Products/Debug-iphonesimulator/honeyDue.app)"
]
}
}
diff --git a/iosApp/ExportOptions.plist b/iosApp/ExportOptions.plist
index 50b53a4..0a30d09 100644
--- a/iosApp/ExportOptions.plist
+++ b/iosApp/ExportOptions.plist
@@ -15,6 +15,6 @@
manageAppVersionAndBuildNumber
teamID
- V3PF3M6B6U
+ X86BR9WTLD
diff --git a/iosApp/HoneyDue/AppIntent.swift b/iosApp/HoneyDue/AppIntent.swift
index 5570cc4..10796d4 100644
--- a/iosApp/HoneyDue/AppIntent.swift
+++ b/iosApp/HoneyDue/AppIntent.swift
@@ -148,7 +148,7 @@ final class WidgetActionManager {
static let shared = WidgetActionManager()
private let appGroupIdentifier: String = {
- Bundle.main.infoDictionary?["AppGroupIdentifier"] as? String ?? "group.com.tt.honeyDue.dev"
+ Bundle.main.infoDictionary?["AppGroupIdentifier"] as? String ?? "group.com.myhoneydue.honeyDue.dev"
}()
private let pendingTasksFileName = "widget_pending_tasks.json"
private let tokenKey = "widget_auth_token"
diff --git a/iosApp/HoneyDue/HoneyDue.swift b/iosApp/HoneyDue/HoneyDue.swift
index 924e3c2..2e49928 100644
--- a/iosApp/HoneyDue/HoneyDue.swift
+++ b/iosApp/HoneyDue/HoneyDue.swift
@@ -111,7 +111,7 @@ class CacheManager {
}
private static let appGroupIdentifier: String = {
- Bundle.main.infoDictionary?["AppGroupIdentifier"] as? String ?? "group.com.tt.honeyDue.dev"
+ Bundle.main.infoDictionary?["AppGroupIdentifier"] as? String ?? "group.com.myhoneydue.honeyDue.dev"
}()
private static let tasksFileName = "widget_tasks.json"
diff --git a/iosApp/HoneyDueUITests.xctestplan b/iosApp/HoneyDueUITests.xctestplan
index 550136a..aacf77d 100644
--- a/iosApp/HoneyDueUITests.xctestplan
+++ b/iosApp/HoneyDueUITests.xctestplan
@@ -9,13 +9,13 @@
}
],
"defaultOptions" : {
- "testTimeoutsEnabled" : true,
"defaultTestExecutionTimeAllowance" : 300,
"targetForVariableExpansion" : {
"containerPath" : "container:honeyDue.xcodeproj",
"identifier" : "D4ADB376A7A4CFB73469E173",
"name" : "HoneyDue"
- }
+ },
+ "testTimeoutsEnabled" : true
},
"testTargets" : [
{
diff --git a/iosApp/honeyDue.xcodeproj/project.pbxproj b/iosApp/honeyDue.xcodeproj/project.pbxproj
index 51d0397..fbe496f 100644
--- a/iosApp/honeyDue.xcodeproj/project.pbxproj
+++ b/iosApp/honeyDue.xcodeproj/project.pbxproj
@@ -661,7 +661,7 @@
0248CABA5A5197845F2E5C26 /* Release */ = {
isa = XCBuildConfiguration;
buildSettings = {
- APP_GROUP_IDENTIFIER = group.com.tt.honeyDue;
+ APP_GROUP_IDENTIFIER = group.com.myhoneydue.honeyDue;
ARCHS = arm64;
ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
ASSETCATALOG_COMPILER_GLOBAL_ACCENT_COLOR_NAME = AccentColor;
@@ -669,14 +669,15 @@
CODE_SIGN_IDENTITY = "Apple Development";
CODE_SIGN_STYLE = Automatic;
DEVELOPMENT_ASSET_PATHS = "\"iosApp/Preview Content\"";
- DEVELOPMENT_TEAM = V3PF3M6B6U;
+ DEVELOPMENT_TEAM = X86BR9WTLD;
ENABLE_PREVIEWS = YES;
GENERATE_INFOPLIST_FILE = YES;
INFOPLIST_FILE = iosApp/Info.plist;
INFOPLIST_KEY_ITSAppUsesNonExemptEncryption = NO;
INFOPLIST_KEY_LSSupportsOpeningDocumentsInPlace = NO;
- INFOPLIST_KEY_NSCameraUsageDescription = "honeyDue needs access to your camera to take photos of completed tasks";
- INFOPLIST_KEY_NSPhotoLibraryUsageDescription = "honeyDue needs access to your photo library to select photos of completed tasks";
+ INFOPLIST_KEY_NSCameraUsageDescription = "honeyDue needs camera access to take photos of tasks, documents, and receipts.";
+ INFOPLIST_KEY_NSPhotoLibraryAddUsageDescription = "honeyDue needs permission to save photos to your library.";
+ INFOPLIST_KEY_NSPhotoLibraryUsageDescription = "honeyDue needs photo library access to attach photos to tasks and documents.";
INFOPLIST_KEY_UIApplicationSceneManifest_Generation = YES;
INFOPLIST_KEY_UIApplicationSupportsIndirectInputEvents = YES;
INFOPLIST_KEY_UILaunchScreen_Generation = YES;
@@ -686,7 +687,7 @@
"$(inherited)",
"@executable_path/Frameworks",
);
- PRODUCT_BUNDLE_IDENTIFIER = com.tt.honeyDue;
+ PRODUCT_BUNDLE_IDENTIFIER = com.myhoneydue.honeyDue;
SWIFT_EMIT_LOC_STRINGS = YES;
SWIFT_VERSION = 5.0;
TARGETED_DEVICE_FAMILY = "1,2";
@@ -696,14 +697,14 @@
1C0789552EBC218D00392B46 /* Debug */ = {
isa = XCBuildConfiguration;
buildSettings = {
- APP_GROUP_IDENTIFIER = group.com.tt.honeyDue.dev;
+ APP_GROUP_IDENTIFIER = group.com.myhoneydue.honeyDue.dev;
ASSETCATALOG_COMPILER_GLOBAL_ACCENT_COLOR_NAME = AccentColor;
ASSETCATALOG_COMPILER_WIDGET_BACKGROUND_COLOR_NAME = WidgetBackground;
CODE_SIGN_ENTITLEMENTS = HoneyDueExtension.entitlements;
CODE_SIGN_IDENTITY = "Apple Development";
CODE_SIGN_STYLE = Automatic;
CURRENT_PROJECT_VERSION = 1;
- DEVELOPMENT_TEAM = V3PF3M6B6U;
+ DEVELOPMENT_TEAM = X86BR9WTLD;
ENABLE_USER_SCRIPT_SANDBOXING = NO;
GENERATE_INFOPLIST_FILE = YES;
INFOPLIST_FILE = HoneyDue/Info.plist;
@@ -717,7 +718,7 @@
);
MARKETING_VERSION = 1.0;
OTHER_SWIFT_FLAGS = "-DWIDGET_EXTENSION";
- PRODUCT_BUNDLE_IDENTIFIER = com.tt.honeyDue.dev.HoneyDueExtension;
+ PRODUCT_BUNDLE_IDENTIFIER = com.myhoneydue.honeyDue.dev.HoneyDueExtension;
PRODUCT_NAME = "$(TARGET_NAME)";
SKIP_INSTALL = YES;
STRING_CATALOG_GENERATE_SYMBOLS = YES;
@@ -732,14 +733,14 @@
1C0789562EBC218D00392B46 /* Release */ = {
isa = XCBuildConfiguration;
buildSettings = {
- APP_GROUP_IDENTIFIER = group.com.tt.honeyDue;
+ APP_GROUP_IDENTIFIER = group.com.myhoneydue.honeyDue;
ASSETCATALOG_COMPILER_GLOBAL_ACCENT_COLOR_NAME = AccentColor;
ASSETCATALOG_COMPILER_WIDGET_BACKGROUND_COLOR_NAME = WidgetBackground;
CODE_SIGN_ENTITLEMENTS = HoneyDueExtension.entitlements;
CODE_SIGN_IDENTITY = "Apple Development";
CODE_SIGN_STYLE = Automatic;
CURRENT_PROJECT_VERSION = 1;
- DEVELOPMENT_TEAM = V3PF3M6B6U;
+ DEVELOPMENT_TEAM = X86BR9WTLD;
ENABLE_USER_SCRIPT_SANDBOXING = NO;
GENERATE_INFOPLIST_FILE = YES;
INFOPLIST_FILE = HoneyDue/Info.plist;
@@ -753,7 +754,7 @@
);
MARKETING_VERSION = 1.0;
OTHER_SWIFT_FLAGS = "-DWIDGET_EXTENSION";
- PRODUCT_BUNDLE_IDENTIFIER = com.tt.honeyDue.HoneyDueExtension;
+ PRODUCT_BUNDLE_IDENTIFIER = com.myhoneydue.honeyDue.HoneyDueExtension;
PRODUCT_NAME = "$(TARGET_NAME)";
SKIP_INSTALL = YES;
STRING_CATALOG_GENERATE_SYMBOLS = YES;
@@ -772,12 +773,12 @@
BUNDLE_LOADER = "$(TEST_HOST)";
CODE_SIGN_STYLE = Automatic;
CURRENT_PROJECT_VERSION = 1;
- DEVELOPMENT_TEAM = V3PF3M6B6U;
+ DEVELOPMENT_TEAM = X86BR9WTLD;
ENABLE_USER_SCRIPT_SANDBOXING = YES;
GENERATE_INFOPLIST_FILE = YES;
IPHONEOS_DEPLOYMENT_TARGET = 26.1;
MARKETING_VERSION = 1.0;
- PRODUCT_BUNDLE_IDENTIFIER = com.tt.HoneyDueTests;
+ PRODUCT_BUNDLE_IDENTIFIER = com.myhoneydue.HoneyDueTests;
PRODUCT_NAME = "$(TARGET_NAME)";
STRING_CATALOG_GENERATE_SYMBOLS = NO;
SWIFT_APPROACHABLE_CONCURRENCY = YES;
@@ -798,12 +799,12 @@
BUNDLE_LOADER = "$(TEST_HOST)";
CODE_SIGN_STYLE = Automatic;
CURRENT_PROJECT_VERSION = 1;
- DEVELOPMENT_TEAM = V3PF3M6B6U;
+ DEVELOPMENT_TEAM = X86BR9WTLD;
ENABLE_USER_SCRIPT_SANDBOXING = YES;
GENERATE_INFOPLIST_FILE = YES;
IPHONEOS_DEPLOYMENT_TARGET = 26.1;
MARKETING_VERSION = 1.0;
- PRODUCT_BUNDLE_IDENTIFIER = com.tt.HoneyDueTests;
+ PRODUCT_BUNDLE_IDENTIFIER = com.myhoneydue.HoneyDueTests;
PRODUCT_NAME = "$(TARGET_NAME)";
STRING_CATALOG_GENERATE_SYMBOLS = NO;
SWIFT_APPROACHABLE_CONCURRENCY = YES;
@@ -823,7 +824,7 @@
CODE_SIGN_IDENTITY = "Apple Development";
CODE_SIGN_STYLE = Automatic;
CURRENT_PROJECT_VERSION = 1;
- DEVELOPMENT_TEAM = V3PF3M6B6U;
+ DEVELOPMENT_TEAM = X86BR9WTLD;
ENABLE_USER_SCRIPT_SANDBOXING = YES;
GENERATE_INFOPLIST_FILE = YES;
INFOPLIST_FILE = HoneyDueQLPreview/Info.plist;
@@ -836,7 +837,7 @@
"@executable_path/../../Frameworks",
);
MARKETING_VERSION = 1.0;
- PRODUCT_BUNDLE_IDENTIFIER = com.tt.honeyDue.dev.HoneyDueQLPreview;
+ PRODUCT_BUNDLE_IDENTIFIER = com.myhoneydue.honeyDue.dev.HoneyDueQLPreview;
PRODUCT_NAME = "$(TARGET_NAME)";
SKIP_INSTALL = YES;
STRING_CATALOG_GENERATE_SYMBOLS = YES;
@@ -854,7 +855,7 @@
CODE_SIGN_IDENTITY = "Apple Development";
CODE_SIGN_STYLE = Automatic;
CURRENT_PROJECT_VERSION = 1;
- DEVELOPMENT_TEAM = V3PF3M6B6U;
+ DEVELOPMENT_TEAM = X86BR9WTLD;
ENABLE_USER_SCRIPT_SANDBOXING = YES;
GENERATE_INFOPLIST_FILE = YES;
INFOPLIST_FILE = HoneyDueQLPreview/Info.plist;
@@ -867,7 +868,7 @@
"@executable_path/../../Frameworks",
);
MARKETING_VERSION = 1.0;
- PRODUCT_BUNDLE_IDENTIFIER = com.tt.honeyDue.HoneyDueQLPreview;
+ PRODUCT_BUNDLE_IDENTIFIER = com.myhoneydue.honeyDue.HoneyDueQLPreview;
PRODUCT_NAME = "$(TARGET_NAME)";
SKIP_INSTALL = YES;
STRING_CATALOG_GENERATE_SYMBOLS = YES;
@@ -885,7 +886,7 @@
CODE_SIGN_IDENTITY = "Apple Development";
CODE_SIGN_STYLE = Automatic;
CURRENT_PROJECT_VERSION = 1;
- DEVELOPMENT_TEAM = V3PF3M6B6U;
+ DEVELOPMENT_TEAM = X86BR9WTLD;
ENABLE_USER_SCRIPT_SANDBOXING = YES;
GENERATE_INFOPLIST_FILE = YES;
INFOPLIST_FILE = HoneyDueQLThumbnail/Info.plist;
@@ -898,7 +899,7 @@
"@executable_path/../../Frameworks",
);
MARKETING_VERSION = 1.0;
- PRODUCT_BUNDLE_IDENTIFIER = com.tt.honeyDue.dev.HoneyDueQLThumbnail;
+ PRODUCT_BUNDLE_IDENTIFIER = com.myhoneydue.honeyDue.dev.HoneyDueQLThumbnail;
PRODUCT_NAME = "$(TARGET_NAME)";
SKIP_INSTALL = YES;
STRING_CATALOG_GENERATE_SYMBOLS = YES;
@@ -916,7 +917,7 @@
CODE_SIGN_IDENTITY = "Apple Development";
CODE_SIGN_STYLE = Automatic;
CURRENT_PROJECT_VERSION = 1;
- DEVELOPMENT_TEAM = V3PF3M6B6U;
+ DEVELOPMENT_TEAM = X86BR9WTLD;
ENABLE_USER_SCRIPT_SANDBOXING = YES;
GENERATE_INFOPLIST_FILE = YES;
INFOPLIST_FILE = HoneyDueQLThumbnail/Info.plist;
@@ -929,7 +930,7 @@
"@executable_path/../../Frameworks",
);
MARKETING_VERSION = 1.0;
- PRODUCT_BUNDLE_IDENTIFIER = com.tt.honeyDue.HoneyDueQLThumbnail;
+ PRODUCT_BUNDLE_IDENTIFIER = com.myhoneydue.honeyDue.HoneyDueQLThumbnail;
PRODUCT_NAME = "$(TARGET_NAME)";
SKIP_INSTALL = YES;
STRING_CATALOG_GENERATE_SYMBOLS = YES;
@@ -946,13 +947,13 @@
buildSettings = {
CODE_SIGN_STYLE = Automatic;
CURRENT_PROJECT_VERSION = 1;
- DEVELOPMENT_TEAM = V3PF3M6B6U;
+ DEVELOPMENT_TEAM = X86BR9WTLD;
ENABLE_USER_SCRIPT_SANDBOXING = YES;
GENERATE_INFOPLIST_FILE = YES;
IPHONEOS_DEPLOYMENT_TARGET = 26.1;
MACOSX_DEPLOYMENT_TARGET = 26.1;
MARKETING_VERSION = 1.0;
- PRODUCT_BUNDLE_IDENTIFIER = com.tt.HoneyDueUITests;
+ PRODUCT_BUNDLE_IDENTIFIER = com.myhoneydue.HoneyDueUITests;
PRODUCT_NAME = "$(TARGET_NAME)";
SDKROOT = auto;
STRING_CATALOG_GENERATE_SYMBOLS = NO;
@@ -972,13 +973,13 @@
buildSettings = {
CODE_SIGN_STYLE = Automatic;
CURRENT_PROJECT_VERSION = 1;
- DEVELOPMENT_TEAM = V3PF3M6B6U;
+ DEVELOPMENT_TEAM = X86BR9WTLD;
ENABLE_USER_SCRIPT_SANDBOXING = YES;
GENERATE_INFOPLIST_FILE = YES;
IPHONEOS_DEPLOYMENT_TARGET = 26.1;
MACOSX_DEPLOYMENT_TARGET = 26.1;
MARKETING_VERSION = 1.0;
- PRODUCT_BUNDLE_IDENTIFIER = com.tt.HoneyDueUITests;
+ PRODUCT_BUNDLE_IDENTIFIER = com.myhoneydue.HoneyDueUITests;
PRODUCT_NAME = "$(TARGET_NAME)";
SDKROOT = auto;
STRING_CATALOG_GENERATE_SYMBOLS = NO;
@@ -1121,7 +1122,7 @@
E767E942685C7832D51FF978 /* Debug */ = {
isa = XCBuildConfiguration;
buildSettings = {
- APP_GROUP_IDENTIFIER = group.com.tt.honeyDue.dev;
+ APP_GROUP_IDENTIFIER = group.com.myhoneydue.honeyDue.dev;
ARCHS = arm64;
ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
ASSETCATALOG_COMPILER_GLOBAL_ACCENT_COLOR_NAME = AccentColor;
@@ -1129,14 +1130,15 @@
CODE_SIGN_IDENTITY = "Apple Development";
CODE_SIGN_STYLE = Automatic;
DEVELOPMENT_ASSET_PATHS = "\"iosApp/Preview Content\"";
- DEVELOPMENT_TEAM = V3PF3M6B6U;
+ DEVELOPMENT_TEAM = X86BR9WTLD;
ENABLE_PREVIEWS = YES;
GENERATE_INFOPLIST_FILE = YES;
INFOPLIST_FILE = iosApp/Info.plist;
INFOPLIST_KEY_ITSAppUsesNonExemptEncryption = NO;
INFOPLIST_KEY_LSSupportsOpeningDocumentsInPlace = NO;
- INFOPLIST_KEY_NSCameraUsageDescription = "honeyDue needs access to your camera to take photos of completed tasks";
- INFOPLIST_KEY_NSPhotoLibraryUsageDescription = "honeyDue needs access to your photo library to select photos of completed tasks";
+ INFOPLIST_KEY_NSCameraUsageDescription = "honeyDue needs camera access to take photos of tasks, documents, and receipts.";
+ INFOPLIST_KEY_NSPhotoLibraryAddUsageDescription = "honeyDue needs permission to save photos to your library.";
+ INFOPLIST_KEY_NSPhotoLibraryUsageDescription = "honeyDue needs photo library access to attach photos to tasks and documents.";
INFOPLIST_KEY_UIApplicationSceneManifest_Generation = YES;
INFOPLIST_KEY_UIApplicationSupportsIndirectInputEvents = YES;
INFOPLIST_KEY_UILaunchScreen_Generation = YES;
@@ -1146,7 +1148,7 @@
"$(inherited)",
"@executable_path/Frameworks",
);
- PRODUCT_BUNDLE_IDENTIFIER = com.tt.honeyDue.dev;
+ PRODUCT_BUNDLE_IDENTIFIER = com.myhoneydue.honeyDue.dev;
SWIFT_EMIT_LOC_STRINGS = YES;
SWIFT_VERSION = 5.0;
TARGETED_DEVICE_FAMILY = "1,2";
diff --git a/iosApp/iosApp/Background/BackgroundTaskManager.swift b/iosApp/iosApp/Background/BackgroundTaskManager.swift
index 4814c03..2d90bea 100644
--- a/iosApp/iosApp/Background/BackgroundTaskManager.swift
+++ b/iosApp/iosApp/Background/BackgroundTaskManager.swift
@@ -16,7 +16,7 @@ final class BackgroundTaskManager {
static let shared = BackgroundTaskManager()
/// Background task identifier - must match Info.plist BGTaskSchedulerPermittedIdentifiers
- static let taskIdentifier = "com.tt.honeyDue.refresh"
+ static let taskIdentifier = "com.myhoneydue.honeyDue.refresh"
/// Time window for overnight refresh (12:00 AM - 4:00 AM)
private let refreshWindowStartHour = 0 // 12:00 AM
@@ -187,7 +187,7 @@ final class BackgroundTaskManager {
/// Force a background refresh for testing (only works in debug builds with Xcode)
/// Usage: In Xcode debugger console:
- /// e -l objc -- (void)[[BGTaskScheduler sharedScheduler] _simulateLaunchForTaskWithIdentifier:@"com.tt.honeyDue.refresh"]
+ /// e -l objc -- (void)[[BGTaskScheduler sharedScheduler] _simulateLaunchForTaskWithIdentifier:@"com.myhoneydue.honeyDue.refresh"]
func debugInfo() -> String {
return """
Background Task Debug Info:
diff --git a/iosApp/iosApp/Helpers/ThemeManager.swift b/iosApp/iosApp/Helpers/ThemeManager.swift
index 58cd76f..5bb11b3 100644
--- a/iosApp/iosApp/Helpers/ThemeManager.swift
+++ b/iosApp/iosApp/Helpers/ThemeManager.swift
@@ -61,7 +61,7 @@ enum ThemeID: String, CaseIterable, Codable {
// MARK: - Shared App Group UserDefaults
private let appGroupID: String = {
- Bundle.main.infoDictionary?["AppGroupIdentifier"] as? String ?? "group.com.tt.honeyDue.dev"
+ Bundle.main.infoDictionary?["AppGroupIdentifier"] as? String ?? "group.com.myhoneydue.honeyDue.dev"
}()
private let sharedDefaults: UserDefaults = {
guard let defaults = UserDefaults(suiteName: appGroupID) else {
diff --git a/iosApp/iosApp/Helpers/WidgetDataManager.swift b/iosApp/iosApp/Helpers/WidgetDataManager.swift
index 29e2895..c89847a 100644
--- a/iosApp/iosApp/Helpers/WidgetDataManager.swift
+++ b/iosApp/iosApp/Helpers/WidgetDataManager.swift
@@ -21,7 +21,7 @@ final class WidgetDataManager {
static let cancelledColumn = "cancelled_tasks"
private let appGroupIdentifier: String = {
- Bundle.main.infoDictionary?["AppGroupIdentifier"] as? String ?? "group.com.tt.honeyDue.dev"
+ Bundle.main.infoDictionary?["AppGroupIdentifier"] as? String ?? "group.com.myhoneydue.honeyDue.dev"
}()
private let tasksFileName = "widget_tasks.json"
private let actionsFileName = "widget_pending_actions.json"
diff --git a/iosApp/iosApp/Info.plist b/iosApp/iosApp/Info.plist
index 2b50435..bc057c5 100644
--- a/iosApp/iosApp/Info.plist
+++ b/iosApp/iosApp/Info.plist
@@ -6,14 +6,8 @@
$(APP_GROUP_IDENTIFIER)
BGTaskSchedulerPermittedIdentifiers
- com.tt.honeyDue.refresh
+ com.myhoneydue.honeyDue.refresh
- HONEYDUE_IAP_ANNUAL_PRODUCT_ID
- com.tt.honeyDue.pro.annual
- HONEYDUE_IAP_MONTHLY_PRODUCT_ID
- com.tt.honeyDue.pro.monthly
- HONEYDUE_GOOGLE_WEB_CLIENT_ID
-
CFBundleDocumentTypes
@@ -40,17 +34,17 @@
+ HONEYDUE_GOOGLE_WEB_CLIENT_ID
+
+ HONEYDUE_IAP_ANNUAL_PRODUCT_ID
+ com.myhoneydue.honeyDue.pro.annual
+ HONEYDUE_IAP_MONTHLY_PRODUCT_ID
+ com.myhoneydue.honeyDue.pro.monthly
NSAppTransportSecurity
NSAllowsLocalNetworking
- NSCameraUsageDescription
- honeyDue needs camera access to take photos of tasks, documents, and receipts.
- NSPhotoLibraryUsageDescription
- honeyDue needs photo library access to attach photos to tasks and documents.
- NSPhotoLibraryAddUsageDescription
- honeyDue needs permission to save photos to your library.
UIBackgroundModes
remote-notification
diff --git a/iosApp/iosApp/Localizable.xcstrings b/iosApp/iosApp/Localizable.xcstrings
index b2d91aa..1826e42 100644
--- a/iosApp/iosApp/Localizable.xcstrings
+++ b/iosApp/iosApp/Localizable.xcstrings
@@ -74,6 +74,18 @@
}
}
},
+ "%@, %@, %lld%% match" : {
+ "comment" : "A row that displays a suggestion with a title, frequency, and relevance percentage.",
+ "isCommentAutoGenerated" : true,
+ "localizations" : {
+ "en" : {
+ "stringUnit" : {
+ "state" : "new",
+ "value" : "%1$@, %2$@, %3$lld%% match"
+ }
+ }
+ }
+ },
"%@, %@%@" : {
"comment" : "A button that displays the name of a product and its price.",
"isCommentAutoGenerated" : true,
@@ -154,6 +166,10 @@
}
}
},
+ "%lld%%" : {
+ "comment" : "A badge that shows the relevance of a suggestion. The argument is the relevance percentage.",
+ "isCommentAutoGenerated" : true
+ },
"•" : {
"comment" : "A separator between different pieces of information in a text.",
"isCommentAutoGenerated" : true
@@ -221,9 +237,6 @@
},
"Add document" : {
- },
- "Add Most Popular" : {
-
},
"Add new property" : {
"comment" : "A label displayed as a button in the toolbar.",
@@ -17684,10 +17697,6 @@
"comment" : "A button that generates a new share code.",
"isCommentAutoGenerated" : true
},
- "Generating suggestions..." : {
- "comment" : "Text displayed while the app is generating personalized task suggestions.",
- "isCommentAutoGenerated" : true
- },
"Get notified when someone joins your property" : {
},
@@ -17710,16 +17719,8 @@
"comment" : "A label for the back button.",
"isCommentAutoGenerated" : true
},
- "Good match" : {
- "comment" : "A label describing a task's relevance.",
- "isCommentAutoGenerated" : true
- },
"Google Sign-In Error" : {
- },
- "Great match" : {
- "comment" : "A label describing a high-relevance task.",
- "isCommentAutoGenerated" : true
},
"Help improve honeyDue by sharing anonymous usage data" : {
@@ -17862,10 +17863,6 @@
},
"No personal data is collected. Analytics are fully anonymous." : {
- },
- "No personalized suggestions yet" : {
- "comment" : "A message displayed when the user has not yet been personalized.",
- "isCommentAutoGenerated" : true
},
"No properties yet" : {
@@ -25444,6 +25441,10 @@
"comment" : "A button label that allows users to skip the current onboarding step.",
"isCommentAutoGenerated" : true
},
+ "Skip for now" : {
+ "comment" : "A button label that skips onboarding.",
+ "isCommentAutoGenerated" : true
+ },
"Skip for Now" : {
},
@@ -30617,10 +30618,6 @@
"comment" : "A button label that says \"Try Again\".",
"isCommentAutoGenerated" : true
},
- "Try the Browse tab to explore tasks by category,\nor add home details for better suggestions." : {
- "comment" : "A description of the benefits of using the",
- "isCommentAutoGenerated" : true
- },
"Unarchive" : {
"comment" : "A button that unarchives a task.",
"isCommentAutoGenerated" : true
diff --git a/iosApp/iosApp/Shared/Utilities/KeychainHelper.swift b/iosApp/iosApp/Shared/Utilities/KeychainHelper.swift
index 3562edf..96157c2 100644
--- a/iosApp/iosApp/Shared/Utilities/KeychainHelper.swift
+++ b/iosApp/iosApp/Shared/Utilities/KeychainHelper.swift
@@ -7,7 +7,7 @@ import ComposeApp
final class KeychainHelper: NSObject, KeychainDelegate {
static let shared = KeychainHelper()
- private let service = "com.tt.honeyDue"
+ private let service = "com.myhoneydue.honeyDue"
func save(key: String, value: String) -> Bool {
guard let data = value.data(using: .utf8) else { return false }
diff --git a/iosApp/iosApp/Subscription/StoreKitManager.swift b/iosApp/iosApp/Subscription/StoreKitManager.swift
index 44b2e83..f5561df 100644
--- a/iosApp/iosApp/Subscription/StoreKitManager.swift
+++ b/iosApp/iosApp/Subscription/StoreKitManager.swift
@@ -14,8 +14,8 @@ class StoreKitManager: ObservableObject {
// Canonical source: SubscriptionProducts in commonMain (Kotlin shared code).
// Keep these in sync with SubscriptionProducts.MONTHLY / SubscriptionProducts.ANNUAL.
private let fallbackProductIDs = [
- "com.tt.honeyDue.pro.monthly",
- "com.tt.honeyDue.pro.annual"
+ "com.myhoneydue.honeyDue.pro.monthly",
+ "com.myhoneydue.honeyDue.pro.annual"
]
private var configuredProductIDs: [String] {