Signed-off-by: Matt Bruce <mbrucedogs@gmail.com>
This commit is contained in:
parent
c081d3c86a
commit
e0d7fa750f
@ -449,7 +449,7 @@
|
|||||||
CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
|
CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
|
||||||
COPY_PHASE_STRIP = NO;
|
COPY_PHASE_STRIP = NO;
|
||||||
DEBUG_INFORMATION_FORMAT = dwarf;
|
DEBUG_INFORMATION_FORMAT = dwarf;
|
||||||
DEVELOPMENT_TEAM = 6R7KLBPBLZ;
|
DEVELOPMENT_TEAM = "$(DEVELOPMENT_TEAM)";
|
||||||
ENABLE_STRICT_OBJC_MSGSEND = YES;
|
ENABLE_STRICT_OBJC_MSGSEND = YES;
|
||||||
ENABLE_TESTABILITY = YES;
|
ENABLE_TESTABILITY = YES;
|
||||||
ENABLE_USER_SCRIPT_SANDBOXING = YES;
|
ENABLE_USER_SCRIPT_SANDBOXING = YES;
|
||||||
@ -561,8 +561,8 @@
|
|||||||
"@executable_path/Frameworks",
|
"@executable_path/Frameworks",
|
||||||
);
|
);
|
||||||
MARKETING_VERSION = 1.1;
|
MARKETING_VERSION = 1.1;
|
||||||
PRODUCT_BUNDLE_IDENTIFIER = com.mbrucedogs.Andromida;
|
PRODUCT_BUNDLE_IDENTIFIER = "$(APP_BUNDLE_IDENTIFIER)";
|
||||||
PRODUCT_NAME = "$(TARGET_NAME)";
|
PRODUCT_NAME = "$(PRODUCT_NAME)";
|
||||||
STRING_CATALOG_GENERATE_SYMBOLS = YES;
|
STRING_CATALOG_GENERATE_SYMBOLS = YES;
|
||||||
SWIFT_APPROACHABLE_CONCURRENCY = YES;
|
SWIFT_APPROACHABLE_CONCURRENCY = YES;
|
||||||
SWIFT_DEFAULT_ACTOR_ISOLATION = MainActor;
|
SWIFT_DEFAULT_ACTOR_ISOLATION = MainActor;
|
||||||
@ -597,8 +597,8 @@
|
|||||||
"@executable_path/Frameworks",
|
"@executable_path/Frameworks",
|
||||||
);
|
);
|
||||||
MARKETING_VERSION = 1.1;
|
MARKETING_VERSION = 1.1;
|
||||||
PRODUCT_BUNDLE_IDENTIFIER = com.mbrucedogs.Andromida;
|
PRODUCT_BUNDLE_IDENTIFIER = "$(APP_BUNDLE_IDENTIFIER)";
|
||||||
PRODUCT_NAME = "$(TARGET_NAME)";
|
PRODUCT_NAME = "$(PRODUCT_NAME)";
|
||||||
STRING_CATALOG_GENERATE_SYMBOLS = YES;
|
STRING_CATALOG_GENERATE_SYMBOLS = YES;
|
||||||
SWIFT_APPROACHABLE_CONCURRENCY = YES;
|
SWIFT_APPROACHABLE_CONCURRENCY = YES;
|
||||||
SWIFT_DEFAULT_ACTOR_ISOLATION = MainActor;
|
SWIFT_DEFAULT_ACTOR_ISOLATION = MainActor;
|
||||||
@ -621,7 +621,7 @@
|
|||||||
GENERATE_INFOPLIST_FILE = YES;
|
GENERATE_INFOPLIST_FILE = YES;
|
||||||
IPHONEOS_DEPLOYMENT_TARGET = 26.2;
|
IPHONEOS_DEPLOYMENT_TARGET = 26.2;
|
||||||
MARKETING_VERSION = 1.1;
|
MARKETING_VERSION = 1.1;
|
||||||
PRODUCT_BUNDLE_IDENTIFIER = com.mbrucedogs.AndromidaTests;
|
PRODUCT_BUNDLE_IDENTIFIER = "$(TESTS_BUNDLE_IDENTIFIER)";
|
||||||
PRODUCT_NAME = "$(TARGET_NAME)";
|
PRODUCT_NAME = "$(TARGET_NAME)";
|
||||||
STRING_CATALOG_GENERATE_SYMBOLS = NO;
|
STRING_CATALOG_GENERATE_SYMBOLS = NO;
|
||||||
SWIFT_APPROACHABLE_CONCURRENCY = YES;
|
SWIFT_APPROACHABLE_CONCURRENCY = YES;
|
||||||
@ -645,7 +645,7 @@
|
|||||||
GENERATE_INFOPLIST_FILE = YES;
|
GENERATE_INFOPLIST_FILE = YES;
|
||||||
IPHONEOS_DEPLOYMENT_TARGET = 26.2;
|
IPHONEOS_DEPLOYMENT_TARGET = 26.2;
|
||||||
MARKETING_VERSION = 1.1;
|
MARKETING_VERSION = 1.1;
|
||||||
PRODUCT_BUNDLE_IDENTIFIER = com.mbrucedogs.AndromidaTests;
|
PRODUCT_BUNDLE_IDENTIFIER = "$(TESTS_BUNDLE_IDENTIFIER)";
|
||||||
PRODUCT_NAME = "$(TARGET_NAME)";
|
PRODUCT_NAME = "$(TARGET_NAME)";
|
||||||
STRING_CATALOG_GENERATE_SYMBOLS = NO;
|
STRING_CATALOG_GENERATE_SYMBOLS = NO;
|
||||||
SWIFT_APPROACHABLE_CONCURRENCY = YES;
|
SWIFT_APPROACHABLE_CONCURRENCY = YES;
|
||||||
@ -667,7 +667,7 @@
|
|||||||
DEVELOPMENT_TEAM = 6R7KLBPBLZ;
|
DEVELOPMENT_TEAM = 6R7KLBPBLZ;
|
||||||
GENERATE_INFOPLIST_FILE = YES;
|
GENERATE_INFOPLIST_FILE = YES;
|
||||||
MARKETING_VERSION = 1.1;
|
MARKETING_VERSION = 1.1;
|
||||||
PRODUCT_BUNDLE_IDENTIFIER = com.mbrucedogs.AndromidaUITests;
|
PRODUCT_BUNDLE_IDENTIFIER = "$(UITESTS_BUNDLE_IDENTIFIER)";
|
||||||
PRODUCT_NAME = "$(TARGET_NAME)";
|
PRODUCT_NAME = "$(TARGET_NAME)";
|
||||||
STRING_CATALOG_GENERATE_SYMBOLS = NO;
|
STRING_CATALOG_GENERATE_SYMBOLS = NO;
|
||||||
SWIFT_APPROACHABLE_CONCURRENCY = YES;
|
SWIFT_APPROACHABLE_CONCURRENCY = YES;
|
||||||
@ -689,7 +689,7 @@
|
|||||||
DEVELOPMENT_TEAM = 6R7KLBPBLZ;
|
DEVELOPMENT_TEAM = 6R7KLBPBLZ;
|
||||||
GENERATE_INFOPLIST_FILE = YES;
|
GENERATE_INFOPLIST_FILE = YES;
|
||||||
MARKETING_VERSION = 1.1;
|
MARKETING_VERSION = 1.1;
|
||||||
PRODUCT_BUNDLE_IDENTIFIER = com.mbrucedogs.AndromidaUITests;
|
PRODUCT_BUNDLE_IDENTIFIER = "$(UITESTS_BUNDLE_IDENTIFIER)";
|
||||||
PRODUCT_NAME = "$(TARGET_NAME)";
|
PRODUCT_NAME = "$(TARGET_NAME)";
|
||||||
STRING_CATALOG_GENERATE_SYMBOLS = NO;
|
STRING_CATALOG_GENERATE_SYMBOLS = NO;
|
||||||
SWIFT_APPROACHABLE_CONCURRENCY = YES;
|
SWIFT_APPROACHABLE_CONCURRENCY = YES;
|
||||||
@ -722,7 +722,7 @@
|
|||||||
"@executable_path/../../Frameworks",
|
"@executable_path/../../Frameworks",
|
||||||
);
|
);
|
||||||
MARKETING_VERSION = 1.1;
|
MARKETING_VERSION = 1.1;
|
||||||
PRODUCT_BUNDLE_IDENTIFIER = com.mbrucedogs.Andromida.AndromidaWidget;
|
PRODUCT_BUNDLE_IDENTIFIER = "$(WIDGET_BUNDLE_IDENTIFIER)";
|
||||||
PRODUCT_NAME = "$(TARGET_NAME)";
|
PRODUCT_NAME = "$(TARGET_NAME)";
|
||||||
SKIP_INSTALL = YES;
|
SKIP_INSTALL = YES;
|
||||||
STRING_CATALOG_GENERATE_SYMBOLS = YES;
|
STRING_CATALOG_GENERATE_SYMBOLS = YES;
|
||||||
@ -755,7 +755,7 @@
|
|||||||
"@executable_path/../../Frameworks",
|
"@executable_path/../../Frameworks",
|
||||||
);
|
);
|
||||||
MARKETING_VERSION = 1.1;
|
MARKETING_VERSION = 1.1;
|
||||||
PRODUCT_BUNDLE_IDENTIFIER = com.mbrucedogs.Andromida.AndromidaWidget;
|
PRODUCT_BUNDLE_IDENTIFIER = "$(WIDGET_BUNDLE_IDENTIFIER)";
|
||||||
PRODUCT_NAME = "$(TARGET_NAME)";
|
PRODUCT_NAME = "$(TARGET_NAME)";
|
||||||
SKIP_INSTALL = YES;
|
SKIP_INSTALL = YES;
|
||||||
STRING_CATALOG_GENERATE_SYMBOLS = YES;
|
STRING_CATALOG_GENERATE_SYMBOLS = YES;
|
||||||
|
|||||||
@ -16,7 +16,7 @@
|
|||||||
<BuildableReference
|
<BuildableReference
|
||||||
BuildableIdentifier = "primary"
|
BuildableIdentifier = "primary"
|
||||||
BlueprintIdentifier = "EAC04A972F26BAE8007F87EA"
|
BlueprintIdentifier = "EAC04A972F26BAE8007F87EA"
|
||||||
BuildableName = "Andromida.app"
|
BuildableName = "Rituals.app"
|
||||||
BlueprintName = "Andromida"
|
BlueprintName = "Andromida"
|
||||||
ReferencedContainer = "container:Andromida.xcodeproj">
|
ReferencedContainer = "container:Andromida.xcodeproj">
|
||||||
</BuildableReference>
|
</BuildableReference>
|
||||||
@ -45,7 +45,7 @@
|
|||||||
<BuildableReference
|
<BuildableReference
|
||||||
BuildableIdentifier = "primary"
|
BuildableIdentifier = "primary"
|
||||||
BlueprintIdentifier = "EAC04A972F26BAE8007F87EA"
|
BlueprintIdentifier = "EAC04A972F26BAE8007F87EA"
|
||||||
BuildableName = "Andromida.app"
|
BuildableName = "Rituals.app"
|
||||||
BlueprintName = "Andromida"
|
BlueprintName = "Andromida"
|
||||||
ReferencedContainer = "container:Andromida.xcodeproj">
|
ReferencedContainer = "container:Andromida.xcodeproj">
|
||||||
</BuildableReference>
|
</BuildableReference>
|
||||||
@ -62,7 +62,7 @@
|
|||||||
<BuildableReference
|
<BuildableReference
|
||||||
BuildableIdentifier = "primary"
|
BuildableIdentifier = "primary"
|
||||||
BlueprintIdentifier = "EAC04A972F26BAE8007F87EA"
|
BlueprintIdentifier = "EAC04A972F26BAE8007F87EA"
|
||||||
BuildableName = "Andromida.app"
|
BuildableName = "Rituals.app"
|
||||||
BlueprintName = "Andromida"
|
BlueprintName = "Andromida"
|
||||||
ReferencedContainer = "container:Andromida.xcodeproj">
|
ReferencedContainer = "container:Andromida.xcodeproj">
|
||||||
</BuildableReference>
|
</BuildableReference>
|
||||||
|
|||||||
@ -31,7 +31,7 @@
|
|||||||
<BuildableReference
|
<BuildableReference
|
||||||
BuildableIdentifier = "primary"
|
BuildableIdentifier = "primary"
|
||||||
BlueprintIdentifier = "EAC04A972F26BAE8007F87EA"
|
BlueprintIdentifier = "EAC04A972F26BAE8007F87EA"
|
||||||
BuildableName = "Andromida.app"
|
BuildableName = "Rituals.app"
|
||||||
BlueprintName = "Andromida"
|
BlueprintName = "Andromida"
|
||||||
ReferencedContainer = "container:Andromida.xcodeproj">
|
ReferencedContainer = "container:Andromida.xcodeproj">
|
||||||
</BuildableReference>
|
</BuildableReference>
|
||||||
@ -72,7 +72,7 @@
|
|||||||
<BuildableReference
|
<BuildableReference
|
||||||
BuildableIdentifier = "primary"
|
BuildableIdentifier = "primary"
|
||||||
BlueprintIdentifier = "EAC04A972F26BAE8007F87EA"
|
BlueprintIdentifier = "EAC04A972F26BAE8007F87EA"
|
||||||
BuildableName = "Andromida.app"
|
BuildableName = "Rituals.app"
|
||||||
BlueprintName = "Andromida"
|
BlueprintName = "Andromida"
|
||||||
ReferencedContainer = "container:Andromida.xcodeproj">
|
ReferencedContainer = "container:Andromida.xcodeproj">
|
||||||
</BuildableReference>
|
</BuildableReference>
|
||||||
@ -108,7 +108,7 @@
|
|||||||
<BuildableReference
|
<BuildableReference
|
||||||
BuildableIdentifier = "primary"
|
BuildableIdentifier = "primary"
|
||||||
BlueprintIdentifier = "EAC04A972F26BAE8007F87EA"
|
BlueprintIdentifier = "EAC04A972F26BAE8007F87EA"
|
||||||
BuildableName = "Andromida.app"
|
BuildableName = "Rituals.app"
|
||||||
BlueprintName = "Andromida"
|
BlueprintName = "Andromida"
|
||||||
ReferencedContainer = "container:Andromida.xcodeproj">
|
ReferencedContainer = "container:Andromida.xcodeproj">
|
||||||
</BuildableReference>
|
</BuildableReference>
|
||||||
|
|||||||
@ -9,6 +9,11 @@
|
|||||||
<key>orderHint</key>
|
<key>orderHint</key>
|
||||||
<integer>1</integer>
|
<integer>1</integer>
|
||||||
</dict>
|
</dict>
|
||||||
|
<key>AndromidaTests.xcscheme_^#shared#^_</key>
|
||||||
|
<dict>
|
||||||
|
<key>orderHint</key>
|
||||||
|
<integer>3</integer>
|
||||||
|
</dict>
|
||||||
<key>AndromidaWidgetExtension.xcscheme_^#shared#^_</key>
|
<key>AndromidaWidgetExtension.xcscheme_^#shared#^_</key>
|
||||||
<dict>
|
<dict>
|
||||||
<key>orderHint</key>
|
<key>orderHint</key>
|
||||||
|
|||||||
@ -12,6 +12,7 @@ struct AndromidaApp: App {
|
|||||||
|
|
||||||
/// Track if user just completed the wizard (to start on Rituals tab)
|
/// Track if user just completed the wizard (to start on Rituals tab)
|
||||||
@State private var justCompletedWizard = false
|
@State private var justCompletedWizard = false
|
||||||
|
@State private var isTransitioningToRoot = false
|
||||||
|
|
||||||
init() {
|
init() {
|
||||||
// Register app's color theme for Bedrock components
|
// Register app's color theme for Bedrock components
|
||||||
@ -55,14 +56,13 @@ struct AndromidaApp: App {
|
|||||||
|
|
||||||
if hasCompletedSetupWizard {
|
if hasCompletedSetupWizard {
|
||||||
// Main app - start on Rituals tab if just completed wizard
|
// Main app - start on Rituals tab if just completed wizard
|
||||||
AppLaunchView(config: .rituals) {
|
RootView(
|
||||||
RootView(
|
store: store,
|
||||||
store: store,
|
settingsStore: settingsStore,
|
||||||
settingsStore: settingsStore,
|
categoryStore: categoryStore,
|
||||||
categoryStore: categoryStore,
|
initialTab: justCompletedWizard ? .rituals : .today
|
||||||
initialTab: justCompletedWizard ? .rituals : .today
|
)
|
||||||
)
|
.transition(.opacity)
|
||||||
}
|
|
||||||
} else {
|
} else {
|
||||||
// First-run setup wizard
|
// First-run setup wizard
|
||||||
AppLaunchView(config: .rituals) {
|
AppLaunchView(config: .rituals) {
|
||||||
@ -72,7 +72,7 @@ struct AndromidaApp: App {
|
|||||||
reminderScheduler: store.reminderScheduler,
|
reminderScheduler: store.reminderScheduler,
|
||||||
onComplete: {
|
onComplete: {
|
||||||
justCompletedWizard = true
|
justCompletedWizard = true
|
||||||
withAnimation {
|
withAnimation(.easeInOut(duration: 0.5)) {
|
||||||
hasCompletedSetupWizard = true
|
hasCompletedSetupWizard = true
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@ -9,7 +9,7 @@ struct RootView: View {
|
|||||||
@State private var selectedTab: RootTab
|
@State private var selectedTab: RootTab
|
||||||
@State private var analyticsPrewarmTask: Task<Void, Never>?
|
@State private var analyticsPrewarmTask: Task<Void, Never>?
|
||||||
@State private var isForegroundRefreshing = false
|
@State private var isForegroundRefreshing = false
|
||||||
@State private var isResumingFromBackground = true
|
@State private var isResumingFromBackground = false
|
||||||
private let foregroundRefreshMinimumSeconds: TimeInterval = 0.15
|
private let foregroundRefreshMinimumSeconds: TimeInterval = 0.15
|
||||||
private let debugForegroundRefreshMinimumSeconds: TimeInterval = 0.8
|
private let debugForegroundRefreshMinimumSeconds: TimeInterval = 0.8
|
||||||
private let debugForegroundRefreshKey = "debugForegroundRefreshNextForeground"
|
private let debugForegroundRefreshKey = "debugForegroundRefreshNextForeground"
|
||||||
|
|||||||
@ -17,7 +17,14 @@ enum AppIdentifiers {
|
|||||||
Bundle.main.bundleIdentifier ?? "com.mbrucedogs.Andromida"
|
Bundle.main.bundleIdentifier ?? "com.mbrucedogs.Andromida"
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// User-facing app name
|
||||||
|
static let appName: String = {
|
||||||
|
Bundle.main.object(forInfoDictionaryKey: "CFBundleDisplayName") as? String
|
||||||
|
?? Bundle.main.object(forInfoDictionaryKey: "CFBundleName") as? String
|
||||||
|
?? "Rituals"
|
||||||
|
}()
|
||||||
|
|
||||||
static var widgetBundleIdentifier: String {
|
static var widgetBundleIdentifier: String {
|
||||||
"\(bundleIdentifier).Widget"
|
"\(bundleIdentifier).AndromidaWidget"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@ -6,20 +6,21 @@
|
|||||||
// =============================================================================
|
// =============================================================================
|
||||||
|
|
||||||
COMPANY_IDENTIFIER = com.mbrucedogs
|
COMPANY_IDENTIFIER = com.mbrucedogs
|
||||||
APP_NAME = Andromida
|
BUNDLE_ID_NAME = Andromida
|
||||||
DEVELOPMENT_TEAM = // Add your Team ID here if needed
|
PRODUCT_NAME = Rituals
|
||||||
|
DEVELOPMENT_TEAM = 6R7KLBPBLZ
|
||||||
|
|
||||||
// =============================================================================
|
// =============================================================================
|
||||||
// DERIVED IDENTIFIERS - DO NOT EDIT
|
// DERIVED IDENTIFIERS - DO NOT EDIT
|
||||||
// =============================================================================
|
// =============================================================================
|
||||||
|
|
||||||
APP_BUNDLE_IDENTIFIER = $(COMPANY_IDENTIFIER).$(APP_NAME)
|
APP_BUNDLE_IDENTIFIER = $(COMPANY_IDENTIFIER).$(BUNDLE_ID_NAME)
|
||||||
WATCH_BUNDLE_IDENTIFIER = $(APP_BUNDLE_IDENTIFIER).watchkitapp
|
WATCH_BUNDLE_IDENTIFIER = $(APP_BUNDLE_IDENTIFIER).watchkitapp
|
||||||
APPCLIP_BUNDLE_IDENTIFIER = $(APP_BUNDLE_IDENTIFIER).Clip
|
APPCLIP_BUNDLE_IDENTIFIER = $(APP_BUNDLE_IDENTIFIER).Clip
|
||||||
WIDGET_BUNDLE_IDENTIFIER = $(APP_BUNDLE_IDENTIFIER).Widget
|
WIDGET_BUNDLE_IDENTIFIER = $(APP_BUNDLE_IDENTIFIER).AndromidaWidget
|
||||||
INTENT_BUNDLE_IDENTIFIER = $(APP_BUNDLE_IDENTIFIER).Intent
|
INTENT_BUNDLE_IDENTIFIER = $(APP_BUNDLE_IDENTIFIER).Intent
|
||||||
TESTS_BUNDLE_IDENTIFIER = $(COMPANY_IDENTIFIER).$(APP_NAME)Tests
|
TESTS_BUNDLE_IDENTIFIER = $(COMPANY_IDENTIFIER).$(BUNDLE_ID_NAME)Tests
|
||||||
UITESTS_BUNDLE_IDENTIFIER = $(COMPANY_IDENTIFIER).$(APP_NAME)UITests
|
UITESTS_BUNDLE_IDENTIFIER = $(COMPANY_IDENTIFIER).$(BUNDLE_ID_NAME)UITests
|
||||||
|
|
||||||
APP_GROUP_IDENTIFIER = group.$(COMPANY_IDENTIFIER).$(APP_NAME)
|
APP_GROUP_IDENTIFIER = group.$(COMPANY_IDENTIFIER).$(BUNDLE_ID_NAME)
|
||||||
CLOUDKIT_CONTAINER_IDENTIFIER = iCloud.$(COMPANY_IDENTIFIER).$(APP_NAME)
|
CLOUDKIT_CONTAINER_IDENTIFIER = iCloud.$(COMPANY_IDENTIFIER).$(BUNDLE_ID_NAME)
|
||||||
|
|||||||
@ -7,9 +7,9 @@
|
|||||||
<key>NSExtensionPointIdentifier</key>
|
<key>NSExtensionPointIdentifier</key>
|
||||||
<string>com.apple.widgetkit-extension</string>
|
<string>com.apple.widgetkit-extension</string>
|
||||||
</dict>
|
</dict>
|
||||||
<key>AppGroupIdentifier</key>
|
|
||||||
<string>$(APP_GROUP_IDENTIFIER)</string>
|
|
||||||
<key>CloudKitContainerIdentifier</key>
|
<key>CloudKitContainerIdentifier</key>
|
||||||
<string>$(CLOUDKIT_CONTAINER_IDENTIFIER)</string>
|
<string>$(CLOUDKIT_CONTAINER_IDENTIFIER)</string>
|
||||||
|
<key>AppGroupIdentifier</key>
|
||||||
|
<string>$(APP_GROUP_IDENTIFIER)</string>
|
||||||
</dict>
|
</dict>
|
||||||
</plist>
|
</plist>
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user