diff --git a/.distribution_configs/appstore/Gaze.entitlements b/.distribution_configs/appstore/Gaze.entitlements
index ee95ab7..4a6c209 100644
--- a/.distribution_configs/appstore/Gaze.entitlements
+++ b/.distribution_configs/appstore/Gaze.entitlements
@@ -6,5 +6,10 @@
com.apple.security.network.client
+ com.apple.security.temporary-exception.mach-lookup.global-name
+
+ $(PRODUCT_BUNDLE_IDENTIFIER)-spks
+ $(PRODUCT_BUNDLE_IDENTIFIER)-spki
+
diff --git a/.distribution_configs/appstore/Info.plist b/.distribution_configs/appstore/Info.plist
index 4b71fcf..3851b18 100644
--- a/.distribution_configs/appstore/Info.plist
+++ b/.distribution_configs/appstore/Info.plist
@@ -22,5 +22,15 @@
$(MARKETING_VERSION)
NSHumanReadableCopyright
Copyright © 2026 Mike Freno. All rights reserved.
+ SUPublicEDKey
+ Z2RmohI1y2bgeGQQUDqO9F0HNF2AzFotOt8CwGB6VJM=
+ SUFeedURL
+ https://freno.me/api/Gaze/appcast.xml
+ SUEnableAutomaticChecks
+
+ SUScheduledCheckInterval
+ 86400
+ SUEnableInstallerLauncherService
+
diff --git a/.distribution_configs/appstore/project_release.txt b/.distribution_configs/appstore/project_release.txt
index 01e0590..2f73f1f 100644
--- a/.distribution_configs/appstore/project_release.txt
+++ b/.distribution_configs/appstore/project_release.txt
@@ -7,14 +7,13 @@
CODE_SIGN_ENTITLEMENTS = Gaze/Gaze.entitlements;
CODE_SIGN_STYLE = Automatic;
COMBINE_HIDPI_IMAGES = YES;
- CURRENT_PROJECT_VERSION = 8;
+ CURRENT_PROJECT_VERSION = 9;
DEVELOPMENT_TEAM = 6GK4F9L62V;
ENABLE_APP_SANDBOX = YES;
ENABLE_HARDENED_RUNTIME = YES;
ENABLE_PREVIEWS = YES;
GENERATE_INFOPLIST_FILE = NO;
INFOPLIST_FILE = Gaze/Info.plist;
- INFOPLIST_KEY_LSApplicationCategoryType = "public.app-category.productivity";
INFOPLIST_KEY_NSHumanReadableCopyright = "";
LD_RUNPATH_SEARCH_PATHS = (
"$(inherited)",
@@ -26,11 +25,7 @@
PRODUCT_BUNDLE_IDENTIFIER = com.mikefreno.Gaze;
PRODUCT_NAME = "$(TARGET_NAME)";
REGISTER_APP_GROUPS = YES;
- STRING_CATALOG_GENERATE_SYMBOLS = YES;
- SWIFT_APPROACHABLE_CONCURRENCY = YES;
- SWIFT_DEFAULT_ACTOR_ISOLATION = MainActor;
SWIFT_EMIT_LOC_STRINGS = YES;
- SWIFT_UPCOMING_FEATURE_MEMBER_IMPORT_VISIBILITY = YES;
- SWIFT_VERSION = 5.0;
+ SWIFT_VERSION = 6.0;
};
name = Release;
diff --git a/.distribution_configs/self/project_release.txt b/.distribution_configs/self/project_release.txt
index ce47072..58057fe 100644
--- a/.distribution_configs/self/project_release.txt
+++ b/.distribution_configs/self/project_release.txt
@@ -7,7 +7,7 @@
CODE_SIGN_ENTITLEMENTS = Gaze/Gaze.entitlements;
CODE_SIGN_STYLE = Automatic;
COMBINE_HIDPI_IMAGES = YES;
- CURRENT_PROJECT_VERSION = 8;
+ CURRENT_PROJECT_VERSION = 9;
DEVELOPMENT_TEAM = 6GK4F9L62V;
ENABLE_APP_SANDBOX = YES;
ENABLE_HARDENED_RUNTIME = YES;
@@ -21,7 +21,7 @@
"@executable_path/../Frameworks",
);
MACOSX_DEPLOYMENT_TARGET = 13.0;
- MARKETING_VERSION = 0.4.0;
+ MARKETING_VERSION = 0.4.1;
PRODUCT_BUNDLE_IDENTIFIER = com.mikefreno.Gaze;
PRODUCT_NAME = "$(TARGET_NAME)";
REGISTER_APP_GROUPS = YES;
diff --git a/.manage_sparkle.py b/.manage_sparkle.py
index 7ccf243..f0288cc 100755
--- a/.manage_sparkle.py
+++ b/.manage_sparkle.py
@@ -31,12 +31,13 @@ def remove_sparkle(pbxproj_path):
# Remove PBXBuildFile section for Sparkle
content = re.sub(r'\t\t27SPARKLE\d+ /\* Sparkle in Frameworks \*/ = \{isa = PBXBuildFile; productRef = 27SPARKLE\d+ /\* Sparkle \*/; \};\n', '', content)
- # Remove XCRemoteSwiftPackageReference section (multi-line) - more flexible pattern
- pattern = r'\t\t27SPARKLE\d+ /\* XCRemoteSwiftPackageReference "Sparkle" \*/ = \{[^}]+\};\n'
+ # Remove XCRemoteSwiftPackageReference section (multi-line)
+ # Match the entire block including nested braces
+ pattern = r'\t\t27SPARKLE\d+ /\* XCRemoteSwiftPackageReference "Sparkle" \*/ = \{[^}]*\{[^}]*\}[^}]*\};\n'
content = re.sub(pattern, '', content, flags=re.DOTALL)
- # Remove XCSwiftPackageProductDependency section (multi-line) - match "Sparkle" comment not "XCSwiftPackageProductDependency"
- pattern = r'\t\t27SPARKLE\d+ /\* Sparkle \*/ = \{[^}]+\};\n'
+ # Remove XCSwiftPackageProductDependency section (multi-line)
+ pattern = r'\t\t27SPARKLE\d+ /\* Sparkle \*/ = \{[^}]*\};\n'
content = re.sub(pattern, '', content, flags=re.DOTALL)
with open(pbxproj_path, 'w') as f:
diff --git a/Gaze.xcodeproj/project.pbxproj b/Gaze.xcodeproj/project.pbxproj
index 251f434..d21c3ba 100644
--- a/Gaze.xcodeproj/project.pbxproj
+++ b/Gaze.xcodeproj/project.pbxproj
@@ -8,7 +8,6 @@
/* Begin PBXBuildFile section */
275915892F132A9200D0E60D /* Lottie in Frameworks */ = {isa = PBXBuildFile; productRef = 27AE10B12F10B1FC00E00DBC /* Lottie */; };
- 27SPARKLE00000000003 /* Sparkle in Frameworks */ = {isa = PBXBuildFile; productRef = 27SPARKLE00000000002 /* Sparkle */; };
/* End PBXBuildFile section */
/* Begin PBXContainerItemProxy section */
@@ -71,7 +70,6 @@
buildActionMask = 2147483647;
files = (
275915892F132A9200D0E60D /* Lottie in Frameworks */,
- 27SPARKLE00000000003 /* Sparkle in Frameworks */,
);
runOnlyForDeploymentPostprocessing = 0;
};
@@ -133,7 +131,6 @@
name = Gaze;
packageProductDependencies = (
27AE10B12F10B1FC00E00DBC /* Lottie */,
- 27SPARKLE00000000002 /* Sparkle */,
);
productName = Gaze;
productReference = 27A21B3C2F0F69DC0018C4F3 /* Gaze.app */;
@@ -219,7 +216,6 @@
minimizedProjectReferenceProxies = 1;
packageReferences = (
27AE10B02F10B1FC00E00DBC /* XCRemoteSwiftPackageReference "lottie-spm" */,
- 27SPARKLE00000000001 /* XCRemoteSwiftPackageReference "Sparkle" */,
);
preferredProjectObjectVersion = 77;
productRefGroup = 27A21B3D2F0F69DC0018C4F3 /* Products */;
@@ -439,6 +435,7 @@
);
MACOSX_DEPLOYMENT_TARGET = 13.0;
MARKETING_VERSION = 0.4.1;
+ OTHER_SWIFT_FLAGS = "-D APPSTORE";
PRODUCT_BUNDLE_IDENTIFIER = com.mikefreno.Gaze;
PRODUCT_NAME = "$(TARGET_NAME)";
REGISTER_APP_GROUPS = YES;
@@ -475,6 +472,7 @@
);
MACOSX_DEPLOYMENT_TARGET = 13.0;
MARKETING_VERSION = 0.4.1;
+ OTHER_SWIFT_FLAGS = "-D APPSTORE";
PRODUCT_BUNDLE_IDENTIFIER = com.mikefreno.Gaze;
PRODUCT_NAME = "$(TARGET_NAME)";
REGISTER_APP_GROUPS = YES;
@@ -617,14 +615,6 @@
minimumVersion = 4.6.0;
};
};
- 27SPARKLE00000000001 /* XCRemoteSwiftPackageReference "Sparkle" */ = {
- isa = XCRemoteSwiftPackageReference;
- repositoryURL = "https://github.com/sparkle-project/Sparkle";
- requirement = {
- kind = exactVersion;
- version = 2.8.1;
- };
- };
/* End XCRemoteSwiftPackageReference section */
/* Begin XCSwiftPackageProductDependency section */
@@ -633,11 +623,6 @@
package = 27AE10B02F10B1FC00E00DBC /* XCRemoteSwiftPackageReference "lottie-spm" */;
productName = Lottie;
};
- 27SPARKLE00000000002 /* Sparkle */ = {
- isa = XCSwiftPackageProductDependency;
- package = 27SPARKLE00000000001 /* XCRemoteSwiftPackageReference "Sparkle" */;
- productName = Sparkle;
- };
/* End XCSwiftPackageProductDependency section */
};
rootObject = 27A21B342F0F69DC0018C4F3 /* Project object */;
diff --git a/Gaze.xcodeproj/project.xcworkspace/xcshareddata/swiftpm/Package.resolved b/Gaze.xcodeproj/project.xcworkspace/xcshareddata/swiftpm/Package.resolved
index b3cf5c5..726a161 100644
--- a/Gaze.xcodeproj/project.xcworkspace/xcshareddata/swiftpm/Package.resolved
+++ b/Gaze.xcodeproj/project.xcworkspace/xcshareddata/swiftpm/Package.resolved
@@ -1,24 +1,15 @@
{
- "originHash" : "513d974fbede884a919977d3446360023f6e3239ac314f4fbd9657e80aca7560",
- "pins" : [
+ "originHash": "513d974fbede884a919977d3446360023f6e3239ac314f4fbd9657e80aca7560",
+ "pins": [
{
- "identity" : "lottie-spm",
- "kind" : "remoteSourceControl",
- "location" : "https://github.com/airbnb/lottie-spm.git",
- "state" : {
- "revision" : "69faaefa7721fba9e434a52c16adf4329c9084db",
- "version" : "4.6.0"
- }
- },
- {
- "identity" : "sparkle",
- "kind" : "remoteSourceControl",
- "location" : "https://github.com/sparkle-project/Sparkle",
- "state" : {
- "revision" : "5581748cef2bae787496fe6d61139aebe0a451f6",
- "version" : "2.8.1"
+ "identity": "lottie-spm",
+ "kind": "remoteSourceControl",
+ "location": "https://github.com/airbnb/lottie-spm.git",
+ "state": {
+ "revision": "69faaefa7721fba9e434a52c16adf4329c9084db",
+ "version": "4.6.0"
}
}
],
- "version" : 3
-}
+ "version": 3
+}
\ No newline at end of file
diff --git a/releases/appcast.xml b/releases/appcast.xml
index 2e35f51..8c625ee 100644
--- a/releases/appcast.xml
+++ b/releases/appcast.xml
@@ -2,6 +2,14 @@
Gaze
+ -
+ 0.4.1
+ Tue, 13 Jan 2026 17:27:46 -0500
+ 9
+ 0.4.1
+ 13.0
+
+
-
0.4.0
Tue, 13 Jan 2026 10:29:35 -0500
@@ -31,19 +39,6 @@
- -
- 0.2.3
- Sun, 11 Jan 2026 21:48:03 -0500
- 4
- 0.2.3
- 13.0
-
-
-
-
-
-
-
-
0.2.2
Sun, 11 Jan 2026 20:28:48 -0500