mirror of
https://github.com/XcodesOrg/XcodesApp.git
synced 2026-03-25 08:55:46 +00:00
update Sparkle to 2.5.2
This commit is contained in:
parent
efcf6508f5
commit
7aaf0563e6
4 changed files with 120 additions and 33 deletions
|
|
@ -121,6 +121,7 @@
|
|||
E86671272B309D2F0048559A /* PlatformsView.swift in Sources */ = {isa = PBXBuildFile; fileRef = E86671262B309D2F0048559A /* PlatformsView.swift */; };
|
||||
E87AB3C52939B65E00D72F43 /* Hardware.swift in Sources */ = {isa = PBXBuildFile; fileRef = E87AB3C42939B65E00D72F43 /* Hardware.swift */; };
|
||||
E87DD6EB25D053FA00D86808 /* Progress+.swift in Sources */ = {isa = PBXBuildFile; fileRef = E87DD6EA25D053FA00D86808 /* Progress+.swift */; };
|
||||
E891A1C42B43ACF900A1B9D1 /* Sparkle in Frameworks */ = {isa = PBXBuildFile; productRef = E891A1C32B43ACF900A1B9D1 /* Sparkle */; };
|
||||
E89342FA25EDCC17007CF557 /* NotificationManager.swift in Sources */ = {isa = PBXBuildFile; fileRef = E89342F925EDCC17007CF557 /* NotificationManager.swift */; };
|
||||
E8977EA325C11E1500835F80 /* PreferencesView.swift in Sources */ = {isa = PBXBuildFile; fileRef = E8977EA225C11E1500835F80 /* PreferencesView.swift */; };
|
||||
E8B20CBF2A2EDEC20057D816 /* SDKs+Xcode.swift in Sources */ = {isa = PBXBuildFile; fileRef = E8B20CBE2A2EDEC20057D816 /* SDKs+Xcode.swift */; };
|
||||
|
|
@ -134,7 +135,6 @@
|
|||
E8E98A9025D8631800EC89A0 /* InstallationStepRowView.swift in Sources */ = {isa = PBXBuildFile; fileRef = CAFBC3FF259AC17F00E2A3D8 /* InstallationStepRowView.swift */; };
|
||||
E8E98A9625D863D700EC89A0 /* InstallationStepDetailView.swift in Sources */ = {isa = PBXBuildFile; fileRef = E8E98A9525D863D700EC89A0 /* InstallationStepDetailView.swift */; };
|
||||
E8F44A1E296B4CD7002D6592 /* Path in Frameworks */ = {isa = PBXBuildFile; productRef = E8F44A1D296B4CD7002D6592 /* Path */; };
|
||||
E8F81FC4282D8A17006CBD0F /* Sparkle in Frameworks */ = {isa = PBXBuildFile; productRef = E8F81FC3282D8A17006CBD0F /* Sparkle */; };
|
||||
E8FD5727291EE4AC001E004C /* AsyncNetworkService in Frameworks */ = {isa = PBXBuildFile; productRef = E8FD5726291EE4AC001E004C /* AsyncNetworkService */; };
|
||||
/* End PBXBuildFile section */
|
||||
|
||||
|
|
@ -344,12 +344,12 @@
|
|||
isa = PBXFrameworksBuildPhase;
|
||||
buildActionMask = 2147483647;
|
||||
files = (
|
||||
E8F81FC4282D8A17006CBD0F /* Sparkle in Frameworks */,
|
||||
CABFA9E42592F08E00380FEE /* Version in Frameworks */,
|
||||
CABFA9FD2592F13300380FEE /* LegibleError in Frameworks */,
|
||||
E689540325BE8C64000EBCEA /* DockProgress in Frameworks */,
|
||||
CA9FF86D25951C6E00E47BAF /* XCModel in Frameworks */,
|
||||
CABFA9F82592F0F900380FEE /* KeychainAccess in Frameworks */,
|
||||
E891A1C42B43ACF900A1B9D1 /* Sparkle in Frameworks */,
|
||||
CAA858CD25A3D8BC00ACF8C0 /* ErrorHandling in Frameworks */,
|
||||
E8C0EB1A291EF43E0081528A /* XcodesKit in Frameworks */,
|
||||
E8FD5727291EE4AC001E004C /* AsyncNetworkService in Frameworks */,
|
||||
|
|
@ -705,12 +705,12 @@
|
|||
CABFA9FC2592F13300380FEE /* LegibleError */,
|
||||
CA9FF86C25951C6E00E47BAF /* XCModel */,
|
||||
CAA858CC25A3D8BC00ACF8C0 /* ErrorHandling */,
|
||||
E8F81FC3282D8A17006CBD0F /* Sparkle */,
|
||||
E689540225BE8C64000EBCEA /* DockProgress */,
|
||||
E8FD5726291EE4AC001E004C /* AsyncNetworkService */,
|
||||
E8C0EB19291EF43E0081528A /* XcodesKit */,
|
||||
E8F44A1D296B4CD7002D6592 /* Path */,
|
||||
E84E4F562B335094003F3959 /* OrderedCollections */,
|
||||
E891A1C32B43ACF900A1B9D1 /* Sparkle */,
|
||||
);
|
||||
productName = XcodesMac;
|
||||
productReference = CAD2E79E2449574E00113D76 /* Xcodes.app */;
|
||||
|
|
@ -793,11 +793,11 @@
|
|||
CA9FF86B25951C6E00E47BAF /* XCRemoteSwiftPackageReference "data" */,
|
||||
CAA858CB25A3D8BC00ACF8C0 /* XCRemoteSwiftPackageReference "ErrorHandling" */,
|
||||
CAC28186259EE27200B8AB0B /* XCRemoteSwiftPackageReference "CombineExpectations" */,
|
||||
E8F81FC2282D8A17006CBD0F /* XCRemoteSwiftPackageReference "Sparkle" */,
|
||||
E689540125BE8C64000EBCEA /* XCRemoteSwiftPackageReference "DockProgress" */,
|
||||
E8FD5725291EE4AC001E004C /* XCRemoteSwiftPackageReference "AsyncHTTPNetworkService" */,
|
||||
E8F44A1C296B4CD7002D6592 /* XCRemoteSwiftPackageReference "Path" */,
|
||||
E84E4F552B335094003F3959 /* XCRemoteSwiftPackageReference "swift-collections" */,
|
||||
E891A1C22B43ACA400A1B9D1 /* XCRemoteSwiftPackageReference "Sparkle" */,
|
||||
);
|
||||
productRefGroup = CAD2E79F2449574E00113D76 /* Products */;
|
||||
projectDirPath = "";
|
||||
|
|
@ -1523,6 +1523,14 @@
|
|||
minimumVersion = 1.0.5;
|
||||
};
|
||||
};
|
||||
E891A1C22B43ACA400A1B9D1 /* XCRemoteSwiftPackageReference "Sparkle" */ = {
|
||||
isa = XCRemoteSwiftPackageReference;
|
||||
repositoryURL = "https://github.com/sparkle-project/Sparkle";
|
||||
requirement = {
|
||||
kind = upToNextMajorVersion;
|
||||
minimumVersion = 2.5.2;
|
||||
};
|
||||
};
|
||||
E8F44A1C296B4CD7002D6592 /* XCRemoteSwiftPackageReference "Path" */ = {
|
||||
isa = XCRemoteSwiftPackageReference;
|
||||
repositoryURL = "https://github.com/mxcl/Path.swift";
|
||||
|
|
@ -1531,14 +1539,6 @@
|
|||
minimumVersion = 1.0.0;
|
||||
};
|
||||
};
|
||||
E8F81FC2282D8A17006CBD0F /* XCRemoteSwiftPackageReference "Sparkle" */ = {
|
||||
isa = XCRemoteSwiftPackageReference;
|
||||
repositoryURL = "https://github.com/sparkle-project/Sparkle";
|
||||
requirement = {
|
||||
kind = upToNextMajorVersion;
|
||||
minimumVersion = 2.0.0;
|
||||
};
|
||||
};
|
||||
E8FD5725291EE4AC001E004C /* XCRemoteSwiftPackageReference "AsyncHTTPNetworkService" */ = {
|
||||
isa = XCRemoteSwiftPackageReference;
|
||||
repositoryURL = "https://github.com/RobotsAndPencils/AsyncHTTPNetworkService";
|
||||
|
|
@ -1599,6 +1599,11 @@
|
|||
package = E84E4F552B335094003F3959 /* XCRemoteSwiftPackageReference "swift-collections" */;
|
||||
productName = OrderedCollections;
|
||||
};
|
||||
E891A1C32B43ACF900A1B9D1 /* Sparkle */ = {
|
||||
isa = XCSwiftPackageProductDependency;
|
||||
package = E891A1C22B43ACA400A1B9D1 /* XCRemoteSwiftPackageReference "Sparkle" */;
|
||||
productName = Sparkle;
|
||||
};
|
||||
E8C0EB19291EF43E0081528A /* XcodesKit */ = {
|
||||
isa = XCSwiftPackageProductDependency;
|
||||
productName = XcodesKit;
|
||||
|
|
@ -1608,11 +1613,6 @@
|
|||
package = E8F44A1C296B4CD7002D6592 /* XCRemoteSwiftPackageReference "Path" */;
|
||||
productName = Path;
|
||||
};
|
||||
E8F81FC3282D8A17006CBD0F /* Sparkle */ = {
|
||||
isa = XCSwiftPackageProductDependency;
|
||||
package = E8F81FC2282D8A17006CBD0F /* XCRemoteSwiftPackageReference "Sparkle" */;
|
||||
productName = Sparkle;
|
||||
};
|
||||
E8FD5726291EE4AC001E004C /* AsyncNetworkService */ = {
|
||||
isa = XCSwiftPackageProductDependency;
|
||||
package = E8FD5725291EE4AC001E004C /* XCRemoteSwiftPackageReference "AsyncHTTPNetworkService" */;
|
||||
|
|
|
|||
|
|
@ -78,8 +78,8 @@
|
|||
"repositoryURL": "https://github.com/sparkle-project/Sparkle/",
|
||||
"state": {
|
||||
"branch": null,
|
||||
"revision": "286edd1fa22505a9e54d170e9fd07d775ea233f2",
|
||||
"version": "2.1.0"
|
||||
"revision": "47d3d90aee3c52b6f61d04ceae426e607df62347",
|
||||
"version": "2.5.2"
|
||||
}
|
||||
},
|
||||
{
|
||||
|
|
|
|||
|
|
@ -69,7 +69,8 @@ struct UpdatesPreferencePane: View {
|
|||
|
||||
class ObservableUpdater: ObservableObject {
|
||||
private let updater: SPUUpdater
|
||||
|
||||
private let updaterDelegate = UpdaterDelegate()
|
||||
|
||||
@Published var automaticallyChecksForUpdates = false {
|
||||
didSet {
|
||||
updater.automaticallyChecksForUpdates = automaticallyChecksForUpdates
|
||||
|
|
@ -81,17 +82,17 @@ class ObservableUpdater: ObservableObject {
|
|||
@Published var includePrereleaseVersions = false {
|
||||
didSet {
|
||||
UserDefaults.standard.setValue(includePrereleaseVersions, forKey: "includePrereleaseVersions")
|
||||
|
||||
if includePrereleaseVersions {
|
||||
updater.setFeedURL(.prereleaseAppcast)
|
||||
} else {
|
||||
updater.setFeedURL(.appcast)
|
||||
}
|
||||
|
||||
updaterDelegate.includePrereleaseVersions = includePrereleaseVersions
|
||||
}
|
||||
}
|
||||
|
||||
init() {
|
||||
updater = SPUStandardUpdaterController(startingUpdater: true, updaterDelegate: nil, userDriverDelegate: nil).updater
|
||||
updater = SPUStandardUpdaterController(startingUpdater: true, updaterDelegate: updaterDelegate, userDriverDelegate: nil).updater
|
||||
|
||||
// upgrade from an old sparkle version which set feeds via the updater
|
||||
// now it uses the `updaterDelegate`
|
||||
updater.clearFeedURLFromUserDefaults()
|
||||
|
||||
automaticallyChecksForUpdatesObservation = updater.observe(
|
||||
\.automaticallyChecksForUpdates,
|
||||
|
|
@ -116,9 +117,22 @@ class ObservableUpdater: ObservableObject {
|
|||
}
|
||||
}
|
||||
|
||||
extension URL {
|
||||
static let appcast = URL(string: "https://www.xcodes.app/appcast.xml")!
|
||||
static let prereleaseAppcast = URL(string: "https://www.xcodes.app/appcast_pre.xml")!
|
||||
class UpdaterDelegate: NSObject, SPUUpdaterDelegate {
|
||||
var includePrereleaseVersions: Bool = false
|
||||
|
||||
func feedURLString(for updater: SPUUpdater) -> String? {
|
||||
if includePrereleaseVersions {
|
||||
return .prereleaseAppcast
|
||||
} else {
|
||||
return .appcast
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
extension String {
|
||||
static let appcast = "https://www.xcodes.app/appcast.xml"
|
||||
static let prereleaseAppcast = "https://www.xcodes.app/appcast_pre.xml"
|
||||
}
|
||||
|
||||
struct UpdatesPreferencePane_Previews: PreviewProvider {
|
||||
|
|
|
|||
|
|
@ -656,13 +656,86 @@ EXTERNAL LICENSES\
|
|||
=================\
|
||||
\
|
||||
bspatch.c and bsdiff.c, from bsdiff 4.3 <http://www.daemonology.net/bsdiff/>:\
|
||||
Copyright (c) 2003-2005 Colin Percival.\
|
||||
\
|
||||
Copyright 2003-2005 Colin Percival\
|
||||
All rights reserved\
|
||||
\
|
||||
Redistribution and use in source and binary forms, with or without\
|
||||
modification, are permitted providing that the following conditions \
|
||||
are met:\
|
||||
1. Redistributions of source code must retain the above copyright\
|
||||
notice, this list of conditions and the following disclaimer.\
|
||||
2. Redistributions in binary form must reproduce the above copyright\
|
||||
notice, this list of conditions and the following disclaimer in the\
|
||||
documentation and/or other materials provided with the distribution.\
|
||||
\
|
||||
THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR\
|
||||
IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED\
|
||||
WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE\
|
||||
ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY\
|
||||
DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL\
|
||||
DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS\
|
||||
OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)\
|
||||
HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,\
|
||||
STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING\
|
||||
IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE\
|
||||
POSSIBILITY OF SUCH DAMAGE.\
|
||||
\
|
||||
--\
|
||||
\
|
||||
sais.c and sais.c, from sais-lite (2010/08/07) <https://sites.google.com/site/yuta256/sais>:\
|
||||
Copyright (c) 2008-2010 Yuta Mori.\
|
||||
\
|
||||
The sais-lite copyright is as follows:\
|
||||
\
|
||||
Copyright (c) 2008-2010 Yuta Mori All Rights Reserved.\
|
||||
\
|
||||
Permission is hereby granted, free of charge, to any person\
|
||||
obtaining a copy of this software and associated documentation\
|
||||
files (the "Software"), to deal in the Software without\
|
||||
restriction, including without limitation the rights to use,\
|
||||
copy, modify, merge, publish, distribute, sublicense, and/or sell\
|
||||
copies of the Software, and to permit persons to whom the\
|
||||
Software is furnished to do so, subject to the following\
|
||||
conditions:\
|
||||
\
|
||||
The above copyright notice and this permission notice shall be\
|
||||
included in all copies or substantial portions of the Software.\
|
||||
\
|
||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,\
|
||||
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES\
|
||||
OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND\
|
||||
NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT\
|
||||
HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,\
|
||||
WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\
|
||||
FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR\
|
||||
OTHER DEALINGS IN THE SOFTWARE.\
|
||||
\
|
||||
--\
|
||||
\
|
||||
Portable C implementation of Ed25519, from https://github.com/orlp/ed25519\
|
||||
\
|
||||
Copyright (c) 2015 Orson Peters <orsonpeters@gmail.com>\
|
||||
\
|
||||
This software is provided 'as-is', without any express or implied warranty. In no event will the\
|
||||
authors be held liable for any damages arising from the use of this software.\
|
||||
\
|
||||
Permission is granted to anyone to use this software for any purpose, including commercial\
|
||||
applications, and to alter it and redistribute it freely, subject to the following restrictions:\
|
||||
\
|
||||
1. The origin of this software must not be misrepresented; you must not claim that you wrote the\
|
||||
original software. If you use this software in a product, an acknowledgment in the product\
|
||||
documentation would be appreciated but is not required.\
|
||||
\
|
||||
2. Altered source versions must be plainly marked as such, and must not be misrepresented as\
|
||||
being the original software.\
|
||||
\
|
||||
3. This notice may not be removed or altered from any source distribution.\
|
||||
\
|
||||
--\
|
||||
\
|
||||
SUSignatureVerifier.m:\
|
||||
Copyright (c) 2011 Mark Hamlin.\
|
||||
\
|
||||
Copyright (c) 2011 Mark Hamlin.\
|
||||
\
|
||||
All rights reserved.\
|
||||
\
|
||||
|
|
|
|||
Loading…
Reference in a new issue