Integrate Sparkle auto-updates for macOS Developer ID builds

New Release-DeveloperID configuration gates Sparkle behind a SPARKLE
compile flag so the App Store Release build stays Sparkle-free. Adds
SPUStandardUpdaterController wrapper, Check for Updates menu command,
Advanced Settings section with beta channel toggle, and a Ruby script
plus GitHub Actions job that signs each release and publishes the
appcast to gh-pages for consumption by Sparkle and Homebrew cask.
This commit is contained in:
Arkadiusz Fal
2026-04-23 04:51:00 +02:00
parent 29c67d3276
commit a2a4691957
14 changed files with 630 additions and 13 deletions

View File

@@ -7,6 +7,7 @@
objects = {
/* Begin PBXBuildFile section */
370E71982F9A1A41000E04B2 /* Sparkle in Frameworks */ = {isa = PBXBuildFile; productRef = 370E71972F9A1A41000E04B2 /* Sparkle */; };
37767AB32F05766100D248FC /* Nuke in Frameworks */ = {isa = PBXBuildFile; productRef = 37767AB22F05766100D248FC /* Nuke */; };
37767AB52F05766100D248FC /* NukeUI in Frameworks */ = {isa = PBXBuildFile; productRef = 37767AB42F05766100D248FC /* NukeUI */; };
378CF2FE2EF21767002C1CD7 /* MPVKit-GPL in Frameworks */ = {isa = PBXBuildFile; productRef = 378CF2FD2EF21767002C1CD7 /* MPVKit-GPL */; };
@@ -125,6 +126,7 @@
isa = PBXFrameworksBuildPhase;
buildActionMask = 2147483647;
files = (
370E71982F9A1A41000E04B2 /* Sparkle in Frameworks */,
37767AB32F05766100D248FC /* Nuke in Frameworks */,
378CF2FE2EF21767002C1CD7 /* MPVKit-GPL in Frameworks */,
378CF3012EF21783002C1CD7 /* MPVKit-GPL in Frameworks */,
@@ -206,6 +208,7 @@
378CF3002EF21783002C1CD7 /* MPVKit-GPL */,
37767AB22F05766100D248FC /* Nuke */,
37767AB42F05766100D248FC /* NukeUI */,
370E71972F9A1A41000E04B2 /* Sparkle */,
);
productName = Yattee;
productReference = 372D1A272EDB163800F58F7A /* Yattee.app */;
@@ -315,6 +318,7 @@
packageReferences = (
378CF2FF2EF21783002C1CD7 /* XCRemoteSwiftPackageReference "MPVKit" */,
37767AB12F05766100D248FC /* XCRemoteSwiftPackageReference "Nuke" */,
370E71962F9A1A41000E04B2 /* XCRemoteSwiftPackageReference "Sparkle" */,
);
preferredProjectObjectVersion = 77;
productRefGroup = 372D1A282EDB163800F58F7A /* Products */;
@@ -1179,6 +1183,14 @@
/* End XCConfigurationList section */
/* Begin XCRemoteSwiftPackageReference section */
370E71962F9A1A41000E04B2 /* XCRemoteSwiftPackageReference "Sparkle" */ = {
isa = XCRemoteSwiftPackageReference;
repositoryURL = "https://github.com/sparkle-project/Sparkle";
requirement = {
kind = upToNextMajorVersion;
minimumVersion = 2.9.1;
};
};
37767AB12F05766100D248FC /* XCRemoteSwiftPackageReference "Nuke" */ = {
isa = XCRemoteSwiftPackageReference;
repositoryURL = "https://github.com/kean/Nuke";
@@ -1198,6 +1210,11 @@
/* End XCRemoteSwiftPackageReference section */
/* Begin XCSwiftPackageProductDependency section */
370E71972F9A1A41000E04B2 /* Sparkle */ = {
isa = XCSwiftPackageProductDependency;
package = 370E71962F9A1A41000E04B2 /* XCRemoteSwiftPackageReference "Sparkle" */;
productName = Sparkle;
};
37767AB22F05766100D248FC /* Nuke */ = {
isa = XCSwiftPackageProductDependency;
package = 37767AB12F05766100D248FC /* XCRemoteSwiftPackageReference "Nuke" */;

View File

@@ -1,5 +1,5 @@
{
"originHash" : "50421f80aba6d558399198148743d5d479edb3f6cc10024acd55828f8cf63959",
"originHash" : "263c985773143365961084fa2985b6cfc81ede4476036a7c65b223ed7ced8b32",
"pins" : [
{
"identity" : "mpvkit",
@@ -18,6 +18,15 @@
"revision" : "83e19143355b02e9261edb2323b3e1e93287ebb9",
"version" : "12.9.0"
}
},
{
"identity" : "sparkle",
"kind" : "remoteSourceControl",
"location" : "https://github.com/sparkle-project/Sparkle",
"state" : {
"revision" : "066e75a8b3e99962685d6a90cdd5293ebffd9261",
"version" : "2.9.1"
}
}
],
"version" : 3