fix: build cleanups

This commit is contained in:
Michael Freno
2026-01-11 19:22:11 -05:00
parent f3b4095ba9
commit 1b55d82bc2
7 changed files with 38 additions and 23 deletions

View File

@@ -34,9 +34,22 @@
27A21B532F0F69DD0018C4F3 /* GazeUITests.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = GazeUITests.xctest; sourceTree = BUILT_PRODUCTS_DIR; }; 27A21B532F0F69DD0018C4F3 /* GazeUITests.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = GazeUITests.xctest; sourceTree = BUILT_PRODUCTS_DIR; };
/* End PBXFileReference section */ /* End PBXFileReference section */
/* Begin PBXFileSystemSynchronizedBuildFileExceptionSet section */
270D22E92F1474F1008BCE42 /* Exceptions for "Gaze" folder in "Gaze" target */ = {
isa = PBXFileSystemSynchronizedBuildFileExceptionSet;
membershipExceptions = (
Info.plist,
);
target = 27A21B3B2F0F69DC0018C4F3 /* Gaze */;
};
/* End PBXFileSystemSynchronizedBuildFileExceptionSet section */
/* Begin PBXFileSystemSynchronizedRootGroup section */ /* Begin PBXFileSystemSynchronizedRootGroup section */
27A21B3E2F0F69DC0018C4F3 /* Gaze */ = { 27A21B3E2F0F69DC0018C4F3 /* Gaze */ = {
isa = PBXFileSystemSynchronizedRootGroup; isa = PBXFileSystemSynchronizedRootGroup;
exceptions = (
270D22E92F1474F1008BCE42 /* Exceptions for "Gaze" folder in "Gaze" target */,
);
path = Gaze; path = Gaze;
sourceTree = "<group>"; sourceTree = "<group>";
}; };
@@ -418,7 +431,7 @@
ENABLE_PREVIEWS = YES; ENABLE_PREVIEWS = YES;
GENERATE_INFOPLIST_FILE = NO; GENERATE_INFOPLIST_FILE = NO;
INFOPLIST_FILE = Gaze/Info.plist; INFOPLIST_FILE = Gaze/Info.plist;
INFOPLIST_KEY_LSApplicationCategoryType = "public.app-category.healthcare-fitness"; INFOPLIST_KEY_LSApplicationCategoryType = "public.app-category.productivity";
INFOPLIST_KEY_NSHumanReadableCopyright = ""; INFOPLIST_KEY_NSHumanReadableCopyright = "";
LD_RUNPATH_SEARCH_PATHS = ( LD_RUNPATH_SEARCH_PATHS = (
"$(inherited)", "$(inherited)",
@@ -454,7 +467,7 @@
ENABLE_PREVIEWS = YES; ENABLE_PREVIEWS = YES;
GENERATE_INFOPLIST_FILE = NO; GENERATE_INFOPLIST_FILE = NO;
INFOPLIST_FILE = Gaze/Info.plist; INFOPLIST_FILE = Gaze/Info.plist;
INFOPLIST_KEY_LSApplicationCategoryType = "public.app-category.healthcare-fitness"; INFOPLIST_KEY_LSApplicationCategoryType = "public.app-category.productivity";
INFOPLIST_KEY_NSHumanReadableCopyright = ""; INFOPLIST_KEY_NSHumanReadableCopyright = "";
LD_RUNPATH_SEARCH_PATHS = ( LD_RUNPATH_SEARCH_PATHS = (
"$(inherited)", "$(inherited)",

View File

@@ -227,17 +227,17 @@ class AppDelegate: NSObject, NSApplicationDelegate, ObservableObject {
DispatchQueue.main.asyncAfter(deadline: .now() + 0.1) { [weak self] in DispatchQueue.main.asyncAfter(deadline: .now() + 0.1) { [weak self] in
guard let self = self, let settingsManager = self.settingsManager else { return } guard let self = self, let settingsManager = self.settingsManager else { return }
// Check if onboarding window already exists from the WindowGroup // Check if onboarding window already exists from the WindowGroup
let existingWindow = NSApplication.shared.windows.first { window in let existingWindow = NSApplication.shared.windows.first { window in
// Check if window contains OnboardingContainerView by examining its content view // Check if window contains OnboardingContainerView by examining its content view
if let hostingView = window.contentView as? NSHostingView<OnboardingContainerView> { if window.contentView is NSHostingView<OnboardingContainerView> {
return true return true
} }
// Also check for windows with our expected size (onboarding window dimensions) // Also check for windows with our expected size (onboarding window dimensions)
return window.frame.size.width == 700 && window.frame.size.height == 700 return window.frame.size.width == 700 && window.frame.size.height == 700
&& window.styleMask.contains(.titled) && window.styleMask.contains(.titled)
&& window.title.isEmpty // WindowGroup windows have empty title by default && window.title.isEmpty // WindowGroup windows have empty title by default
} }
if let window = existingWindow { if let window = existingWindow {
// Reuse existing window - just bring it to front // Reuse existing window - just bring it to front

View File

@@ -241,13 +241,13 @@
{ {
"value" : { "value" : {
"linear-gradient" : [ "linear-gradient" : [
"srgb:0.00000,0.99144,1.00000,1.00000", "display-p3:0.38402,0.64824,1.04682,1.00000",
"display-p3:0.23132,0.52490,0.96777,1.00000" "display-p3:0.23132,0.52490,0.96777,1.00000"
], ],
"orientation" : { "orientation" : {
"start" : { "start" : {
"x" : 0.06353251664956905, "x" : 0.0848494935047852,
"y" : 0.04636742178812686 "y" : 0.06691774417449506
}, },
"stop" : { "stop" : {
"x" : 0.5, "x" : 0.5,

View File

@@ -4,6 +4,8 @@
<dict> <dict>
<key>LSUIElement</key> <key>LSUIElement</key>
<true/> <true/>
<key>LSApplicationCategoryType</key>
<string>public.app-category.productivity</string>
<key>CFBundleName</key> <key>CFBundleName</key>
<string>Gaze</string> <string>Gaze</string>
<key>CFBundleDisplayName</key> <key>CFBundleDisplayName</key>

View File

@@ -115,7 +115,7 @@ struct SettingsWindowView: View {
} }
.padding() .padding()
} }
.frame(minWidth: 750, minHeight: 800) .frame(minWidth: 750, minHeight: 850)
.onReceive( .onReceive(
NotificationCenter.default.publisher(for: Notification.Name("SwitchToSettingsTab")) NotificationCenter.default.publisher(for: Notification.Name("SwitchToSettingsTab"))
) { notification in ) { notification in

View File

@@ -14,7 +14,7 @@ BUILD_NUMBER=$(grep -A 1 "CURRENT_PROJECT_VERSION" "$PROJECT_FILE" | grep -o '[0
# Fallback to manual values if extraction fails # Fallback to manual values if extraction fails
if [ -z "$VERSION" ]; then if [ -z "$VERSION" ]; then
echo "⚠️ Could not extract MARKETING_VERSION from project, using fallback" echo "⚠️ Could not extract MARKETING_VERSION from project, using fallback"
VERSION="0.1.1" VERSION="0.2.0"
fi fi
if [ -z "$BUILD_NUMBER" ]; then if [ -z "$BUILD_NUMBER" ]; then
@@ -22,7 +22,7 @@ if [ -z "$BUILD_NUMBER" ]; then
BUILD_NUMBER="1" BUILD_NUMBER="1"
fi fi
echo "📦 Building Gaze v${VERSION} (build ${BUILD_NUMBER})" echo "📦 Building Gaze DMG for v${VERSION} (build ${BUILD_NUMBER})"
RELEASES_DIR="./releases" RELEASES_DIR="./releases"
APPCAST_OUTPUT="${RELEASES_DIR}/appcast.xml" APPCAST_OUTPUT="${RELEASES_DIR}/appcast.xml"
@@ -57,8 +57,8 @@ create-dmg \
"./Gaze.app" "./Gaze.app"
# Copy DMG to releases directory # Copy DMG to releases directory
echo "Copying DMG to releases directory..." echo "Moving DMG to releases directory..."
cp "$DMG_NAME" "$RELEASES_DIR/" mv "$DMG_NAME" "$RELEASES_DIR/"
# Generate appcast if Sparkle tools are available # Generate appcast if Sparkle tools are available
if [ -n "$SPARKLE_BIN" ] && [ -d "$SPARKLE_BIN" ]; then if [ -n "$SPARKLE_BIN" ] && [ -d "$SPARKLE_BIN" ]; then

View File

@@ -6,9 +6,9 @@
<title>0.1.1</title> <title>0.1.1</title>
<pubDate>Sun, 11 Jan 2026 18:07:02 -0500</pubDate> <pubDate>Sun, 11 Jan 2026 18:07:02 -0500</pubDate>
<sparkle:version>1</sparkle:version> <sparkle:version>1</sparkle:version>
<sparkle:shortVersionString>0.1.1</sparkle:shortVersionString> <sparkle:shortVersionString>0.2.0</sparkle:shortVersionString>
<sparkle:minimumSystemVersion>14.6</sparkle:minimumSystemVersion> <sparkle:minimumSystemVersion>14.6</sparkle:minimumSystemVersion>
<enclosure url="https://freno.me/downloads/Gaze-0.2.0.dmg" sparkle:edSignature="NPOTlM5ZPwiz/IhVyoZBkpyXgJlw7DQ9iOfwkpAuogVCjQGzqQToqQY9ROthDviEMQO5A+zmhd/nA3+8rCVfBg==" length="4000089" type="application/octet-stream"/> <enclosure url="https://freno.me/downloads/Gaze-0.2.0.dmg" length="4831161" type="application/octet-stream" sparkle:edSignature="zCEmiiO4Q7HV7uGbI/CQcfJElm1uqrYorznE6uCWaKm/Zg1bUrWaeTRf9+Uv9f9+0iptyiS2FNdglLQB8RKkCA=="/>
</item> </item>
</channel> </channel>
</rss> </rss>