Updated Sparkle to version 2.6.0

This commit is contained in:
Christopher Snowhill 2024-08-07 23:16:47 -07:00
parent b2db8d3bac
commit 7b2fcf7c94
139 changed files with 812 additions and 890 deletions

View file

@ -609,9 +609,6 @@ static AppController *kAppController = nil;
NSNumber *fontSize = @(fFontSize);
[userDefaultsValuesDict setObject:fontSize forKey:@"fontSize"];
NSString *feedURLdefault = @"https://cogcdn.cog.losno.co/mercury.xml";
[userDefaultsValuesDict setObject:feedURLdefault forKey:@"SUFeedURL"];
[userDefaultsValuesDict setObject:@"enqueueAndPlay" forKey:@"openingFilesBehavior"];
[userDefaultsValuesDict setObject:@"enqueue" forKey:@"openingFilesAlteredBehavior"];
@ -650,18 +647,6 @@ static AppController *kAppController = nil;
[[NSUserDefaults standardUserDefaults] registerDefaults:userDefaultsValuesDict];
[[NSUserDefaults standardUserDefaults] synchronize];
// And if the existing feed URL is broken due to my ineptitude with the above defaults, fix it
NSSet<NSString *> *brokenFeedURLs = [NSSet setWithObjects:
@"https://kode54.net/cog/stable.xml",
@"https://kode54.net/cog/mercury.xml"
@"https://www.kode54.net/cog/mercury.xml",
@"https://f.losno.co/cog/mercury.xml",
nil];
NSString *feedURL = [[NSUserDefaults standardUserDefaults] stringForKey:@"SUFeedURL"];
if([brokenFeedURLs containsObject:feedURL]) {
[[NSUserDefaults standardUserDefaults] setValue:feedURLdefault forKey:@"SUFeedURL"];
}
NSString *oldMidiPlugin = [[NSUserDefaults standardUserDefaults] stringForKey:@"midi.plugin"];
if(oldMidiPlugin) {
[[NSUserDefaults standardUserDefaults] setValue:oldMidiPlugin forKey:@"midiPlugin"];

View file

@ -8,7 +8,7 @@
#import <Foundation/Foundation.h>
#ifdef BUILDING_SPARKLE_DOWNLOADER_SERVICE
#if defined(BUILDING_SPARKLE_SOURCES_EXTERNALLY)
// Ignore incorrect warning
#pragma clang diagnostic push
#pragma clang diagnostic ignored "-Wquoted-include-in-framework-header"

View file

@ -7,7 +7,16 @@
//
#import <Foundation/Foundation.h>
#if defined(BUILDING_SPARKLE_SOURCES_EXTERNALLY)
// Ignore incorrect warning
#pragma clang diagnostic push
#pragma clang diagnostic ignored "-Wquoted-include-in-framework-header"
#import "SUExport.h"
#pragma clang diagnostic pop
#else
#import <Sparkle/SUExport.h>
#endif
NS_ASSUME_NONNULL_BEGIN

View file

@ -7,8 +7,18 @@
//
#import <Foundation/Foundation.h>
#if defined(BUILDING_SPARKLE_SOURCES_EXTERNALLY)
// Ignore incorrect warning
#pragma clang diagnostic push
#pragma clang diagnostic ignored "-Wquoted-include-in-framework-header"
#import "SPUUserDriver.h"
#import "SUExport.h"
#pragma clang diagnostic pop
#else
#import <Sparkle/SPUUserDriver.h>
#import <Sparkle/SUExport.h>
#endif
NS_ASSUME_NONNULL_BEGIN

View file

@ -7,7 +7,15 @@
//
#import <Foundation/Foundation.h>
#if defined(BUILDING_SPARKLE_SOURCES_EXTERNALLY)
// Ignore incorrect warning
#pragma clang diagnostic push
#pragma clang diagnostic ignored "-Wquoted-include-in-framework-header"
#import "SUExport.h"
#pragma clang diagnostic pop
#else
#import <Sparkle/SUExport.h>
#endif
NS_ASSUME_NONNULL_BEGIN
@ -42,6 +50,19 @@ SU_EXPORT @protocol SPUStandardUserDriverDelegate <NSObject>
*/
- (_Nullable id <SUVersionDisplay>)standardUserDriverRequestsVersionDisplayer;
/**
Decides whether or not the standard user driver should provide an option to show full release notes to the user.
When a user checks for new updates and no new update is found, Sparkle by default will offer to show the application's version history to the user
by providing a "Version History" button in the no new update available alert.
If this delegate method is implemented to return `NO`, then Sparkle will not provide an option to show full release notes to the user.
@param item The appcast item corresponding to the latest version available.
@return @c YES to allow Sparkle to show full release notes to the user, otherwise @c NO to disallow this.
*/
- (BOOL)standardUserDriverShouldShowVersionHistoryForAppcastItem:(SUAppcastItem *)item;
/**
Handles showing the full release notes to the user.

View file

@ -7,7 +7,16 @@
//
#import <Foundation/Foundation.h>
#if defined(BUILDING_SPARKLE_SOURCES_EXTERNALLY)
// Ignore incorrect warning
#pragma clang diagnostic push
#pragma clang diagnostic ignored "-Wquoted-include-in-framework-header"
#import "SUExport.h"
#pragma clang diagnostic pop
#else
#import <Sparkle/SUExport.h>
#endif
NS_ASSUME_NONNULL_BEGIN

View file

@ -7,8 +7,18 @@
//
#import <Foundation/Foundation.h>
#if defined(BUILDING_SPARKLE_SOURCES_EXTERNALLY)
// Ignore incorrect warning
#pragma clang diagnostic push
#pragma clang diagnostic ignored "-Wquoted-include-in-framework-header"
#import "SUExport.h"
#import "SPUUserDriver.h"
#pragma clang diagnostic pop
#else
#import <Sparkle/SUExport.h>
#import <Sparkle/SPUUserDriver.h>
#endif
NS_ASSUME_NONNULL_BEGIN
@ -100,7 +110,9 @@ SU_EXPORT @interface SPUUpdater : NSObject
You usually do not need to call this method directly. If `automaticallyChecksForUpdates` is @c YES,
Sparkle calls this method automatically according to its update schedule using the `updateCheckInterval`
and the `lastUpdateCheckDate`. Therefore, you should typically only consider calling this method directly if you
opt out of automatic update checks.
opt out of automatic update checks. Calling this method when updating your own bundle is invalid if Sparkle is configured
to ask the user's permission to check for updates automatically and `automaticallyChecksForUpdates` is `NO`.
If you want to reset the updater's cycle after an updater setting change, see `resetUpdateCycle` or `resetUpdateCycleAfterShortDelay` instead.
This is meant for programmatically initating a check for updates in the background without the user initiating it.
This check will not show UI if no new updates are found.
@ -108,7 +120,7 @@ SU_EXPORT @interface SPUUpdater : NSObject
If a new update is found, the updater's user driver may handle showing it at an appropriate (but not necessarily immediate) time.
If you want control over when and how a new update is shown, please see https://sparkle-project.org/documentation/gentle-reminders/
Note if automated updating is turned on, either a new update may be downloaded in the background to be installed silently,
Note if automated downloading/installing is turned on, either a new update may be downloaded in the background to be installed silently,
or an already downloaded update may be shown.
This will not find updates that the user has opted into skipping.
@ -206,10 +218,14 @@ SU_EXPORT @interface SPUUpdater : NSObject
By default, updates are not automatically downloaded.
By default starting from Sparkle 2.4, users are provided an option to opt in to automatically downloading and installing updates when they are asked if they want automatic update checks enabled.
The default value for this option is based on what the developer sets `SUAutomaticallyUpdate` in their Info.plist.
This is not done if `SUEnableAutomaticChecks` is set in the Info.plist however. Please check `automaticallyChecksForUpdates` property for more details.
Note that the developer can disallow automatic downloading of updates from being enabled (via `SUAllowsAutomaticUpdates` Info.plist key).
In this case, this property will return NO regardless of how this property is set.
Prefer to set SUAutomaticallyUpdate directly in your Info.plist for setting the initial value.
Prefer to set `SUAutomaticallyUpdate` directly in your Info.plist for setting the initial value.
Setting this property will persist in the host bundle's user defaults.
Hence developers shouldn't maintain an additional user default for this property.
@ -222,32 +238,59 @@ SU_EXPORT @interface SPUUpdater : NSObject
The URL of the appcast used to download update information.
If the updater's delegate implements `-[SPUUpdaterDelegate feedURLStringForUpdater:]`, this will return that feed URL.
Otherwise if the feed URL has been set before, the feed URL returned will be retrieved from the host bundle's user defaults.
Otherwise if the feed URL has been set before using `-[SPUUpdater setFeedURL:]`, the feed URL returned will be retrieved from the host bundle's user defaults.
Otherwise the feed URL in the host bundle's Info.plist will be returned.
If no feed URL can be retrieved, returns nil.
For setting a primary feed URL, please set the `SUFeedURL` property in your Info.plist.
For setting an alternative feed URL, please prefer `-[SPUUpdaterDelegate feedURLStringForUpdater:]` over `-setFeedURL:`
For setting an alternative feed URL, please prefer `-[SPUUpdaterDelegate feedURLStringForUpdater:]` over `-setFeedURL:`.
Please see the documentation for `-setFeedURL:` for migrating away from that API.
This property must be called on the main thread; calls from background threads will return nil.
*/
@property (nonatomic, readonly, nullable) NSURL *feedURL;
/**
Set the URL of the appcast used to download update information. Using this method is discouraged.
Set the URL of the appcast used to download update information. This method is deprecated.
Setting this property will persist in the host bundle's user defaults.
To avoid this, you should consider implementing
To avoid this undesirable behavior, please consider implementing
`-[SPUUpdaterDelegate feedURLStringForUpdater:]` instead of using this method.
Passing nil will remove any feed URL that has been set in the host bundle's user defaults.
Calling `-clearFeedURLFromUserDefaults` will remove any feed URL that has been set in the host bundle's user defaults.
Passing nil to this method can also do this, but using `-clearFeedURLFromUserDefaults` is preferred.
To migrate away from using this API, you must clear and remove any feed URLs set in the user defaults through this API.
If you do not need to alternate between multiple feeds, set the SUFeedURL in your Info.plist instead of invoking this method.
For beta updates, you may consider migrating to `-[SPUUpdaterDelegate allowedChannelsForUpdater:]` in the future.
Updaters that update other developer's bundles should not call this method.
This method must be called on the main thread; calls from background threads will have no effect.
*/
- (void)setFeedURL:(nullable NSURL *)feedURL;
- (void)setFeedURL:(nullable NSURL *)feedURL __deprecated_msg("Please call -[SPUUpdater clearFeedURLFromUserDefaults] to migrate away from using this API and transition to either specifying the feed URL in your Info.plist, using channels in Sparkle 2, or using -[SPUUpdaterDelegate feedURLStringForUpdater:] to specify the dynamic feed URL at runtime");
/**
Clears any feed URL from the host bundle's user defaults that was set via `-setFeedURL:`
You should call this method if you have used `-setFeedURL:` in the past and want to stop using that API.
Otherwise for compatibility Sparkle will prefer to use the feed URL that was set in the user defaults over the one that was specified in the host bundle's Info.plist,
which is often undesirable (except for testing purposes).
If a feed URL is found stored in the host bundle's user defaults (from calling `-setFeedURL:`) before it gets cleared,
then that previously set URL is returned from this method.
This method should be called as soon as possible, after your application finished launching or right after the updater has been started
if you manually manage starting the updater.
Updaters that update other developer's bundles should not call this method.
This method must be called on the main thread.
@return A previously set feed URL in the host bundle's user defaults, if available, otherwise this returns `nil`
*/
- (nullable NSURL *)clearFeedURLFromUserDefaults;
/**
The host bundle that is being updated.
@ -258,7 +301,7 @@ SU_EXPORT @interface SPUUpdater : NSObject
The user agent used when checking for updates.
By default the user agent string returned is in the format:
$(BundleDisplayName)/$(BundleDisplayVersion) Sparkle/$(SparkleDisplayVersion)
`$(BundleDisplayName)/$(BundleDisplayVersion) Sparkle/$(SparkleDisplayVersion)`
BundleDisplayVersion is derived from the main application's Info.plist's CFBundleShortVersionString.
@ -292,15 +335,28 @@ SU_EXPORT @interface SPUUpdater : NSObject
@property (nonatomic, readonly, copy, nullable) NSDate *lastUpdateCheckDate;
/**
Appropriately schedules or cancels the update checking timer according to the settings for the time interval and automatic checks.
If you change the `updateCheckInterval` or `automaticallyChecksForUpdates` properties, the update cycle will be reset automatically after a short delay.
The update cycle is also started automatically after the updater is started. In all these cases, this method should not be called directly.
Appropriately re-schedules the update checking timer according to the current updater settings.
This call does not change the date of the next check, but only the internal timer.
This method should only be called in response to a user changing updater settings. This method may trigger a new update check to occur in the background if an updater setting such as the updater's feed or allowed channels has changed.
If the `updateCheckInterval` or `automaticallyChecksForUpdates` properties are changed, this method is automatically invoked after a short delay using `-resetUpdateCycleAfterShortDelay`. In these cases, manually resetting the update cycle is not necessary.
See also `-resetUpdateCycleAfterShortDelay` which gives the user a short delay before triggering a cycle reset.
*/
- (void)resetUpdateCycle;
/**
Appropriately re-schedules the update checking timer according to the current updater settings after a short cancellable delay.
This method calls `resetUpdateCycle` after a short delay to give the user a short amount of time to cancel changing an updater setting.
If this method is called again, any previous reset request that is still inflight will be cancelled.
For example, if the user changes the `automaticallyChecksForUpdates` setting to `YES`, but quickly undoes their change then
no cycle reset will be done.
If the `updateCheckInterval` or `automaticallyChecksForUpdates` properties are changed, this method is automatically invoked. In these cases, manually resetting the update cycle is not necessary.
*/
- (void)resetUpdateCycleAfterShortDelay;
/**
The system profile information that is sent when checking for updates.

View file

@ -7,9 +7,20 @@
//
#import <Foundation/Foundation.h>
#if defined(BUILDING_SPARKLE_SOURCES_EXTERNALLY)
// Ignore incorrect warning
#pragma clang diagnostic push
#pragma clang diagnostic ignored "-Wquoted-include-in-framework-header"
#import "SUExport.h"
#import "SPUUpdateCheck.h"
#import "SPUUserUpdateState.h"
#pragma clang diagnostic pop
#else
#import <Sparkle/SUExport.h>
#import <Sparkle/SPUUpdateCheck.h>
#import <Sparkle/SPUUserUpdateState.h>
#endif
@protocol SUVersionComparison;
@class SPUUpdater, SUAppcast, SUAppcastItem, SPUUserUpdateState;

View file

@ -7,7 +7,16 @@
//
#import <Foundation/Foundation.h>
#if defined(BUILDING_SPARKLE_SOURCES_EXTERNALLY)
// Ignore incorrect warning
#pragma clang diagnostic push
#pragma clang diagnostic ignored "-Wquoted-include-in-framework-header"
#import "SUExport.h"
#pragma clang diagnostic pop
#else
#import <Sparkle/SUExport.h>
#endif
NS_ASSUME_NONNULL_BEGIN

View file

@ -8,8 +8,17 @@
#import <Foundation/Foundation.h>
#if defined(BUILDING_SPARKLE_SOURCES_EXTERNALLY)
// Ignore incorrect warning
#pragma clang diagnostic push
#pragma clang diagnostic ignored "-Wquoted-include-in-framework-header"
#import "SPUUserUpdateState.h"
#import "SUExport.h"
#pragma clang diagnostic pop
#else
#import <Sparkle/SPUUserUpdateState.h>
#import <Sparkle/SUExport.h>
#endif
NS_ASSUME_NONNULL_BEGIN

View file

@ -11,7 +11,15 @@
#import <Foundation/Foundation.h>
#if defined(BUILDING_SPARKLE_SOURCES_EXTERNALLY)
// Ignore incorrect warning
#pragma clang diagnostic push
#pragma clang diagnostic ignored "-Wquoted-include-in-framework-header"
#import "SUExport.h"
#pragma clang diagnostic pop
#else
#import <Sparkle/SUExport.h>
#endif
NS_ASSUME_NONNULL_BEGIN

View file

@ -10,7 +10,15 @@
#define SUAPPCAST_H
#import <Foundation/Foundation.h>
#if defined(BUILDING_SPARKLE_SOURCES_EXTERNALLY)
// Ignore incorrect warning
#pragma clang diagnostic push
#pragma clang diagnostic ignored "-Wquoted-include-in-framework-header"
#import "SUExport.h"
#pragma clang diagnostic pop
#else
#import <Sparkle/SUExport.h>
#endif
NS_ASSUME_NONNULL_BEGIN
@ -28,7 +36,7 @@ SU_EXPORT @interface SUAppcast : NSObject
These `SUAppcastItem` items are in the same order as specified in the appcast XML feed and are thus not sorted by version.
*/
@property (readonly, copy) NSArray<SUAppcastItem *> *items;
@property (readonly, nonatomic, copy) NSArray<SUAppcastItem *> *items;
@end

View file

@ -11,7 +11,7 @@
#import <Foundation/Foundation.h>
#ifdef BUILDING_SPARKLE_TESTS
#ifdef BUILDING_SPARKLE_SOURCES_EXTERNALLY
// Ignore incorrect warning
#pragma clang diagnostic push
#pragma clang diagnostic ignored "-Wquoted-include-in-framework-header"
@ -45,7 +45,7 @@ SU_EXPORT @interface SUAppcastItem : NSObject<NSSecureCoding>
This is extracted from the @c <sparkle:version> element, or the @c sparkle:version attribute from the @c <enclosure> element.
*/
@property (copy, readonly) NSString *versionString;
@property (nonatomic, copy, readonly) NSString *versionString;
/**
The human-readable display version of the update item if provided.
@ -58,7 +58,7 @@ SU_EXPORT @interface SUAppcastItem : NSObject<NSSecureCoding>
If no short version string is available, this falls back to the update's `versionString`.
*/
@property (copy, readonly) NSString *displayVersionString;
@property (nonatomic, copy, readonly) NSString *displayVersionString;
/**
The file URL to the update item if provided.
@ -70,7 +70,7 @@ SU_EXPORT @interface SUAppcastItem : NSObject<NSSecureCoding>
This is extracted from the @c url attribute in the @c <enclosure> element.
*/
@property (readonly, nullable) NSURL *fileURL;
@property (nonatomic, readonly, nullable) NSURL *fileURL;
/**
The content length of the download in bytes.
@ -95,7 +95,7 @@ SU_EXPORT @interface SUAppcastItem : NSObject<NSSecureCoding>
This is extracted from the @c <link> element.
*/
@property (readonly, nullable) NSURL *infoURL;
@property (nonatomic, readonly, nullable) NSURL *infoURL;
/**
Indicates whether or not the update item is only informational and has no download.
@ -106,14 +106,14 @@ SU_EXPORT @interface SUAppcastItem : NSObject<NSSecureCoding>
Otherwise this is determined based on the contents extracted from the @c <sparkle:informationalUpdate> element.
*/
@property (getter=isInformationOnlyUpdate, readonly) BOOL informationOnlyUpdate;
@property (nonatomic, getter=isInformationOnlyUpdate, readonly) BOOL informationOnlyUpdate;
/**
The title of the appcast item if provided.
This is extracted from the @c <title> element.
*/
@property (copy, readonly, nullable) NSString *title;
@property (nonatomic, copy, readonly, nullable) NSString *title;
/**
The date string of the appcast item if provided.
@ -123,7 +123,7 @@ SU_EXPORT @interface SUAppcastItem : NSObject<NSSecureCoding>
This is extracted from the @c <pubDate> element.
*/
@property (copy, readonly, nullable) NSString *dateString;
@property (nonatomic, copy, readonly, nullable) NSString *dateString;
/**
The date constructed from the `dateString` property if provided.
@ -132,7 +132,7 @@ SU_EXPORT @interface SUAppcastItem : NSObject<NSSecureCoding>
This date is constructed using the @c en_US locale.
*/
@property (copy, readonly, nullable) NSDate *date;
@property (nonatomic, copy, readonly, nullable) NSDate *date;
/**
The release notes URL of the appcast item if provided.
@ -143,7 +143,7 @@ SU_EXPORT @interface SUAppcastItem : NSObject<NSSecureCoding>
This is extracted from the @c <sparkle:releaseNotesLink> element.
*/
@property (readonly, nullable) NSURL *releaseNotesURL;
@property (nonatomic, readonly, nullable) NSURL *releaseNotesURL;
/**
The description of the appcast item if provided.
@ -153,7 +153,22 @@ SU_EXPORT @interface SUAppcastItem : NSObject<NSSecureCoding>
This is extracted from the @c <description> element.
*/
@property (copy, readonly, nullable) NSString *itemDescription;
@property (nonatomic, copy, readonly, nullable) NSString *itemDescription;
/**
The format of the `itemDescription` for inline/embedded release notes if provided.
This may be:
- @c html
- @c plain-text
This is extracted from the @c sparkle:descriptionFormat attribute in the @c <description> element.
If the format is not provided in the @c <description> element of the appcast item, then this property may default to `html`.
If the @c <description> element of the appcast item is not available, this property is `nil`.
*/
@property (nonatomic, readonly, nullable) NSString *itemDescriptionFormat;
/**
The full release notes URL of the appcast item if provided.
@ -164,7 +179,7 @@ SU_EXPORT @interface SUAppcastItem : NSObject<NSSecureCoding>
This is extracted from the @c <sparkle:fullReleaseNotesLink> element.
*/
@property (readonly, nullable) NSURL *fullReleaseNotesURL;
@property (nonatomic, readonly, nullable) NSURL *fullReleaseNotesURL;
/**
The required minimum system operating version string for this update if provided.
@ -177,7 +192,7 @@ SU_EXPORT @interface SUAppcastItem : NSObject<NSSecureCoding>
This is extracted from the @c <sparkle:minimumSystemVersion> element.
*/
@property (copy, readonly, nullable) NSString *minimumSystemVersion;
@property (nonatomic, copy, readonly, nullable) NSString *minimumSystemVersion;
/**
Indicates whether or not the current running system passes the `minimumSystemVersion` requirement.
@ -197,7 +212,7 @@ SU_EXPORT @interface SUAppcastItem : NSObject<NSSecureCoding>
This is extracted from the @c <sparkle:maximumSystemVersion> element.
*/
@property (copy, readonly, nullable) NSString *maximumSystemVersion;
@property (nonatomic, copy, readonly, nullable) NSString *maximumSystemVersion;
/**
Indicates whether or not the current running system passes the `maximumSystemVersion` requirement.
@ -248,7 +263,7 @@ SU_EXPORT @interface SUAppcastItem : NSObject<NSSecureCoding>
Old applications must be using Sparkle 1.25 or later to support phased rollout intervals, otherwise they may assume updates are immediately available.
*/
@property (copy, readonly, nullable) NSNumber* phasedRolloutInterval;
@property (nonatomic, copy, readonly, nullable) NSNumber* phasedRolloutInterval;
/**
The minimum bundle version string this update requires for automatically downloading and installing updates if provided.
@ -263,14 +278,14 @@ SU_EXPORT @interface SUAppcastItem : NSObject<NSSecureCoding>
This is extracted from the @c <sparkle:minimumAutoupdateVersion> element.
*/
@property (copy, readonly, nullable) NSString *minimumAutoupdateVersion;
@property (nonatomic, copy, readonly, nullable) NSString *minimumAutoupdateVersion;
/**
Indicates whether or not the update item is a major upgrade.
An update is a major upgrade if the application's bundle version doesn't meet the `minimumAutoupdateVersion` requirement.
*/
@property (getter=isMajorUpgrade, readonly) BOOL majorUpgrade;
@property (nonatomic, getter=isMajorUpgrade, readonly) BOOL majorUpgrade;
/**
Previously skipped upgrades by the user will be ignored if they skipped an update whose version precedes this version.
@ -294,7 +309,7 @@ SU_EXPORT @interface SUAppcastItem : NSObject<NSSecureCoding>
Old applications must be using Sparkle 2 or later to support the top-level @c <sparkle:criticalUpdate> element.
*/
@property (getter=isCriticalUpdate, readonly) BOOL criticalUpdate;
@property (nonatomic, getter=isCriticalUpdate, readonly) BOOL criticalUpdate;
/**
Specifies the operating system the download update is available for if provided.
@ -310,14 +325,14 @@ SU_EXPORT @interface SUAppcastItem : NSObject<NSSecureCoding>
This is extracted from the @c sparkle:os attribute in the @c <enclosure> element.
*/
@property (copy, readonly, nullable) NSString *osString;
@property (nonatomic, copy, readonly, nullable) NSString *osString;
/**
Indicates whether or not this update item is for macOS.
This is determined from the `osString` property.
*/
@property (getter=isMacOsUpdate, readonly) BOOL macOsUpdate;
@property (nonatomic, getter=isMacOsUpdate, readonly) BOOL macOsUpdate;
/**
The delta updates for this update item.
@ -331,7 +346,7 @@ SU_EXPORT @interface SUAppcastItem : NSObject<NSSecureCoding>
This is extracted from the @c <sparkle:deltas> element.
*/
@property (copy, readonly, nullable) NSDictionary<NSString *, SUAppcastItem *> *deltaUpdates;
@property (nonatomic, copy, readonly, nullable) NSDictionary<NSString *, SUAppcastItem *> *deltaUpdates;
/**
The expected size of the Sparkle executable file before applying this delta update.
@ -342,7 +357,7 @@ SU_EXPORT @interface SUAppcastItem : NSObject<NSSecureCoding>
This is extracted from the @c sparkle:deltaFromSparkleExecutableSize attribute from the @c <enclosure> element of a @c sparkle:deltas item.
This attribute is optional for delta update items.
*/
@property (nonatomic, readonly, nullable) NSNumber *deltaFromSparkleExecutableSize;
@property (nonatomic, nonatomic, readonly, nullable) NSNumber *deltaFromSparkleExecutableSize;
/**
An expected set of Sparkle's locales present on disk before applying this delta update.
@ -354,21 +369,21 @@ SU_EXPORT @interface SUAppcastItem : NSObject<NSSecureCoding>
This is extracted from the @c sparkle:deltaFromSparkleLocales attribute from the @c <enclosure> element of a @c sparkle:deltas item.
The locales extracted from this attribute are delimited by a comma (e.g. "en,ca,fr,hr,hu"). This attribute is optional for delta update items.
*/
@property (nonatomic, readonly, nullable) NSSet<NSString *> *deltaFromSparkleLocales;
@property (nonatomic, nonatomic, readonly, nullable) NSSet<NSString *> *deltaFromSparkleLocales;
/**
Indicates whether or not the update item is a delta update.
An update item is a delta update if it is in the `deltaUpdates` of another update item.
*/
@property (getter=isDeltaUpdate, readonly) BOOL deltaUpdate;
@property (nonatomic, getter=isDeltaUpdate, readonly) BOOL deltaUpdate;
/**
The dictionary representing the entire appcast item.
This is useful for querying custom extensions or elements from the appcast item.
*/
@property (readonly, copy) NSDictionary *propertiesDictionary;
@property (nonatomic, readonly, copy) NSDictionary *propertiesDictionary;
- (instancetype)init NS_UNAVAILABLE;

View file

@ -11,7 +11,7 @@
#import <Foundation/Foundation.h>
#if defined(BUILDING_SPARKLE_TOOL) || defined(BUILDING_SPARKLE_TESTS)
#if defined(BUILDING_SPARKLE_SOURCES_EXTERNALLY)
// Ignore incorrect warning
#pragma clang diagnostic push
#pragma clang diagnostic ignored "-Wquoted-include-in-framework-header"
@ -44,6 +44,7 @@ typedef NS_ENUM(OSStatus, SUError) {
SUResumeAppcastError = 1004,
SURunningTranslocated = 1005,
SUWebKitTerminationError = 1006,
SUReleaseNotesError = 1007,
// Download phase errors.
SUTemporaryDirectoryError = 2000,

View file

@ -11,7 +11,7 @@
#import <Foundation/Foundation.h>
#ifdef BUILDING_SPARKLE_TOOL
#if defined(BUILDING_SPARKLE_SOURCES_EXTERNALLY)
// Ignore incorrect warning
#pragma clang diagnostic push
#pragma clang diagnostic ignored "-Wquoted-include-in-framework-header"

View file

@ -7,7 +7,18 @@
//
#import <Foundation/Foundation.h>
#if defined(BUILDING_SPARKLE_SOURCES_EXTERNALLY)
// Ignore incorrect warning
#pragma clang diagnostic push
#pragma clang diagnostic ignored "-Wquoted-include-in-framework-header"
#import "SUExport.h"
#pragma clang diagnostic pop
#else
#import <Sparkle/SUExport.h>
#endif
NS_ASSUME_NONNULL_BEGIN
/**
This class represents a response for permission to check updates.
@ -17,24 +28,46 @@ SU_EXPORT @interface SUUpdatePermissionResponse : NSObject<NSSecureCoding>
/**
Initializes a new update permission response instance.
@param automaticUpdateChecks Flag for whether to allow automatic update checks.
@param automaticUpdateChecks Flag to enable automatic update checks.
@param sendSystemProfile Flag for if system profile information should be sent to the server hosting the appcast.
*/
- (instancetype)initWithAutomaticUpdateChecks:(BOOL)automaticUpdateChecks sendSystemProfile:(BOOL)sendSystemProfile;
/**
Initializes a new update permission response instance.
@param automaticUpdateChecks Flag to enable automatic update checks.
@param automaticUpdateDownloading Flag to enable automatic downloading and installing of updates. If this is nil, this option will be ignored.
@param sendSystemProfile Flag for if system profile information should be sent to the server hosting the appcast.
*/
- (instancetype)initWithAutomaticUpdateChecks:(BOOL)automaticUpdateChecks automaticUpdateDownloading:(NSNumber * _Nullable)automaticUpdateDownloading sendSystemProfile:(BOOL)sendSystemProfile;
/*
Use -initWithAutomaticUpdateChecks:sendSystemProfile: instead.
*/
- (instancetype)init NS_UNAVAILABLE;
/**
A read-only property indicating whether automatic update checks are allowed or not.
A read-only property indicating if update checks should be done automatically.
*/
@property (nonatomic, readonly) BOOL automaticUpdateChecks;
/**
A read-only property indicating if updates should be automatically downloaded and installed.
If this property is `nil`, then no user choice was made for this option.
If `automaticUpdateChecks` is `NO` then this property should not be `@(YES)`.
Set it to `NO` if the user was given the choice of automatically downloading and installing updates,
otherwise set it to `nil`.
*/
@property (nonatomic, readonly, nullable) NSNumber *automaticUpdateDownloading;
/**
A read-only property indicating if system profile should be sent or not.
*/
@property (nonatomic, readonly) BOOL sendSystemProfile;
@end
NS_ASSUME_NONNULL_END

View file

@ -10,10 +10,22 @@
#define SUUPDATER_H
#import <Foundation/Foundation.h>
#if defined(BUILDING_SPARKLE_SOURCES_EXTERNALLY)
// Ignore incorrect warning
#pragma clang diagnostic push
#pragma clang diagnostic ignored "-Wquoted-include-in-framework-header"
#import "SUExport.h"
#import "SUVersionComparisonProtocol.h"
#import "SUVersionDisplayProtocol.h"
#import "SUUpdaterDelegate.h"
#pragma clang diagnostic pop
#else
#import <Sparkle/SUExport.h>
#import <Sparkle/SUVersionComparisonProtocol.h>
#import <Sparkle/SUVersionDisplayProtocol.h>
#import <Sparkle/SUUpdaterDelegate.h>
#endif
@class SUAppcastItem, SUAppcast, NSMenuItem;
@ -157,7 +169,7 @@ SU_EXPORT @interface SUUpdater : NSObject
The keys of this dictionary are HTTP header fields (NSString) and values are corresponding values (NSString)
*/
@property (copy) NSDictionary<NSString *, NSString *> *httpHeaders;
@property (copy, nonatomic) NSDictionary<NSString *, NSString *> *httpHeaders;
/*!
A property indicating whether or not the user's system profile information is sent when checking for updates.

View file

@ -7,7 +7,16 @@
//
#import <Foundation/Foundation.h>
#if defined(BUILDING_SPARKLE_SOURCES_EXTERNALLY)
// Ignore incorrect warning
#pragma clang diagnostic push
#pragma clang diagnostic ignored "-Wquoted-include-in-framework-header"
#import "SUExport.h"
#pragma clang diagnostic pop
#else
#import <Sparkle/SUExport.h>
#endif
@protocol SUVersionComparison, SUVersionDisplay;
@class SUUpdater, SUAppcast, SUAppcastItem;

View file

@ -11,7 +11,7 @@
#import <Foundation/Foundation.h>
#ifdef BUILDING_SPARKLE_TOOL
#if defined(BUILDING_SPARKLE_SOURCES_EXTERNALLY)
// Ignore incorrect warning
#pragma clang diagnostic push
#pragma clang diagnostic ignored "-Wquoted-include-in-framework-header"

View file

@ -7,19 +7,72 @@
//
#import <Foundation/Foundation.h>
#if defined(BUILDING_SPARKLE_SOURCES_EXTERNALLY)
// Ignore incorrect warning
#pragma clang diagnostic push
#pragma clang diagnostic ignored "-Wquoted-include-in-framework-header"
#import "SUExport.h"
#pragma clang diagnostic pop
#else
#import <Sparkle/SUExport.h>
#endif
@class SUAppcastItem;
NS_ASSUME_NONNULL_BEGIN
/**
Applies special display formatting to version numbers.
Applies special display formatting to version numbers of the bundle to update and the update before presenting them to the user.
*/
SU_EXPORT @protocol SUVersionDisplay
SU_EXPORT @protocol SUVersionDisplay <NSObject>
/**
Formats two version strings.
Formats an update's version string and bundle's version string for display.
This method is used to format both the display version of the update and the display version of the bundle to update.
The display versions returned by this method are then used for presenting to the user when a new update is available,
or when the user cannot download/install the latest update for a specific reason, or when the user has a newer version
installed than the latest known version in the update feed.
On input, the `update.displayVersionString` and `*inOutBundleDisplayVersion` may be the same, but the
`update.versionString` and `bundleVersion` will differ. To differentiate between these display versions, you may
choose to return different display version strings for the update and bundle.
@param update The update to format the update display version from. You can query `update.displayVersionString` and `update.versionString` to retrieve the update's version information.
@param inOutBundleDisplayVersion On input, the display version string (or `CFBundleShortVersionString`) of the bundle to update. On output, this is the display version string of the bundle to show to the user.
@param bundleVersion The version (or CFBundleVersion) of the bundle to update.
@return A new display version string of the `update.displayVersionString` to show to the user.
*/
- (NSString *)formatUpdateDisplayVersionFromUpdate:(SUAppcastItem *)update andBundleDisplayVersion:(NSString * _Nonnull __autoreleasing * _Nonnull)inOutBundleDisplayVersion withBundleVersion:(NSString *)bundleVersion;
Both versions are provided so that important distinguishing information
can be displayed while also leaving out unnecessary/confusing parts.
@optional
/**
Formats a bundle's version string for display.
This method is used to format the display version of the bundle.
This method may be used when no new update is available and the user is already on the latest known version.
In this case, no new update version is shown to the user.
This method is optional. If it's not implemented, Sparkle will default to using the `bundleDisplayVersion` passed to this method.
@param bundleDisplayVersion The display version string (or `CFBundleShortVersionString`) of the bundle to update.
@param bundleVersion The version (or `CFBundleVersion`) of the bundle to update.
@param matchingUpdate The update in the feed that corresponds to the current bundle, or `nil` if no matching update item could be found in the feed.
@return A new display version string of the bundle to show to the user.
*/
- (NSString *)formatBundleDisplayVersion:(NSString *)bundleDisplayVersion withBundleVersion:(NSString *)bundleVersion matchingUpdate:(SUAppcastItem * _Nullable)matchingUpdate;
/**
Formats two version strings.
Both versions are provided so that important distinguishing information
can be displayed while also leaving out unnecessary/confusing parts.
*/
- (void)formatVersion:(NSString *_Nonnull*_Nonnull)inOutVersionA andVersion:(NSString *_Nonnull*_Nonnull)inOutVersionB;
- (void)formatVersion:(NSString *_Nonnull*_Nonnull)inOutVersionA andVersion:(NSString *_Nonnull*_Nonnull)inOutVersionB __deprecated_msg("Please use -formatUpdateDisplayVersionFromUpdate:andBundleDisplayVersion:withBundleVersion:");
@end
NS_ASSUME_NONNULL_END

View file

@ -1,6 +1,6 @@
framework module Sparkle {
umbrella header "Sparkle.h"
export *
module * { export * }
}

View file

@ -8,7 +8,15 @@
#import <Foundation/Foundation.h>
#if defined(BUILDING_SPARKLE_SOURCES_EXTERNALLY)
// Ignore incorrect warning
#pragma clang diagnostic push
#pragma clang diagnostic ignored "-Wquoted-include-in-framework-header"
#import "SUExport.h"
#pragma clang diagnostic pop
#else
#import <Sparkle/SUExport.h>
#endif
NS_ASSUME_NONNULL_BEGIN

View file

@ -8,8 +8,17 @@
#ifndef SPUStandardUserDriver_Private_h
#define SPUStandardUserDriver_Private_h
#if defined(BUILDING_SPARKLE_SOURCES_EXTERNALLY)
// Ignore incorrect warning
#pragma clang diagnostic push
#pragma clang diagnostic ignored "-Wquoted-include-in-framework-header"
#import "SPUStandardUserDriver.h"
#import "SUExport.h"
#pragma clang diagnostic pop
#else
#import <Sparkle/SPUStandardUserDriver.h>
#import <Sparkle/SUExport.h>
#endif
@class NSWindowController;

View file

@ -7,7 +7,16 @@
//
#import <Foundation/Foundation.h>
#if defined(BUILDING_SPARKLE_SOURCES_EXTERNALLY)
// Ignore incorrect warning
#pragma clang diagnostic push
#pragma clang diagnostic ignored "-Wquoted-include-in-framework-header"
#import "SUExport.h"
#pragma clang diagnostic pop
#else
#import <Sparkle/SUExport.h>
#endif
NS_ASSUME_NONNULL_BEGIN

View file

@ -10,6 +10,7 @@
#define SUAppcastItem_Private_h
#import <Foundation/Foundation.h>
#import <Sparkle/SUAppcastItem.h>
NS_ASSUME_NONNULL_BEGIN
@ -28,9 +29,9 @@ NS_ASSUME_NONNULL_BEGIN
- (nullable instancetype)initWithDictionary:(NSDictionary *)dict relativeToURL:(NSURL * _Nullable)appcastURL stateResolver:(SPUAppcastItemStateResolver *)stateResolver failureReason:(NSString * _Nullable __autoreleasing *_Nullable)error;
/**
The DSA and EdDSA signatures along with their statuses.
The EdDSA and DSA signatures along with their statuses.
*/
@property (readonly, nullable) SUSignatures *signatures;
@property (readonly, nonatomic, nullable) SUSignatures *signatures;
@end

View file

@ -9,10 +9,18 @@
#ifndef SUInstallerLauncher_Private_h
#define SUInstallerLauncher_Private_h
#if defined(BUILDING_SPARKLE_SOURCES_EXTERNALLY)
// Ignore incorrect warning
#pragma clang diagnostic push
#pragma clang diagnostic ignored "-Wquoted-include-in-framework-header"
#import "SUExport.h"
#import "SPUInstallationType.h"
#pragma clang diagnostic pop
#else
#import <Sparkle/SUExport.h>
// Chances are clients will need this too
#import <Sparkle/SPUInstallationType.h>
#endif
@class NSString;

View file

@ -3,7 +3,7 @@
<plist version="1.0">
<dict>
<key>BuildMachineOSBuild</key>
<string>21G115</string>
<string>22G513</string>
<key>CFBundleDevelopmentRegion</key>
<string>en</string>
<key>CFBundleExecutable</key>
@ -17,7 +17,7 @@
<key>CFBundlePackageType</key>
<string>FMWK</string>
<key>CFBundleShortVersionString</key>
<string>2.3.0</string>
<string>2.6.0</string>
<key>CFBundleSignature</key>
<string>????</string>
<key>CFBundleSupportedPlatforms</key>
@ -25,23 +25,23 @@
<string>MacOSX</string>
</array>
<key>CFBundleVersion</key>
<string>2021</string>
<string>2036</string>
<key>DTCompiler</key>
<string>com.apple.compilers.llvm.clang.1_0</string>
<key>DTPlatformBuild</key>
<string>13F100</string>
<string></string>
<key>DTPlatformName</key>
<string>macosx</string>
<key>DTPlatformVersion</key>
<string>12.3</string>
<string>14.2</string>
<key>DTSDKBuild</key>
<string>21E226</string>
<string>23C53</string>
<key>DTSDKName</key>
<string>macosx12.3</string>
<string>macosx14.2</string>
<key>DTXcode</key>
<string>1341</string>
<string>1520</string>
<key>DTXcodeBuild</key>
<string>13F100</string>
<string>15C500b</string>
<key>LSMinimumSystemVersion</key>
<string>10.13</string>
</dict>

View file

@ -16,5 +16,8 @@
/* Class = "NSButtonCell"; title = "Include anonymous system profile"; ObjectID = "gz7-LM-gNf"; */
"gz7-LM-gNf.title" = "تضمين تقرير عن النظام دون ذكر معلومات عن المستخدم";
/* Class = "NSButtonCell"; title = "Automatically download and install updates"; ObjectID = "AUc-33-qGN"; */
"AUc-33-qGN.title" = "تنزيل التحديثات وتثبيتها تلقائيًا في المست";
/* Class = "NSButtonCell"; title = "Check Automatically"; ObjectID = "OhZ-1K-DmA"; */
"OhZ-1K-DmA.title" = "التحقق تلقائيًا";

View file

@ -16,5 +16,8 @@
/* Class = "NSButtonCell"; title = "Include anonymous system profile"; ObjectID = "gz7-LM-gNf"; */
"gz7-LM-gNf.title" = "Odeslat anonymní systémový profil";
/* Class = "NSButtonCell"; title = "Automatically download and install updates"; ObjectID = "AUc-33-qGN"; */
"AUc-33-qGN.title" = "Stahovat a instalovat aktualizace automaticky";
/* Class = "NSButtonCell"; title = "Check Automatically"; ObjectID = "OhZ-1K-DmA"; */
"OhZ-1K-DmA.title" = "Automaticky vyhledávat";

View file

@ -16,5 +16,8 @@
/* Class = "NSButtonCell"; title = "Include anonymous system profile"; ObjectID = "gz7-LM-gNf"; */
"gz7-LM-gNf.title" = "Vedhæft anonym systemprofil";
/* Class = "NSButtonCell"; title = "Automatically download and install updates"; ObjectID = "AUc-33-qGN"; */
"AUc-33-qGN.title" = "Hent og installer opdateringer automatisk";
/* Class = "NSButtonCell"; title = "Check Automatically"; ObjectID = "OhZ-1K-DmA"; */
"OhZ-1K-DmA.title" = "Søg automatisk";

View file

@ -16,5 +16,8 @@
/* Class = "NSButtonCell"; title = "Include anonymous system profile"; ObjectID = "gz7-LM-gNf"; */
"gz7-LM-gNf.title" = "Anonymisiertes Systemprofil übertragen";
/* Class = "NSButtonCell"; title = "Automatically download and install updates"; ObjectID = "AUc-33-qGN"; */
"AUc-33-qGN.title" = "Updates automatisch laden und installieren";
/* Class = "NSButtonCell"; title = "Check Automatically"; ObjectID = "OhZ-1K-DmA"; */
"OhZ-1K-DmA.title" = "Automatisch suchen";

View file

@ -16,5 +16,8 @@
/* Class = "NSButtonCell"; title = "Include anonymous system profile"; ObjectID = "gz7-LM-gNf"; */
"gz7-LM-gNf.title" = "Συμπερίληψη του ανώνυμου προφίλ του συστήματός σας";
/* Class = "NSButtonCell"; title = "Automatically download and install updates"; ObjectID = "AUc-33-qGN"; */
"AUc-33-qGN.title" = "Αυτόματη λήψη και εγκατάσταση ενημερώσεων";
/* Class = "NSButtonCell"; title = "Check Automatically"; ObjectID = "OhZ-1K-DmA"; */
"OhZ-1K-DmA.title" = "Αυτόματος Ελεγχος";

View file

@ -20,5 +20,8 @@
/* Class = "NSButtonCell"; title = "Include anonymous system profile"; ObjectID = "180"; */
"gz7-LM-gNf.title" = "Include anonymous system profile";
/* Class = "NSButtonCell"; title = "Automatically download and install updates"; ObjectID = "AUc-33-qGN"; */
"AUc-33-qGN.title" = "Automatically download and install updates";
/* Class = "NSTextFieldCell"; title = "Anonymous system profile information is used to help us plan future development work. Please contact us if you have any questions about this.\n\nThis is the information that would be sent:"; ObjectID = "183"; */
"183.title" = "Anonymous system profile information is used to help us plan future development work. Please contact us if you have any questions about this.\n\nThis is the information that would be sent:";

View file

@ -16,5 +16,8 @@
/* Class = "NSButtonCell"; title = "Include anonymous system profile"; ObjectID = "gz7-LM-gNf"; */
"gz7-LM-gNf.title" = "Incluir perfil de sistema anónimo";
/* Class = "NSButtonCell"; title = "Automatically download and install updates"; ObjectID = "AUc-33-qGN"; */
"AUc-33-qGN.title" = "Descargar e instalar actualizaciones automáticamente";
/* Class = "NSButtonCell"; title = "Check Automatically"; ObjectID = "OhZ-1K-DmA"; */
"OhZ-1K-DmA.title" = "Comprobar automáticamente";

View file

@ -11,10 +11,13 @@
"cCJ-V0-aTi.title" = "Älä tarkista";
/* Class = "NSTextFieldCell"; title = "Check for updates automatically?"; ObjectID = "gmh-T4-BO0"; */
"gmh-T4-BO0.title" = "Tarkista päivityks käynnistyksen yhteydessä?";
"gmh-T4-BO0.title" = "Tarkista päivitykset käynnistyksen yhteydessä?";
/* Class = "NSButtonCell"; title = "Include anonymous system profile"; ObjectID = "gz7-LM-gNf"; */
"gz7-LM-gNf.title" = "Sisällytä nimetön järjestelmäprofiili";
/* Class = "NSButtonCell"; title = "Automatically download and install updates"; ObjectID = "AUc-33-qGN"; */
"AUc-33-qGN.title" = "Hae ja asenna päivitykset automaattisesti";
/* Class = "NSButtonCell"; title = "Check Automatically"; ObjectID = "OhZ-1K-DmA"; */
"OhZ-1K-DmA.title" = "Tarkista automaattisesti";

View file

@ -16,5 +16,8 @@
/* Class = "NSButtonCell"; title = "Include anonymous system profile"; ObjectID = "gz7-LM-gNf"; */
"gz7-LM-gNf.title" = "Avec transmission anonyme de mon profil système";
/* Class = "NSButtonCell"; title = "Automatically download and install updates"; ObjectID = "AUc-33-qGN"; */
"AUc-33-qGN.title" = "Télécharger et installer automatiquement les mises à jour";
/* Class = "NSButtonCell"; title = "Check Automatically"; ObjectID = "OhZ-1K-DmA"; */
"OhZ-1K-DmA.title" = "Vérifier automatiquement";

View file

@ -16,5 +16,8 @@
/* Class = "NSButtonCell"; title = "Include anonymous system profile"; ObjectID = "gz7-LM-gNf"; */
"gz7-LM-gNf.title" = "Uključi anonimizirane podatke o profilu sustava";
/* Class = "NSButtonCell"; title = "Automatically download and install updates"; ObjectID = "AUc-33-qGN"; */
"AUc-33-qGN.title" = "Preuzmi i instaliraj nadogradnje automatski";
/* Class = "NSButtonCell"; title = "Check Automatically"; ObjectID = "OhZ-1K-DmA"; */
"OhZ-1K-DmA.title" = "Provjeri automatski";

View file

@ -16,5 +16,8 @@
/* Class = "NSButtonCell"; title = "Include anonymous system profile"; ObjectID = "gz7-LM-gNf"; */
"gz7-LM-gNf.title" = "Innifela nafnlausa kerfisskýrslu";
/* Class = "NSButtonCell"; title = "Automatically download and install updates"; ObjectID = "AUc-33-qGN"; */
"AUc-33-qGN.title" = "Sækja og innsetja uppfærslur sjálfkrafa";
/* Class = "NSButtonCell"; title = "Check Automatically"; ObjectID = "OhZ-1K-DmA"; */
"OhZ-1K-DmA.title" = "Kanna sjálfkrafa";

View file

@ -16,5 +16,8 @@
/* Class = "NSButtonCell"; title = "Include anonymous system profile"; ObjectID = "gz7-LM-gNf"; */
"gz7-LM-gNf.title" = "Include profilo di sistema anonimo";
/* Class = "NSButtonCell"; title = "Automatically download and install updates"; ObjectID = "AUc-33-qGN"; */
"AUc-33-qGN.title" = "Scarica e installa automaticamente gli aggiornamenti";
/* Class = "NSButtonCell"; title = "Check Automatically"; ObjectID = "OhZ-1K-DmA"; */
"OhZ-1K-DmA.title" = "Controlla Automaticamente";

View file

@ -5,7 +5,7 @@
"170.title" = "リリースノート:";
/* Class = "NSButtonCell"; title = "Remind Me Later"; ObjectID = "171"; */
"171.title" = "で通知";
"171.title" = "あとで通知";
/* Class = "NSButtonCell"; title = "Skip This Version"; ObjectID = "172"; */
"172.title" = "このバージョンはスキップ";

View file

@ -18,3 +18,6 @@
/* Class = "NSButtonCell"; title = "Check Automatically"; ObjectID = "OhZ-1K-DmA"; */
"OhZ-1K-DmA.title" = "自動で確認";
/* Class = "NSButtonCell"; title = "Automatically download and install updates"; ObjectID = "AUc-33-qGN"; */
"AUc-33-qGN.title" = "アップデートを自動でダウンロードしてインストール";

View file

@ -1,8 +1,8 @@
/* Class = "NSWindow"; title = "Software Update"; ObjectID = "5"; */
"5.title" = "Software Update";
"5.title" = "소프트웨어 업데이트";
/* Class = "NSTextFieldCell"; title = "Release Notes:"; ObjectID = "170"; */
"170.title" = "배포 정보:";
"170.title" = "릴리즈 노트:";
/* Class = "NSButtonCell"; title = "Remind Me Later"; ObjectID = "171"; */
"171.title" = "나중에";
@ -14,4 +14,4 @@
"173.title" = "업데이트 설치";
/* Class = "NSButtonCell"; title = "Automatically download and install updates in the future"; ObjectID = "175"; */
"175.title" = "나중에 업데이트 자동으로 다운로드 및 설치";
"175.title" = "향후 업데이트 자동 다운로드 및 설치";

View file

@ -4,17 +4,20 @@
/* Class = "NSTextFieldCell"; title = "Text Cell"; ObjectID = "45"; */
"45.title" = "Text Cell";
/* Class = "NSTextFieldCell"; title = "Anonymous system profile information is used to help us plan future development work. Please contact us if you have any questions about this.\n\nThis is the information that would be sent:"; ObjectID = "183"; */
"183.title" = "익명으로 보내지는 시스템 정보로 차후 프로그램 개발에 도움이 될 수 있습니다. 질문이 있으시면 연락 주십시오.\n\n아래 정보가 전송될 것입니다.";
/* Class = "NSButtonCell"; title = "Check Automatically"; ObjectID = "176"; */
"OhZ-1K-DmA.title" = "자동으로 확인";
/* Class = "NSButtonCell"; title = "Dont Check"; ObjectID = "cCJ-V0-aTi"; */
/* Class = "NSButtonCell"; title = "Dont Check"; ObjectID = "177"; */
"cCJ-V0-aTi.title" = "취소";
/* Class = "NSTextFieldCell"; title = "Check for updates automatically?"; ObjectID = "gmh-T4-BO0"; */
"gmh-T4-BO0.title" = "자동으로 업데이트 확인할까요?";
/* Class = "NSTextFieldCell"; title = "Check for updates automatically?"; ObjectID = "178"; */
"gmh-T4-BO0.title" = "업데이트를 자동으로 확인할까요?";
/* Class = "NSButtonCell"; title = "Include anonymous system profile"; ObjectID = "gz7-LM-gNf"; */
/* Class = "NSButtonCell"; title = "Include anonymous system profile"; ObjectID = "180"; */
"gz7-LM-gNf.title" = "익명 시스템 정보 포함";
/* Class = "NSButtonCell"; title = "Check Automatically"; ObjectID = "OhZ-1K-DmA"; */
"OhZ-1K-DmA.title" = "자동으로 확인";
/* Class = "NSButtonCell"; title = "Automatically download and install updates"; ObjectID = "AUc-33-qGN"; */
"AUc-33-qGN.title" = "업데이트 자동 다운로드 및 설치";
/* Class = "NSTextFieldCell"; title = "Anonymous system profile information is used to help us plan future development work. Please contact us if you have any questions about this.\n\nThis is the information that would be sent:"; ObjectID = "183"; */
"183.title" = "익명으로 보내지는 시스템 정보로 차후 프로그램 개발에 도움이 될 수 있습니다. 질문이 있으시면 연락 주십시오.\n\n아래 정보가 전송될 것입니다.";

View file

@ -16,6 +16,9 @@
/* Class = "NSButtonCell"; title = "Include anonymous system profile"; ObjectID = "gz7-LM-gNf"; */
"gz7-LM-gNf.title" = "Inkluder anonym systemprofil";
/* Class = "NSButtonCell"; title = "Automatically download and install updates"; ObjectID = "AUc-33-qGN"; */
"AUc-33-qGN.title" = "Last ned og installer automatisk";
/* Class = "NSButtonCell"; title = "Check Automatically"; ObjectID = "OhZ-1K-DmA"; */
"OhZ-1K-DmA.title" = "Søk automatisk";

View file

@ -10,5 +10,8 @@
/* Class = "NSButtonCell"; title = "Include anonymous system profile"; ObjectID = "gz7-LM-gNf"; */
"gz7-LM-gNf.title" = "Voeg anoniem systeemprofiel bij";
/* Class = "NSButtonCell"; title = "Automatically download and install updates"; ObjectID = "AUc-33-qGN"; */
"AUc-33-qGN.title" = "Download en installeer updates automatisch";
/* Class = "NSButtonCell"; title = "Check Automatically"; ObjectID = "OhZ-1K-DmA"; */
"OhZ-1K-DmA.title" = "Zoek automatisch";

View file

@ -16,5 +16,8 @@
/* Class = "NSButtonCell"; title = "Include anonymous system profile"; ObjectID = "gz7-LM-gNf"; */
"gz7-LM-gNf.title" = "Załącz anonimowe informacje o systemie";
/* Class = "NSButtonCell"; title = "Automatically download and install updates"; ObjectID = "AUc-33-qGN"; */
"AUc-33-qGN.title" = "Automatycznie pobierz i zainstaluj uaktualnienia";
/* Class = "NSButtonCell"; title = "Check Automatically"; ObjectID = "OhZ-1K-DmA"; */
"OhZ-1K-DmA.title" = "Sprawdzaj automatycznie";

View file

@ -19,5 +19,8 @@
/* Class = "NSButtonCell"; title = "Include anonymous system profile"; ObjectID = "gz7-LM-gNf"; */
"gz7-LM-gNf.title" = "Incluir perfil anônimo do sistema";
/* Class = "NSButtonCell"; title = "Automatically download and install updates"; ObjectID = "AUc-33-qGN"; */
"AUc-33-qGN.title" = "Baixar e instalar atualizações automaticamente";
/* Class = "NSButtonCell"; title = "Check Automatically"; ObjectID = "OhZ-1K-DmA"; */
"OhZ-1K-DmA.title" = "Buscar Automaticamente";

View file

@ -16,5 +16,8 @@
/* Class = "NSButtonCell"; title = "Include anonymous system profile"; ObjectID = "gz7-LM-gNf"; */
"gz7-LM-gNf.title" = "Incluir perfil de sistema anónimo";
/* Class = "NSButtonCell"; title = "Automatically download and install updates"; ObjectID = "AUc-33-qGN"; */
"AUc-33-qGN.title" = "Transferir e instalar actualizações automaticamente";
/* Class = "NSButtonCell"; title = "Check Automatically"; ObjectID = "OhZ-1K-DmA"; */
"OhZ-1K-DmA.title" = "Procurar automaticamente";

View file

@ -16,5 +16,8 @@
/* Class = "NSButtonCell"; title = "Include anonymous system profile"; ObjectID = "gz7-LM-gNf"; */
"gz7-LM-gNf.title" = "Include profil anomin de sistem";
/* Class = "NSButtonCell"; title = "Automatically download and install updates"; ObjectID = "AUc-33-qGN"; */
"AUc-33-qGN.title" = "Descarcă și instalează în automat actualizările";
/* Class = "NSButtonCell"; title = "Check Automatically"; ObjectID = "OhZ-1K-DmA"; */
"OhZ-1K-DmA.title" = "Verifică în mod automat";

View file

@ -16,5 +16,8 @@
/* Class = "NSButtonCell"; title = "Include anonymous system profile"; ObjectID = "gz7-LM-gNf"; */
"gz7-LM-gNf.title" = "Включить анонимный профиль системы";
/* Class = "NSButtonCell"; title = "Automatically download and install updates"; ObjectID = "AUc-33-qGN"; */
"AUc-33-qGN.title" = "Автоматически загружать и устанавливать обновления";
/* Class = "NSButtonCell"; title = "Check Automatically"; ObjectID = "OhZ-1K-DmA"; */
"OhZ-1K-DmA.title" = "Проверять автоматически";

View file

@ -16,5 +16,8 @@
/* Class = "NSButtonCell"; title = "Include anonymous system profile"; ObjectID = "gz7-LM-gNf"; */
"gz7-LM-gNf.title" = "Vključi anonimni profil sistema";
/* Class = "NSButtonCell"; title = "Automatically download and install updates"; ObjectID = "AUc-33-qGN"; */
"AUc-33-qGN.title" = "Samodejno namestite posodobitve";
/* Class = "NSButtonCell"; title = "Check Automatically"; ObjectID = "OhZ-1K-DmA"; */
"OhZ-1K-DmA.title" = "Samodejno preverjaj";

View file

@ -16,5 +16,8 @@
/* Class = "NSButtonCell"; title = "Include anonymous system profile"; ObjectID = "gz7-LM-gNf"; */
"gz7-LM-gNf.title" = "Inkludera anonym systemprofil";
/* Class = "NSButtonCell"; title = "Automatically download and install updates"; ObjectID = "AUc-33-qGN"; */
"AUc-33-qGN.title" = "Hämta och installera nya uppdateringar automatiskt.";
/* Class = "NSButtonCell"; title = "Check Automatically"; ObjectID = "OhZ-1K-DmA"; */
"OhZ-1K-DmA.title" = "Kontrollera automatiskt";

View file

@ -16,5 +16,8 @@
/* Class = "NSButtonCell"; title = "Include anonymous system profile"; ObjectID = "gz7-LM-gNf"; */
"gz7-LM-gNf.title" = "ส่งข้อมูลระบบแบบนิรนาม";
/* Class = "NSButtonCell"; title = "Automatically download and install updates"; ObjectID = "AUc-33-qGN"; */
"AUc-33-qGN.title" = "ดาวน์โหลดและติดตั้งอัพเดทโดยอัตโนมัติ";
/* Class = "NSButtonCell"; title = "Check Automatically"; ObjectID = "OhZ-1K-DmA"; */
"OhZ-1K-DmA.title" = "ตรวจสอบโดยอัตโนมัติ";

View file

@ -1,17 +1,17 @@
/* Class = "NSWindow"; title = "Software Update"; ObjectID = "5"; */
"5.title" = "Software-Aktualisierung";
"5.title" = "Yazılım Güncelleme";
/* Class = "NSTextFieldCell"; title = "Release Notes:"; ObjectID = "170"; */
"170.title" = "Sürüm Hakkında:";
"170.title" = "Sürüm notları:";
/* Class = "NSButtonCell"; title = "Remind Me Later"; ObjectID = "171"; */
"171.title" = "Sonra Hatırlat";
"171.title" = "Daha Sonra Anımsat";
/* Class = "NSButtonCell"; title = "Skip This Version"; ObjectID = "172"; */
"172.title" = "Bu Sürümü Geç";
"172.title" = "Bu Sürümü Atla";
/* Class = "NSButtonCell"; title = "Install Update"; ObjectID = "173"; */
"173.title" = "Kur";
"173.title" = "Yükle";
/* Class = "NSButtonCell"; title = "Automatically download and install updates in the future"; ObjectID = "175"; */
"175.title" = "Bundan sonra güncellemeleri kendiliğinden indir ve kur";
"175.title" = "Gelecekte güncellemeleri otomatik olarak indir ve yükle";

View file

@ -5,16 +5,19 @@
"45.title" = "Text Cell";
/* Class = "NSTextFieldCell"; title = "Anonymous system profile information is used to help us plan future development work. Please contact us if you have any questions about this.\n\nThis is the information that would be sent:"; ObjectID = "183"; */
"183.title" = "Gönderdiğiniz anonim sistem bilgileri bu yazılımın geliştirilmesi için kullanılacaktır. Konu ile ilgili ayrıntılı bilgi için lütfen bizimle bağlantıya geçiniz. Göndereceğiniz Bilgiler:";
"183.title" = "Gönderdiğiniz anonim sistem bilgileri bu yazılımın geliştirilmesi için kullanılacaktır. Konu ile ilgili ayrıntılı bilgi için lütfen bizimle iletişime geçin. Gönderilecek bilgiler:";
/* Class = "NSButtonCell"; title = "Dont Check"; ObjectID = "cCJ-V0-aTi"; */
"cCJ-V0-aTi.title" = "Arama";
"cCJ-V0-aTi.title" = "Denetleme";
/* Class = "NSTextFieldCell"; title = "Check for updates automatically?"; ObjectID = "gmh-T4-BO0"; */
"gmh-T4-BO0.title" = "Güncellemeler otomatik olarak aransın mı?";
"gmh-T4-BO0.title" = "Güncellemeler otomatik olarak denetlensin mi?";
/* Class = "NSButtonCell"; title = "Include anonymous system profile"; ObjectID = "gz7-LM-gNf"; */
"gz7-LM-gNf.title" = "Sistem bilgilerini kimlik gizlenmiş olarak gönder";
"gz7-LM-gNf.title" = "Anonim sistem profilini içer";
/* Class = "NSButtonCell"; title = "Automatically download and install updates"; ObjectID = "AUc-33-qGN"; */
"AUc-33-qGN.title" = "Güncellemeleri otomatik olarak indir ve yükle";
/* Class = "NSButtonCell"; title = "Check Automatically"; ObjectID = "OhZ-1K-DmA"; */
"OhZ-1K-DmA.title" = "Otomatik Olarak Ara";
"OhZ-1K-DmA.title" = "Otomatik Olarak Denetle";

View file

@ -16,5 +16,8 @@
/* Class = "NSButtonCell"; title = "Include anonymous system profile"; ObjectID = "gz7-LM-gNf"; */
"gz7-LM-gNf.title" = "Автоматично надсилати профіль системи";
/* Class = "NSButtonCell"; title = "Automatically download and install updates"; ObjectID = "AUc-33-qGN"; */
"AUc-33-qGN.title" = "Автоматично завантажувати та встановлювати оновлення";
/* Class = "NSButtonCell"; title = "Check Automatically"; ObjectID = "OhZ-1K-DmA"; */
"OhZ-1K-DmA.title" = "Перевіряти автоматично";

View file

@ -16,5 +16,8 @@
/* Class = "NSButtonCell"; title = "Include anonymous system profile"; ObjectID = "gz7-LM-gNf"; */
"gz7-LM-gNf.title" = "包括无记名系统概况";
/* Class = "NSButtonCell"; title = "Automatically download and install updates"; ObjectID = "AUc-33-qGN"; */
"AUc-33-qGN.title" = "自动下载并安装更新";
/* Class = "NSButtonCell"; title = "Check Automatically"; ObjectID = "OhZ-1K-DmA"; */
"OhZ-1K-DmA.title" = "自动核查";

View file

@ -0,0 +1,17 @@
/* Class = "NSWindow"; title = "Software Update"; ObjectID = "5"; */
"5.title" = "軟體更新";
/* Class = "NSTextFieldCell"; title = "Release Notes:"; ObjectID = "170"; */
"170.title" = "更新事項:";
/* Class = "NSButtonCell"; title = "Remind Me Later"; ObjectID = "171"; */
"171.title" = "稍後提醒我";
/* Class = "NSButtonCell"; title = "Skip This Version"; ObjectID = "172"; */
"172.title" = "跳過此版本";
/* Class = "NSButtonCell"; title = "Install Update"; ObjectID = "173"; */
"173.title" = "安裝更新";
/* Class = "NSButtonCell"; title = "Automatically download and install updates in the future"; ObjectID = "175"; */
"175.title" = "以後自動下載並安裝更新";

View file

@ -0,0 +1,23 @@
/* Class = "NSTextFieldCell"; title = "Text Cell"; ObjectID = "43"; */
"43.title" = "Text Cell";
/* Class = "NSTextFieldCell"; title = "Text Cell"; ObjectID = "45"; */
"45.title" = "Text Cell";
/* Class = "NSTextFieldCell"; title = "Anonymous system profile information is used to help us plan future development work. Please contact us if you have any questions about this.\n\nThis is the information that would be sent:"; ObjectID = "183"; */
"183.title" = "匿名系統概況資訊可用來協助我等計畫未來開發工作。若對此有任何疑問,請聯繫我等。\n\n以下係會傳送嘅資訊";
/* Class = "NSButtonCell"; title = "Dont Check"; ObjectID = "cCJ-V0-aTi"; */
"cCJ-V0-aTi.title" = "毋檢查";
/* Class = "NSTextFieldCell"; title = "Check for updates automatically?"; ObjectID = "gmh-T4-BO0"; */
"gmh-T4-BO0.title" = "自動檢查更新?";
/* Class = "NSButtonCell"; title = "Include anonymous system profile"; ObjectID = "gz7-LM-gNf"; */
"gz7-LM-gNf.title" = "包含匿名系統概況";
/* Class = "NSButtonCell"; title = "Automatically download and install updates"; ObjectID = "AUc-33-qGN"; */
"AUc-33-qGN.title" = "自動下載並安裝更新";
/* Class = "NSButtonCell"; title = "Check Automatically"; ObjectID = "OhZ-1K-DmA"; */
"OhZ-1K-DmA.title" = "自動檢查";

View file

@ -16,5 +16,8 @@
/* Class = "NSButtonCell"; title = "Include anonymous system profile"; ObjectID = "gz7-LM-gNf"; */
"gz7-LM-gNf.title" = "包含匿名的系統描述資料";
/* Class = "NSButtonCell"; title = "Automatically download and install updates"; ObjectID = "AUc-33-qGN"; */
"AUc-33-qGN.title" = "自動下載並安裝更新項目";
/* Class = "NSButtonCell"; title = "Check Automatically"; ObjectID = "OhZ-1K-DmA"; */
"OhZ-1K-DmA.title" = "自動檢查";

View file

@ -3,7 +3,7 @@
<plist version="1.0">
<dict>
<key>BuildMachineOSBuild</key>
<string>21G115</string>
<string>22G513</string>
<key>CFBundleDevelopmentRegion</key>
<string>en</string>
<key>CFBundleExecutable</key>
@ -12,12 +12,50 @@
<string>org.sparkle-project.Sparkle.Updater</string>
<key>CFBundleInfoDictionaryVersion</key>
<string>6.0</string>
<key>CFBundleLocalizations</key>
<array>
<string>en</string>
<string>ca</string>
<string>ar</string>
<string>cs</string>
<string>da</string>
<string>de</string>
<string>el</string>
<string>en</string>
<string>es</string>
<string>fa</string>
<string>fi</string>
<string>fr</string>
<string>he</string>
<string>hr</string>
<string>hu</string>
<string>is</string>
<string>it</string>
<string>ja</string>
<string>ko</string>
<string>nb</string>
<string>nl</string>
<string>pl</string>
<string>pt-BR</string>
<string>pt-PT</string>
<string>ro</string>
<string>ru</string>
<string>sk</string>
<string>sl</string>
<string>sv</string>
<string>th</string>
<string>tr</string>
<string>uk</string>
<string>zh_CN</string>
<string>zh_HK</string>
<string>zh_TW</string>
</array>
<key>CFBundleName</key>
<string>Updater</string>
<key>CFBundlePackageType</key>
<string>APPL</string>
<key>CFBundleShortVersionString</key>
<string>2.3.0</string>
<string>2.6.0</string>
<key>CFBundleSignature</key>
<string>????</string>
<key>CFBundleSupportedPlatforms</key>
@ -25,23 +63,23 @@
<string>MacOSX</string>
</array>
<key>CFBundleVersion</key>
<string>2021</string>
<string>2036</string>
<key>DTCompiler</key>
<string>com.apple.compilers.llvm.clang.1_0</string>
<key>DTPlatformBuild</key>
<string>13F100</string>
<string></string>
<key>DTPlatformName</key>
<string>macosx</string>
<key>DTPlatformVersion</key>
<string>12.3</string>
<string>14.2</string>
<key>DTSDKBuild</key>
<string>21E226</string>
<string>23C53</string>
<key>DTSDKName</key>
<string>macosx12.3</string>
<string>macosx14.2</string>
<key>DTXcode</key>
<string>1341</string>
<string>1520</string>
<key>DTXcodeBuild</key>
<string>13F100</string>
<string>15C500b</string>
<key>LSApplicationCategoryType</key>
<string>public.app-category.utilities</string>
<key>LSMinimumSystemVersion</key>

Some files were not shown because too many files have changed in this diff Show more