diff --git a/GoofySwift.xcodeproj/project.pbxproj b/GoofySwift.xcodeproj/project.pbxproj index 708fb4c..6d89972 100644 --- a/GoofySwift.xcodeproj/project.pbxproj +++ b/GoofySwift.xcodeproj/project.pbxproj @@ -17,6 +17,7 @@ 33A2E9721B6E41990079CB65 /* Sparkle.framework in CopyFiles */ = {isa = PBXBuildFile; fileRef = 33A2E96F1B6E40D90079CB65 /* Sparkle.framework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; }; 33B93A6B1AD68BE2003EBDDE /* MenuHandler.swift in Sources */ = {isa = PBXBuildFile; fileRef = 33B93A6A1AD68BE2003EBDDE /* MenuHandler.swift */; }; 33C741E01A2B02840072D81E /* NotificationScriptMessageHandler.swift in Sources */ = {isa = PBXBuildFile; fileRef = 33C741DF1A2B02840072D81E /* NotificationScriptMessageHandler.swift */; }; + 460340C1204891EF00CF147C /* GoofySwift_pub.pem in Resources */ = {isa = PBXBuildFile; fileRef = 460340BF204891C900CF147C /* GoofySwift_pub.pem */; }; /* End PBXBuildFile section */ /* Begin PBXCopyFilesBuildPhase section */ @@ -46,6 +47,7 @@ 33A2E96F1B6E40D90079CB65 /* Sparkle.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; path = Sparkle.framework; sourceTree = ""; }; 33B93A6A1AD68BE2003EBDDE /* MenuHandler.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = MenuHandler.swift; sourceTree = ""; }; 33C741DF1A2B02840072D81E /* NotificationScriptMessageHandler.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = NotificationScriptMessageHandler.swift; sourceTree = ""; }; + 460340BF204891C900CF147C /* GoofySwift_pub.pem */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = GoofySwift_pub.pem; sourceTree = ""; }; /* End PBXFileReference section */ /* Begin PBXFrameworksBuildPhase section */ @@ -100,6 +102,7 @@ isa = PBXGroup; children = ( 33942F9B1A2AE7F700E6D361 /* Info.plist */, + 460340BF204891C900CF147C /* GoofySwift_pub.pem */, ); name = "Supporting Files"; sourceTree = ""; @@ -181,6 +184,7 @@ isa = PBXResourcesBuildPhase; buildActionMask = 2147483647; files = ( + 460340C1204891EF00CF147C /* GoofySwift_pub.pem in Resources */, 3327A60D1AD16EA100B71853 /* WKPreferences+DevExtras.m in Resources */, 33942F9F1A2AE7F700E6D361 /* Images.xcassets in Resources */, 33942FA21A2AE7F700E6D361 /* MainMenu.xib in Resources */, diff --git a/GoofySwift/GoofySwift_pub.pem b/GoofySwift/GoofySwift_pub.pem new file mode 100644 index 0000000..3f07180 --- /dev/null +++ b/GoofySwift/GoofySwift_pub.pem @@ -0,0 +1,36 @@ +-----BEGIN PUBLIC KEY----- +MIIGRzCCBDkGByqGSM44BAEwggQsAoICAQChI4RDZy9bCo2f0yWTVGgGbPgvmgjQ +OnkTRJ4SEL6LOzGgXrfV4C9MmUiThv1RMq2HeVbbjQEWUIOJKPCGpOei0lF2jzXd +b+pWLJZ9R4imaYww9XO3m1AQPVdbM8Clh3b/ELfPJY0W8v4kxJWY2jxdGUDei4ee +8plNfJ5vY4cKSO0NpYWhmu6zss7/Lufn03NIOmYrpXotnnwl4IAk8S24FgYOzgHn +PsUwwcSnfGnDBF4yGYZXny3sJfPjywGaEcS3aweJ6939AbCx62l2SHvZQD4DrrcR +rXJNXeP1+lhA3sgY321fV0ceS2MgsQL+LoJE26pOispMMkKjpH6toh3QSCr303+V +SSEU5XH00dOq6L1WMyRKdTiVi0n4eBlfzr80UtSIG5hd+edCa4Xty94EyGI4PyFw +5vzWGkaOjTpki0BKv6IUFb9EmwxNFWxhk1trXkZWsKwImu6KCn+8aYr0/34GAKCT +hgaJX4xKHxBaQ96Bl4UkfR9uPd87igmT595JMoSFWDtLPs3ubr8IBVNtpk9YsF19 +ULdBx8eXRHMv9xf9tsuZ7an5p41c+LIPFEJrjqlY8iQCgE5MirdZbyw/o59jLJmF +L39RGJm8ujsjUefb0kBZMId5pw2GPfruErYaajMTQHRbMgZVAvSI96mzk4CtlixS +21BH6DTna+dPgQIhAO9y/lpFov4uMZSCJY/QZaah3G4CwlHh6CY3xg2/aUMtAoIC +AGVbY6Wku1mPQGEJa1CjGgj9a2KyBj/Eb3xgo+32K+bh6V3vKry/2oSe2ZIYfe2x +GrYMNOoHKRGYFTSxEvEEXm6h5l4dpN3nPXiExnqyyT2WmxgFr7XMDskmYjWFGt/l +8AvOS27i4QU6vbfp24a+CV0dp1K3LZJKhYvBoXvVTeKrhzxFwtpnWRMeVPfbkBxX +H9CrnYSr/uCEg+d76gSBKUjaKE8bAejinbDIFkuC5oO7gr9DvrLXJfGI26NnQAjM +L6RL/uEuCFp4IUp7Cb17zQUzeHCx2w6xiRTUGlQGEh/b7T0JaZa0FPsBwUX4xQ5W +rbQ1JFZkr+GK5IowvWFOTOtfFoPTEfVrw2mMO1LVT84Z5CiZGKi6r+9FB04JOpW+ +vIaIVe3bSnlqdUHWkJhhvY1eikIwXnRJwFAMZxCCsPR6zkXB8bUxdyN1Htps2vHm +w/Yr1zB33kKUnKy8ZwRogog0K85aYIaakQPTIdcn/urLYnNzhc9Bb0mg7O3gm9z4 +/WPJ1tjoz2v49pPQwtAoUjMite8Kf5yAD3A8bGChXTPrxm6QblqKjASRLCO5Lg7U +OS8yC1cnDl+deSgSJcEeGQ5/xy0Aa2OyXWvbR55j7/23x8AACSYNXw6NPxoTTAaM +Nyz1i5lzZVDGYASbHfseGEzSFZg+KpkB/l5Ul2wpBTmnA4ICBgACggIBAJ91PNhV +ZbWyipMQzR3GfkVRODAC0L+LbjR7ElkrK9yXpRJA7IMqJOnYQOtvmLYQefFuwdHI +Kxjk9TqI1UpFgGiUyANava8t6tIVTkd66BtcUG9rmTl/+TASzV2tLqXFIhRjSzJw +tqBt2RzunNPK7M0pCbIK/alU7LyfjzVSMqZuotHGzhsAuq2stJ78UTn0OW8JKF9V +60HE7XJi8qq2KNmhmEceRqbY+60e0sypZCPYuxcKwjwM5OCPau7yeUOAxIOekxXm +rtJwGhu/+etHwwQyH3aFONplElJ7ikHOvyhM8GxRKor72ll96mYfSJYeUWVUYNQf +DY2qxS3f7/5DmxeD+fHGinjgpZKp80aKlqgtaRfRnlcrIPmMxhQ7mPVtMcj163kD +XvGMjfV136b3RmzhpX8eRhWHWNWD1/rB1z/L4riNuBVFsL5bXGlg1xUehxaP78Lr +TzBc+pgL+EOzvbf0W9g8i10VGoNfSjkw9yd+7eBKn9rO539K2OEoGhP4wtKHP0pv +uf5beWi5g5qozNjb1E2YutiaaFjy6a23M3yMGTTZ9RRkKdZAiIYL02CzSVU9XWq2 +b7wR8idBttQqKXKdNBFqRGKpIiltdx49TwXdu0orPBU2qoeWbze8dc4sCS1VMUtN +DcjSO3fxwOyO8EnYssmVujbqY3tmgizDQGrH +-----END PUBLIC KEY----- diff --git a/GoofySwift/Info.plist b/GoofySwift/Info.plist index 79d9808..2dfac02 100644 --- a/GoofySwift/Info.plist +++ b/GoofySwift/Info.plist @@ -17,11 +17,11 @@ CFBundlePackageType APPL CFBundleShortVersionString - 4.1 + 4.2 CFBundleSignature ???? CFBundleVersion - 1158 + 1163 LSApplicationCategoryType public.app-category.social-networking LSMinimumSystemVersion @@ -43,6 +43,8 @@ SUFeedURL https://raw.githubusercontent.com/hrubymar10/goofy_swift/master/update_feed.xml + SUPublicDSAKeyFile + GoofySwift_pub.pem SUScheduledCheckInterval 86400 diff --git a/Sparkle.framework/Versions/A/Headers/SUAppcast.h b/Sparkle.framework/Versions/A/Headers/SUAppcast.h index 9e9acd5..d7363d0 100644 --- a/Sparkle.framework/Versions/A/Headers/SUAppcast.h +++ b/Sparkle.framework/Versions/A/Headers/SUAppcast.h @@ -9,18 +9,32 @@ #ifndef SUAPPCAST_H #define SUAPPCAST_H -#import +#if __has_feature(modules) +@import Foundation; +#else +#import +#endif #import "SUExport.h" +NS_ASSUME_NONNULL_BEGIN + @class SUAppcastItem; SU_EXPORT @interface SUAppcast : NSObject -@property (copy) NSString *userAgentString; -@property (copy) NSDictionary *httpHeaders; +@property (copy, nullable) NSString *userAgentString; -- (void)fetchAppcastFromURL:(NSURL *)url completionBlock:(void (^)(NSError *))err; +#if __has_feature(objc_generics) +@property (copy, nullable) NSDictionary *httpHeaders; +#else +@property (copy, nullable) NSDictionary *httpHeaders; +#endif -@property (readonly, copy) NSArray *items; +- (void)fetchAppcastFromURL:(NSURL *)url inBackground:(BOOL)bg completionBlock:(void (^)(NSError *_Nullable))err; +- (SUAppcast *)copyWithoutDeltaUpdates; + +@property (readonly, copy, nullable) NSArray *items; @end +NS_ASSUME_NONNULL_END + #endif diff --git a/Sparkle.framework/Versions/A/Headers/SUAppcastItem.h b/Sparkle.framework/Versions/A/Headers/SUAppcastItem.h index 551d389..5c861dd 100644 --- a/Sparkle.framework/Versions/A/Headers/SUAppcastItem.h +++ b/Sparkle.framework/Versions/A/Headers/SUAppcastItem.h @@ -9,18 +9,25 @@ #ifndef SUAPPCASTITEM_H #define SUAPPCASTITEM_H -#include "SUExport.h" +#if __has_feature(modules) +@import Foundation; +#else +#import +#endif +#import "SUExport.h" SU_EXPORT @interface SUAppcastItem : NSObject @property (copy, readonly) NSString *title; -@property (copy, readonly) NSDate *date; +@property (copy, readonly) NSString *dateString; @property (copy, readonly) NSString *itemDescription; @property (strong, readonly) NSURL *releaseNotesURL; @property (copy, readonly) NSString *DSASignature; @property (copy, readonly) NSString *minimumSystemVersion; @property (copy, readonly) NSString *maximumSystemVersion; @property (strong, readonly) NSURL *fileURL; +@property (nonatomic, readonly) uint64_t contentLength; @property (copy, readonly) NSString *versionString; +@property (copy, readonly) NSString *osString; @property (copy, readonly) NSString *displayVersionString; @property (copy, readonly) NSDictionary *deltaUpdates; @property (strong, readonly) NSURL *infoURL; @@ -31,6 +38,8 @@ SU_EXPORT @interface SUAppcastItem : NSObject @property (getter=isDeltaUpdate, readonly) BOOL deltaUpdate; @property (getter=isCriticalUpdate, readonly) BOOL criticalUpdate; +@property (getter=isMacOsUpdate, readonly) BOOL macOsUpdate; +@property (getter=isInformationOnlyUpdate, readonly) BOOL informationOnlyUpdate; // Returns the dictionary provided in initWithDictionary; this might be useful later for extensions. @property (readonly, copy) NSDictionary *propertiesDictionary; diff --git a/Sparkle.framework/Versions/A/Headers/SUErrors.h b/Sparkle.framework/Versions/A/Headers/SUErrors.h index e624bb0..8557d7f 100644 --- a/Sparkle.framework/Versions/A/Headers/SUErrors.h +++ b/Sparkle.framework/Versions/A/Headers/SUErrors.h @@ -9,7 +9,11 @@ #ifndef SUERRORS_H #define SUERRORS_H +#if __has_feature(modules) +@import Foundation; +#else #import +#endif #import "SUExport.h" /** @@ -23,10 +27,11 @@ typedef NS_ENUM(OSStatus, SUError) { SUNoUpdateError = 1001, SUAppcastError = 1002, SURunningFromDiskImageError = 1003, - - // Downlaod phase errors. + + // Download phase errors. SUTemporaryDirectoryError = 2000, - + SUDownloadError = 2001, + // Extraction phase errors. SUUnarchivingError = 3000, SUSignatureError = 3001, @@ -38,7 +43,11 @@ typedef NS_ENUM(OSStatus, SUError) { SUMissingInstallerToolError = 4003, SURelaunchError = 4004, SUInstallationError = 4005, - SUDowngradeError = 4006 + SUDowngradeError = 4006, + SUInstallationCancelledError = 4007, + + // System phase errors + SUSystemPowerOffError = 5000 }; #endif diff --git a/Sparkle.framework/Versions/A/Headers/SUStandardVersionComparator.h b/Sparkle.framework/Versions/A/Headers/SUStandardVersionComparator.h index 73ac968..ed11921 100644 --- a/Sparkle.framework/Versions/A/Headers/SUStandardVersionComparator.h +++ b/Sparkle.framework/Versions/A/Headers/SUStandardVersionComparator.h @@ -9,9 +9,16 @@ #ifndef SUSTANDARDVERSIONCOMPARATOR_H #define SUSTANDARDVERSIONCOMPARATOR_H +#if __has_feature(modules) +@import Foundation; +#else +#import +#endif #import "SUExport.h" #import "SUVersionComparisonProtocol.h" +NS_ASSUME_NONNULL_BEGIN + /*! Sparkle's default version comparator. @@ -21,8 +28,15 @@ */ SU_EXPORT @interface SUStandardVersionComparator : NSObject +/*! + Initializes a new instance of the standard version comparator. + */ +- (instancetype)init; + /*! Returns a singleton instance of the comparator. + + It is usually preferred to alloc/init new a comparator instead. */ + (SUStandardVersionComparator *)defaultComparator; @@ -34,4 +48,5 @@ SU_EXPORT @interface SUStandardVersionComparator : NSObject +#endif #import "SUExport.h" #import "SUVersionComparisonProtocol.h" #import "SUVersionDisplayProtocol.h" -@class SUUpdateDriver, SUAppcastItem, SUHost, SUAppcast; +@class SUAppcastItem, SUAppcast; @protocol SUUpdaterDelegate; @@ -27,300 +32,203 @@ SU_EXPORT @interface SUUpdater : NSObject @property (unsafe_unretained) IBOutlet id delegate; -+ (SUUpdater *)sharedUpdater; -+ (SUUpdater *)updaterForBundle:(NSBundle *)bundle; -- (instancetype)initForBundle:(NSBundle *)bundle; - -@property (readonly, strong) NSBundle *hostBundle; - -@property BOOL automaticallyChecksForUpdates; - -@property NSTimeInterval updateCheckInterval; - -/*! - * The URL of the appcast used to download update information. - * - * This property must be called on the main thread. - */ -@property (copy) NSURL *feedURL; - -@property (nonatomic, copy) NSString *userAgentString; - -@property (copy) NSDictionary *httpHeaders; - -@property BOOL sendsSystemProfile; - -@property BOOL automaticallyDownloadsUpdates; - /*! - Explicitly checks for updates and displays a progress dialog while doing so. - - This method is meant for a main menu item. - Connect any menu item to this action in Interface Builder, - and Sparkle will check for updates and report back its findings verbosely - when it is invoked. + The shared updater for the main bundle. + + This is equivalent to passing [NSBundle mainBundle] to SUUpdater::updaterForBundle: */ -- (IBAction)checkForUpdates:(id)sender; ++ (SUUpdater *)sharedUpdater; /*! - Checks for updates, but does not display any UI unless an update is found. - - This is meant for programmatically initating a check for updates. That is, - it will display no UI unless it actually finds an update, in which case it - proceeds as usual. + The shared updater for a specified bundle. - If the fully automated updating is turned on, however, this will invoke that - behavior, and if an update is found, it will be downloaded and prepped for - installation. + If an updater has already been initialized for the provided bundle, that shared instance will be returned. */ -- (void)checkForUpdatesInBackground; ++ (SUUpdater *)updaterForBundle:(NSBundle *)bundle; /*! - Returns the date of last update check. - - \returns \c nil if no check has been performed. + Designated initializer for SUUpdater. + + If an updater has already been initialized for the provided bundle, that shared instance will be returned. */ -@property (readonly, copy) NSDate *lastUpdateCheckDate; +- (instancetype)initForBundle:(NSBundle *)bundle; /*! - Begins a "probing" check for updates which will not actually offer to - update to that version. + Explicitly checks for updates and displays a progress dialog while doing so. - However, the delegate methods - SUUpdaterDelegate::updater:didFindValidUpdate: and - SUUpdaterDelegate::updaterDidNotFindUpdate: will be called, - so you can use that information in your UI. - */ -- (void)checkForUpdateInformation; + This method is meant for a main menu item. + Connect any menu item to this action in Interface Builder, + and Sparkle will check for updates and report back its findings verbosely + when it is invoked. -/*! - Appropriately schedules or cancels the update checking timer according to - the preferences for time interval and automatic checks. - - This call does not change the date of the next check, - but only the internal NSTimer. + This will find updates that the user has opted into skipping. */ -- (void)resetUpdateCycle; - -@property (readonly) BOOL updateInProgress; - -@end - -// ----------------------------------------------------------------------------- -// SUUpdater Notifications for events that might be interesting to more than just the delegate -// The updater will be the notification object -// ----------------------------------------------------------------------------- -SU_EXPORT extern NSString *const SUUpdaterDidFinishLoadingAppCastNotification; -SU_EXPORT extern NSString *const SUUpdaterDidFindValidUpdateNotification; -SU_EXPORT extern NSString *const SUUpdaterDidNotFindUpdateNotification; -SU_EXPORT extern NSString *const SUUpdaterWillRestartNotification; -#define SUUpdaterWillRelaunchApplicationNotification SUUpdaterWillRestartNotification; -#define SUUpdaterWillInstallUpdateNotification SUUpdaterWillRestartNotification; - -// Key for the SUAppcastItem object in the SUUpdaterDidFindValidUpdateNotification userInfo -SU_EXPORT extern NSString *const SUUpdaterAppcastItemNotificationKey; -// Key for the SUAppcast object in the SUUpdaterDidFinishLoadingAppCastNotification userInfo -SU_EXPORT extern NSString *const SUUpdaterAppcastNotificationKey; - -// ----------------------------------------------------------------------------- -// SUUpdater Delegate: -// ----------------------------------------------------------------------------- - -/*! - Provides methods to control the behavior of an SUUpdater object. - */ -@protocol SUUpdaterDelegate -@optional +- (IBAction)checkForUpdates:(id)sender; /*! - Returns whether to allow Sparkle to pop up. - - For example, this may be used to prevent Sparkle from interrupting a setup assistant. - - \param updater The SUUpdater instance. + The menu item validation used for the -checkForUpdates: action */ -- (BOOL)updaterMayCheckForUpdates:(SUUpdater *)updater; +- (BOOL)validateMenuItem:(NSMenuItem *)menuItem; /*! - Returns additional parameters to append to the appcast URL's query string. + Checks for updates, but does not display any UI unless an update is found. - This is potentially based on whether or not Sparkle will also be sending along the system profile. + This is meant for programmatically initating a check for updates. That is, + it will display no UI unless it actually finds an update, in which case it + proceeds as usual. - \param updater The SUUpdater instance. - \param sendingProfile Whether the system profile will also be sent. + If automatic downloading of updates it turned on and allowed, however, + this will invoke that behavior, and if an update is found, it will be downloaded + in the background silently and will be prepped for installation. - \return An array of dictionaries with keys: "key", "value", "displayKey", "displayValue", the latter two being specifically for display to the user. + This will not find updates that the user has opted into skipping. */ -- (NSArray *)feedParametersForUpdater:(SUUpdater *)updater sendingSystemProfile:(BOOL)sendingProfile; +- (void)checkForUpdatesInBackground; /*! - Returns a custom appcast URL. - - Override this to dynamically specify the entire URL. + A property indicating whether or not to check for updates automatically. - \param updater The SUUpdater instance. + Setting this property will persist in the host bundle's user defaults. + The update schedule cycle will be reset in a short delay after the property's new value is set. + This is to allow reverting this property without kicking off a schedule change immediately */ -- (NSString *)feedURLStringForUpdater:(SUUpdater *)updater; +@property BOOL automaticallyChecksForUpdates; /*! - Returns whether Sparkle should prompt the user about automatic update checks. + A property indicating whether or not updates can be automatically downloaded in the background. - Use this to override the default behavior. + Note that automatic downloading of updates can be disallowed by the developer + or by the user's system if silent updates cannot be done (eg: if they require authentication). + In this case, -automaticallyDownloadsUpdates will return NO regardless of how this property is set. - \param updater The SUUpdater instance. + Setting this property will persist in the host bundle's user defaults. */ -- (BOOL)updaterShouldPromptForPermissionToCheckForUpdates:(SUUpdater *)updater; +@property BOOL automaticallyDownloadsUpdates; /*! - Called after Sparkle has downloaded the appcast from the remote server. - - Implement this if you want to do some special handling with the appcast once it finishes loading. + A property indicating the current automatic update check interval. - \param updater The SUUpdater instance. - \param appcast The appcast that was downloaded from the remote server. + Setting this property will persist in the host bundle's user defaults. + The update schedule cycle will be reset in a short delay after the property's new value is set. + This is to allow reverting this property without kicking off a schedule change immediately */ -- (void)updater:(SUUpdater *)updater didFinishLoadingAppcast:(SUAppcast *)appcast; +@property NSTimeInterval updateCheckInterval; /*! - Returns the item in the appcast corresponding to the update that should be installed. + Begins a "probing" check for updates which will not actually offer to + update to that version. - If you're using special logic or extensions in your appcast, - implement this to use your own logic for finding a valid update, if any, - in the given appcast. + However, the delegate methods + SUUpdaterDelegate::updater:didFindValidUpdate: and + SUUpdaterDelegate::updaterDidNotFindUpdate: will be called, + so you can use that information in your UI. - \param appcast The appcast that was downloaded from the remote server. - \param updater The SUUpdater instance. + Updates that have been skipped by the user will not be found. */ -- (SUAppcastItem *)bestValidUpdateInAppcast:(SUAppcast *)appcast forUpdater:(SUUpdater *)updater; +- (void)checkForUpdateInformation; /*! - Called when a valid update is found by the update driver. - - \param updater The SUUpdater instance. - \param item The appcast item corresponding to the update that is proposed to be installed. - */ -- (void)updater:(SUUpdater *)updater didFindValidUpdate:(SUAppcastItem *)item; + The URL of the appcast used to download update information. -/*! - Called when a valid update is not found. + Setting this property will persist in the host bundle's user defaults. + If you don't want persistence, you may want to consider instead implementing + SUUpdaterDelegate::feedURLStringForUpdater: or SUUpdaterDelegate::feedParametersForUpdater:sendingSystemProfile: - \param updater The SUUpdater instance. + This property must be called on the main thread. */ -- (void)updaterDidNotFindUpdate:(SUUpdater *)updater; +@property (copy) NSURL *feedURL; /*! - Called immediately before installing the specified update. - - \param updater The SUUpdater instance. - \param item The appcast item corresponding to the update that is proposed to be installed. + The host bundle that is being updated. */ -- (void)updater:(SUUpdater *)updater willInstallUpdate:(SUAppcastItem *)item; +@property (readonly, strong) NSBundle *hostBundle; /*! - Returns whether the relaunch should be delayed in order to perform other tasks. - - This is not called if the user didn't relaunch on the previous update, - in that case it will immediately restart. - - \param updater The SUUpdater instance. - \param item The appcast item corresponding to the update that is proposed to be installed. - \param invocation The invocation that must be completed before continuing with the relaunch. - - \return \c YES to delay the relaunch until \p invocation is invoked. + The bundle this class (SUUpdater) is loaded into. */ -- (BOOL)updater:(SUUpdater *)updater shouldPostponeRelaunchForUpdate:(SUAppcastItem *)item untilInvoking:(NSInvocation *)invocation; +@property (strong, readonly) NSBundle *sparkleBundle; /*! - Returns whether the application should be relaunched at all. + The user agent used when checking for updates. - Some apps \b cannot be relaunched under certain circumstances. - This method can be used to explicitly prevent a relaunch. - - \param updater The SUUpdater instance. + The default implementation can be overrided. */ -- (BOOL)updaterShouldRelaunchApplication:(SUUpdater *)updater; +@property (nonatomic, copy) NSString *userAgentString; /*! - Called immediately before relaunching. + The HTTP headers used when checking for updates. - \param updater The SUUpdater instance. + The keys of this dictionary are HTTP header fields (NSString) and values are corresponding values (NSString) */ -- (void)updaterWillRelaunchApplication:(SUUpdater *)updater; +#if __has_feature(objc_generics) +@property (copy) NSDictionary *httpHeaders; +#else +@property (copy) NSDictionary *httpHeaders; +#endif /*! - Returns an object that compares version numbers to determine their arithmetic relation to each other. - - This method allows you to provide a custom version comparator. - If you don't implement this method or return \c nil, - the standard version comparator will be used. - - \sa SUStandardVersionComparator + A property indicating whether or not the user's system profile information is sent when checking for updates. - \param updater The SUUpdater instance. + Setting this property will persist in the host bundle's user defaults. */ -- (id)versionComparatorForUpdater:(SUUpdater *)updater; +@property BOOL sendsSystemProfile; /*! - Returns an object that formats version numbers for display to the user. - - If you don't implement this method or return \c nil, - the standard version formatter will be used. - - \sa SUUpdateAlert - - \param updater The SUUpdater instance. + A property indicating the decryption password used for extracting updates shipped as Apple Disk Images (dmg) */ -- (id)versionDisplayerForUpdater:(SUUpdater *)updater; +@property (nonatomic, copy) NSString *decryptionPassword; /*! - Returns the path which is used to relaunch the client after the update is installed. + This function ignores normal update schedule, ignores user preferences, + and interrupts users with an unwanted immediate app update. - The default is the path of the host bundle. + WARNING: this function should not be used in regular apps. This function + is a user-unfriendly hack only for very special cases, like unstable + rapidly-changing beta builds that would not run correctly if they were + even one day out of date. - \param updater The SUUpdater instance. - */ -- (NSString *)pathToRelaunchForUpdater:(SUUpdater *)updater; + Instead of this function you should set `SUAutomaticallyUpdate` to `YES`, + which will gracefully install updates when the app quits. -/*! - Called before an updater shows a modal alert window, - to give the host the opportunity to hide attached windows that may get in the way. + For UI-less/daemon apps that aren't usually quit, instead of this function, + you can use the delegate method + SUUpdaterDelegate::updater:willInstallUpdateOnQuit:immediateInstallationInvocation: + to immediately start installation when an update was found. - \param updater The SUUpdater instance. - */ -- (void)updaterWillShowModalAlert:(SUUpdater *)updater; + A progress dialog is shown but the user will never be prompted to read the + release notes. -/*! - Called after an updater shows a modal alert window, - to give the host the opportunity to hide attached windows that may get in the way. + This function will cause update to be downloaded twice if automatic updates are + enabled. - \param updater The SUUpdater instance. + You may want to respond to the userDidCancelDownload delegate method in case + the user clicks the "Cancel" button while the update is downloading. */ -- (void)updaterDidShowModalAlert:(SUUpdater *)updater; +- (void)installUpdatesIfAvailable; /*! - Called when an update is scheduled to be silently installed on quit. + Returns the date of last update check. - \param updater The SUUpdater instance. - \param item The appcast item corresponding to the update that is proposed to be installed. - \param invocation Can be used to trigger an immediate silent install and relaunch. + \returns \c nil if no check has been performed. */ -- (void)updater:(SUUpdater *)updater willInstallUpdateOnQuit:(SUAppcastItem *)item immediateInstallationInvocation:(NSInvocation *)invocation; +@property (readonly, copy) NSDate *lastUpdateCheckDate; /*! - Calls after an update that was scheduled to be silently installed on quit has been canceled. + Appropriately schedules or cancels the update checking timer according to + the preferences for time interval and automatic checks. - \param updater The SUUpdater instance. - \param item The appcast item corresponding to the update that was proposed to be installed. + This call does not change the date of the next check, + but only the internal NSTimer. */ -- (void)updater:(SUUpdater *)updater didCancelInstallUpdateOnQuit:(SUAppcastItem *)item; +- (void)resetUpdateCycle; /*! - Called after an update is aborted due to an error. + A property indicating whether or not an update is in progress. - \param updater The SUUpdater instance. - \param error The error that caused the abort + Note this property is not indicative of whether or not user initiated updates can be performed. + Use SUUpdater::validateMenuItem: for that instead. */ -- (void)updater:(SUUpdater *)updater didAbortWithError:(NSError *)error; +@property (readonly) BOOL updateInProgress; @end diff --git a/Sparkle.framework/Versions/A/Headers/SUUpdaterDelegate.h b/Sparkle.framework/Versions/A/Headers/SUUpdaterDelegate.h new file mode 100644 index 0000000..dbc1402 --- /dev/null +++ b/Sparkle.framework/Versions/A/Headers/SUUpdaterDelegate.h @@ -0,0 +1,281 @@ +// +// SUUpdaterDelegate.h +// Sparkle +// +// Created by Mayur Pawashe on 12/25/16. +// Copyright © 2016 Sparkle Project. All rights reserved. +// + +#if __has_feature(modules) +@import Foundation; +#else +#import +#endif + +#import "SUExport.h" + +@protocol SUVersionComparison, SUVersionDisplay; +@class SUUpdater, SUAppcast, SUAppcastItem; + +NS_ASSUME_NONNULL_BEGIN + +// ----------------------------------------------------------------------------- +// SUUpdater Notifications for events that might be interesting to more than just the delegate +// The updater will be the notification object +// ----------------------------------------------------------------------------- +SU_EXPORT extern NSString *const SUUpdaterDidFinishLoadingAppCastNotification; +SU_EXPORT extern NSString *const SUUpdaterDidFindValidUpdateNotification; +SU_EXPORT extern NSString *const SUUpdaterDidNotFindUpdateNotification; +SU_EXPORT extern NSString *const SUUpdaterWillRestartNotification; +#define SUUpdaterWillRelaunchApplicationNotification SUUpdaterWillRestartNotification; +#define SUUpdaterWillInstallUpdateNotification SUUpdaterWillRestartNotification; + +// Key for the SUAppcastItem object in the SUUpdaterDidFindValidUpdateNotification userInfo +SU_EXPORT extern NSString *const SUUpdaterAppcastItemNotificationKey; +// Key for the SUAppcast object in the SUUpdaterDidFinishLoadingAppCastNotification userInfo +SU_EXPORT extern NSString *const SUUpdaterAppcastNotificationKey; + +// ----------------------------------------------------------------------------- +// SUUpdater Delegate: +// ----------------------------------------------------------------------------- + +/*! + Provides methods to control the behavior of an SUUpdater object. + */ +@protocol SUUpdaterDelegate +@optional + +/*! + Returns whether to allow Sparkle to pop up. + + For example, this may be used to prevent Sparkle from interrupting a setup assistant. + + \param updater The SUUpdater instance. + */ +- (BOOL)updaterMayCheckForUpdates:(SUUpdater *)updater; + +/*! + Returns additional parameters to append to the appcast URL's query string. + + This is potentially based on whether or not Sparkle will also be sending along the system profile. + + \param updater The SUUpdater instance. + \param sendingProfile Whether the system profile will also be sent. + + \return An array of dictionaries with keys: "key", "value", "displayKey", "displayValue", the latter two being specifically for display to the user. + */ +#if __has_feature(objc_generics) +- (NSArray *> *)feedParametersForUpdater:(SUUpdater *)updater sendingSystemProfile:(BOOL)sendingProfile; +#else +- (NSArray *)feedParametersForUpdater:(SUUpdater *)updater sendingSystemProfile:(BOOL)sendingProfile; +#endif + +/*! + Returns a custom appcast URL. + + Override this to dynamically specify the entire URL. + + An alternative may be to use SUUpdaterDelegate::feedParametersForUpdater:sendingSystemProfile: + and let the server handle what kind of feed to provide. + + \param updater The SUUpdater instance. + */ +- (nullable NSString *)feedURLStringForUpdater:(SUUpdater *)updater; + +/*! + Returns whether Sparkle should prompt the user about automatic update checks. + + Use this to override the default behavior. + + \param updater The SUUpdater instance. + */ +- (BOOL)updaterShouldPromptForPermissionToCheckForUpdates:(SUUpdater *)updater; + +/*! + Called after Sparkle has downloaded the appcast from the remote server. + + Implement this if you want to do some special handling with the appcast once it finishes loading. + + \param updater The SUUpdater instance. + \param appcast The appcast that was downloaded from the remote server. + */ +- (void)updater:(SUUpdater *)updater didFinishLoadingAppcast:(SUAppcast *)appcast; + +/*! + Returns the item in the appcast corresponding to the update that should be installed. + + If you're using special logic or extensions in your appcast, + implement this to use your own logic for finding a valid update, if any, + in the given appcast. + + \param appcast The appcast that was downloaded from the remote server. + \param updater The SUUpdater instance. + */ +- (nullable SUAppcastItem *)bestValidUpdateInAppcast:(SUAppcast *)appcast forUpdater:(SUUpdater *)updater; + +/*! + Called when a valid update is found by the update driver. + + \param updater The SUUpdater instance. + \param item The appcast item corresponding to the update that is proposed to be installed. + */ +- (void)updater:(SUUpdater *)updater didFindValidUpdate:(SUAppcastItem *)item; + +/*! + Called when a valid update is not found. + + \param updater The SUUpdater instance. + */ +- (void)updaterDidNotFindUpdate:(SUUpdater *)updater; + +/*! + Called immediately before downloading the specified update. + + \param updater The SUUpdater instance. + \param item The appcast item corresponding to the update that is proposed to be downloaded. + \param request The mutable URL request that will be used to download the update. + */ +- (void)updater:(SUUpdater *)updater willDownloadUpdate:(SUAppcastItem *)item withRequest:(NSMutableURLRequest *)request; + +/*! + Called after the specified update failed to download. + + \param updater The SUUpdater instance. + \param item The appcast item corresponding to the update that failed to download. + \param error The error generated by the failed download. + */ +- (void)updater:(SUUpdater *)updater failedToDownloadUpdate:(SUAppcastItem *)item error:(NSError *)error; + +/*! + Called when the user clicks the cancel button while and update is being downloaded. + + \param updater The SUUpdater instance. + */ +- (void)userDidCancelDownload:(SUUpdater *)updater; + +/*! + Called immediately before installing the specified update. + + \param updater The SUUpdater instance. + \param item The appcast item corresponding to the update that is proposed to be installed. + */ +- (void)updater:(SUUpdater *)updater willInstallUpdate:(SUAppcastItem *)item; + +/*! + Returns whether the relaunch should be delayed in order to perform other tasks. + + This is not called if the user didn't relaunch on the previous update, + in that case it will immediately restart. + + \param updater The SUUpdater instance. + \param item The appcast item corresponding to the update that is proposed to be installed. + \param invocation The invocation that must be completed with `[invocation invoke]` before continuing with the relaunch. + + \return \c YES to delay the relaunch until \p invocation is invoked. + */ +- (BOOL)updater:(SUUpdater *)updater shouldPostponeRelaunchForUpdate:(SUAppcastItem *)item untilInvoking:(NSInvocation *)invocation; + +/*! + Returns whether the application should be relaunched at all. + + Some apps \b cannot be relaunched under certain circumstances. + This method can be used to explicitly prevent a relaunch. + + \param updater The SUUpdater instance. + */ +- (BOOL)updaterShouldRelaunchApplication:(SUUpdater *)updater; + +/*! + Called immediately before relaunching. + + \param updater The SUUpdater instance. + */ +- (void)updaterWillRelaunchApplication:(SUUpdater *)updater; + +/*! + Called immediately after relaunching. SUUpdater delegate must be set before applicationDidFinishLaunching: to catch this event. + + \param updater The SUUpdater instance. + */ +- (void)updaterDidRelaunchApplication:(SUUpdater *)updater; + +/*! + Returns an object that compares version numbers to determine their arithmetic relation to each other. + + This method allows you to provide a custom version comparator. + If you don't implement this method or return \c nil, + the standard version comparator will be used. + + \sa SUStandardVersionComparator + + \param updater The SUUpdater instance. + */ +- (nullable id)versionComparatorForUpdater:(SUUpdater *)updater; + +/*! + Returns an object that formats version numbers for display to the user. + + If you don't implement this method or return \c nil, + the standard version formatter will be used. + + \sa SUUpdateAlert + + \param updater The SUUpdater instance. + */ +- (nullable id)versionDisplayerForUpdater:(SUUpdater *)updater; + +/*! + Returns the path which is used to relaunch the client after the update is installed. + + The default is the path of the host bundle. + + \param updater The SUUpdater instance. + */ +- (nullable NSString *)pathToRelaunchForUpdater:(SUUpdater *)updater; + +/*! + Called before an updater shows a modal alert window, + to give the host the opportunity to hide attached windows that may get in the way. + + \param updater The SUUpdater instance. + */ +- (void)updaterWillShowModalAlert:(SUUpdater *)updater; + +/*! + Called after an updater shows a modal alert window, + to give the host the opportunity to hide attached windows that may get in the way. + + \param updater The SUUpdater instance. + */ +- (void)updaterDidShowModalAlert:(SUUpdater *)updater; + +/*! + Called when an update is scheduled to be silently installed on quit. + This is after an update has been automatically downloaded in the background. + (i.e. SUUpdater::automaticallyDownloadsUpdates is YES) + + \param updater The SUUpdater instance. + \param item The appcast item corresponding to the update that is proposed to be installed. + \param invocation Can be used to trigger an immediate silent install and relaunch. + */ +- (void)updater:(SUUpdater *)updater willInstallUpdateOnQuit:(SUAppcastItem *)item immediateInstallationInvocation:(NSInvocation *)invocation; + +/*! + Calls after an update that was scheduled to be silently installed on quit has been canceled. + + \param updater The SUUpdater instance. + \param item The appcast item corresponding to the update that was proposed to be installed. + */ +- (void)updater:(SUUpdater *)updater didCancelInstallUpdateOnQuit:(SUAppcastItem *)item; + +/*! + Called after an update is aborted due to an error. + + \param updater The SUUpdater instance. + \param error The error that caused the abort + */ +- (void)updater:(SUUpdater *)updater didAbortWithError:(NSError *)error; + +@end + +NS_ASSUME_NONNULL_END diff --git a/Sparkle.framework/Versions/A/Headers/SUVersionComparisonProtocol.h b/Sparkle.framework/Versions/A/Headers/SUVersionComparisonProtocol.h index 10c4266..c654fc4 100644 --- a/Sparkle.framework/Versions/A/Headers/SUVersionComparisonProtocol.h +++ b/Sparkle.framework/Versions/A/Headers/SUVersionComparisonProtocol.h @@ -9,9 +9,15 @@ #ifndef SUVERSIONCOMPARISONPROTOCOL_H #define SUVERSIONCOMPARISONPROTOCOL_H -#import +#if __has_feature(modules) +@import Foundation; +#else +#import +#endif #import "SUExport.h" +NS_ASSUME_NONNULL_BEGIN + /*! Provides version comparison facilities for Sparkle. */ @@ -27,4 +33,5 @@ @end +NS_ASSUME_NONNULL_END #endif diff --git a/Sparkle.framework/Versions/A/Headers/SUVersionDisplayProtocol.h b/Sparkle.framework/Versions/A/Headers/SUVersionDisplayProtocol.h index 97fae4c..980efb3 100644 --- a/Sparkle.framework/Versions/A/Headers/SUVersionDisplayProtocol.h +++ b/Sparkle.framework/Versions/A/Headers/SUVersionDisplayProtocol.h @@ -6,7 +6,11 @@ // Copyright 2009 Elgato Systems GmbH. All rights reserved. // -#import +#if __has_feature(modules) +@import Foundation; +#else +#import +#endif #import "SUExport.h" /*! @@ -20,6 +24,6 @@ Both versions are provided so that important distinguishing information can be displayed while also leaving out unnecessary/confusing parts. */ -- (void)formatVersion:(NSString **)inOutVersionA andVersion:(NSString **)inOutVersionB; +- (void)formatVersion:(NSString *_Nonnull*_Nonnull)inOutVersionA andVersion:(NSString *_Nonnull*_Nonnull)inOutVersionB; @end diff --git a/Sparkle.framework/Versions/A/Headers/Sparkle.h b/Sparkle.framework/Versions/A/Headers/Sparkle.h index fe97bae..d3f6ff2 100644 --- a/Sparkle.framework/Versions/A/Headers/Sparkle.h +++ b/Sparkle.framework/Versions/A/Headers/Sparkle.h @@ -12,12 +12,13 @@ // This list should include the shared headers. It doesn't matter if some of them aren't shared (unless // there are name-space collisions) so we can list all of them to start with: -#import -#import -#import -#import -#import -#import -#import +#import "SUAppcast.h" +#import "SUAppcastItem.h" +#import "SUStandardVersionComparator.h" +#import "SUUpdater.h" +#import "SUUpdaterDelegate.h" +#import "SUVersionComparisonProtocol.h" +#import "SUVersionDisplayProtocol.h" +#import "SUErrors.h" #endif diff --git a/Sparkle.framework/Versions/A/PrivateHeaders/SUUnarchiver.h b/Sparkle.framework/Versions/A/PrivateHeaders/SUUnarchiver.h index 136484b..a52bf5a 100644 --- a/Sparkle.framework/Versions/A/PrivateHeaders/SUUnarchiver.h +++ b/Sparkle.framework/Versions/A/PrivateHeaders/SUUnarchiver.h @@ -6,28 +6,16 @@ // Copyright 2006 Andy Matuschak. All rights reserved. // -#ifndef SUUNARCHIVER_H -#define SUUNARCHIVER_H +#import -@class SUHost; -@protocol SUUnarchiverDelegate; +NS_ASSUME_NONNULL_BEGIN -@interface SUUnarchiver : NSObject - -@property (copy, readonly) NSString *archivePath; -@property (weak, readonly) NSString *updateHostBundlePath; -@property (weak) id delegate; +@protocol SUUnarchiverProtocol; -+ (SUUnarchiver *)unarchiverForPath:(NSString *)path updatingHostBundlePath:(NSString *)host; +@interface SUUnarchiver : NSObject -- (void)start; -@end ++ (nullable id )unarchiverForPath:(NSString *)path updatingHostBundlePath:(nullable NSString *)hostPath decryptionPassword:(nullable NSString *)decryptionPassword; -@protocol SUUnarchiverDelegate -- (void)unarchiverDidFinish:(SUUnarchiver *)unarchiver; -- (void)unarchiverDidFail:(SUUnarchiver *)unarchiver; -@optional -- (void)unarchiver:(SUUnarchiver *)unarchiver extractedProgress:(double)progress; @end -#endif +NS_ASSUME_NONNULL_END diff --git a/Sparkle.framework/Versions/A/Resources/Autoupdate.app/Contents/Info.plist b/Sparkle.framework/Versions/A/Resources/Autoupdate.app/Contents/Info.plist index 4f4aeb1..74e9117 100644 --- a/Sparkle.framework/Versions/A/Resources/Autoupdate.app/Contents/Info.plist +++ b/Sparkle.framework/Versions/A/Resources/Autoupdate.app/Contents/Info.plist @@ -3,13 +3,13 @@ BuildMachineOSBuild - 14E7f + 17A330h CFBundleDevelopmentRegion English CFBundleExecutable Autoupdate CFBundleIconFile - AppIcon + AppIcon.icns CFBundleIdentifier org.sparkle-project.Sparkle.Autoupdate CFBundleInfoDictionaryVersion @@ -17,25 +17,29 @@ CFBundlePackageType APPL CFBundleShortVersionString - 1.10.0 git-9646b0b + 1.18.1 21-g558cfd21 CFBundleSignature ???? + CFBundleSupportedPlatforms + + MacOSX + CFBundleVersion - 1.10.0 + 1.18.1 DTCompiler com.apple.compilers.llvm.clang.1_0 DTPlatformBuild - 6D1002 + 9M136h DTPlatformVersion GM DTSDKBuild - 14D125 + 17A263z DTSDKName - macosx10.10 + macosx10.13 DTXcode - 0631 + 0900 DTXcodeBuild - 6D1002 + 9M136h LSBackgroundOnly 1 LSMinimumSystemVersion diff --git a/Sparkle.framework/Versions/A/Resources/Autoupdate.app/Contents/MacOS/Autoupdate b/Sparkle.framework/Versions/A/Resources/Autoupdate.app/Contents/MacOS/Autoupdate index 64d8838..1afce79 100755 Binary files a/Sparkle.framework/Versions/A/Resources/Autoupdate.app/Contents/MacOS/Autoupdate and b/Sparkle.framework/Versions/A/Resources/Autoupdate.app/Contents/MacOS/Autoupdate differ diff --git a/Sparkle.framework/Versions/A/Resources/Autoupdate.app/Contents/MacOS/fileop b/Sparkle.framework/Versions/A/Resources/Autoupdate.app/Contents/MacOS/fileop new file mode 100755 index 0000000..cd0ae0b Binary files /dev/null and b/Sparkle.framework/Versions/A/Resources/Autoupdate.app/Contents/MacOS/fileop differ diff --git a/Sparkle.framework/Versions/A/Resources/Autoupdate.app/Contents/Resources/AppIcon.icns b/Sparkle.framework/Versions/A/Resources/Autoupdate.app/Contents/Resources/AppIcon.icns index 93fb79e..7f2a571 100644 Binary files a/Sparkle.framework/Versions/A/Resources/Autoupdate.app/Contents/Resources/AppIcon.icns and b/Sparkle.framework/Versions/A/Resources/Autoupdate.app/Contents/Resources/AppIcon.icns differ diff --git a/Sparkle.framework/Versions/A/Resources/Autoupdate.app/Contents/Resources/SUStatus.nib b/Sparkle.framework/Versions/A/Resources/Autoupdate.app/Contents/Resources/SUStatus.nib index 2a63346..5fa3ecf 100644 Binary files a/Sparkle.framework/Versions/A/Resources/Autoupdate.app/Contents/Resources/SUStatus.nib and b/Sparkle.framework/Versions/A/Resources/Autoupdate.app/Contents/Resources/SUStatus.nib differ diff --git a/Sparkle.framework/Versions/A/Resources/Autoupdate.app/Contents/Resources/ar.lproj/Sparkle.strings b/Sparkle.framework/Versions/A/Resources/Autoupdate.app/Contents/Resources/ar.lproj/Sparkle.strings index 28c2c21..4cd92c0 100644 Binary files a/Sparkle.framework/Versions/A/Resources/Autoupdate.app/Contents/Resources/ar.lproj/Sparkle.strings and b/Sparkle.framework/Versions/A/Resources/Autoupdate.app/Contents/Resources/ar.lproj/Sparkle.strings differ diff --git a/Sparkle.framework/Versions/A/Resources/Autoupdate.app/Contents/Resources/ca.lproj/Sparkle.strings b/Sparkle.framework/Versions/A/Resources/Autoupdate.app/Contents/Resources/ca.lproj/Sparkle.strings new file mode 100644 index 0000000..cc238f6 Binary files /dev/null and b/Sparkle.framework/Versions/A/Resources/Autoupdate.app/Contents/Resources/ca.lproj/Sparkle.strings differ diff --git a/Sparkle.framework/Versions/A/Resources/Autoupdate.app/Contents/Resources/cs.lproj/Sparkle.strings b/Sparkle.framework/Versions/A/Resources/Autoupdate.app/Contents/Resources/cs.lproj/Sparkle.strings index a50d6bf..c93688a 100644 Binary files a/Sparkle.framework/Versions/A/Resources/Autoupdate.app/Contents/Resources/cs.lproj/Sparkle.strings and b/Sparkle.framework/Versions/A/Resources/Autoupdate.app/Contents/Resources/cs.lproj/Sparkle.strings differ diff --git a/Sparkle.framework/Versions/A/Resources/Autoupdate.app/Contents/Resources/da.lproj/Sparkle.strings b/Sparkle.framework/Versions/A/Resources/Autoupdate.app/Contents/Resources/da.lproj/Sparkle.strings index 8c349bd..10e3c5a 100644 Binary files a/Sparkle.framework/Versions/A/Resources/Autoupdate.app/Contents/Resources/da.lproj/Sparkle.strings and b/Sparkle.framework/Versions/A/Resources/Autoupdate.app/Contents/Resources/da.lproj/Sparkle.strings differ diff --git a/Sparkle.framework/Versions/A/Resources/Autoupdate.app/Contents/Resources/de.lproj/Sparkle.strings b/Sparkle.framework/Versions/A/Resources/Autoupdate.app/Contents/Resources/de.lproj/Sparkle.strings index fe50db5..9b0968f 100644 Binary files a/Sparkle.framework/Versions/A/Resources/Autoupdate.app/Contents/Resources/de.lproj/Sparkle.strings and b/Sparkle.framework/Versions/A/Resources/Autoupdate.app/Contents/Resources/de.lproj/Sparkle.strings differ diff --git a/Sparkle.framework/Versions/A/Resources/Autoupdate.app/Contents/Resources/el.lproj/Sparkle.strings b/Sparkle.framework/Versions/A/Resources/Autoupdate.app/Contents/Resources/el.lproj/Sparkle.strings index 015c213..deed9ef 100644 Binary files a/Sparkle.framework/Versions/A/Resources/Autoupdate.app/Contents/Resources/el.lproj/Sparkle.strings and b/Sparkle.framework/Versions/A/Resources/Autoupdate.app/Contents/Resources/el.lproj/Sparkle.strings differ diff --git a/Sparkle.framework/Versions/A/Resources/Autoupdate.app/Contents/Resources/en.lproj/Sparkle.strings b/Sparkle.framework/Versions/A/Resources/Autoupdate.app/Contents/Resources/en.lproj/Sparkle.strings index d2e5e5c..842d255 100644 Binary files a/Sparkle.framework/Versions/A/Resources/Autoupdate.app/Contents/Resources/en.lproj/Sparkle.strings and b/Sparkle.framework/Versions/A/Resources/Autoupdate.app/Contents/Resources/en.lproj/Sparkle.strings differ diff --git a/Sparkle.framework/Versions/A/Resources/Autoupdate.app/Contents/Resources/es.lproj/Sparkle.strings b/Sparkle.framework/Versions/A/Resources/Autoupdate.app/Contents/Resources/es.lproj/Sparkle.strings index ee69407..3027ecd 100644 Binary files a/Sparkle.framework/Versions/A/Resources/Autoupdate.app/Contents/Resources/es.lproj/Sparkle.strings and b/Sparkle.framework/Versions/A/Resources/Autoupdate.app/Contents/Resources/es.lproj/Sparkle.strings differ diff --git a/Sparkle.framework/Versions/A/Resources/Autoupdate.app/Contents/Resources/fi.lproj/Sparkle.strings b/Sparkle.framework/Versions/A/Resources/Autoupdate.app/Contents/Resources/fi.lproj/Sparkle.strings new file mode 100644 index 0000000..32d3107 Binary files /dev/null and b/Sparkle.framework/Versions/A/Resources/Autoupdate.app/Contents/Resources/fi.lproj/Sparkle.strings differ diff --git a/Sparkle.framework/Versions/A/Resources/Autoupdate.app/Contents/Resources/fr.lproj/Sparkle.strings b/Sparkle.framework/Versions/A/Resources/Autoupdate.app/Contents/Resources/fr.lproj/Sparkle.strings index c7b221b..e4294a5 100644 Binary files a/Sparkle.framework/Versions/A/Resources/Autoupdate.app/Contents/Resources/fr.lproj/Sparkle.strings and b/Sparkle.framework/Versions/A/Resources/Autoupdate.app/Contents/Resources/fr.lproj/Sparkle.strings differ diff --git a/Sparkle.framework/Versions/A/Resources/Autoupdate.app/Contents/Resources/he.lproj/Sparkle.strings b/Sparkle.framework/Versions/A/Resources/Autoupdate.app/Contents/Resources/he.lproj/Sparkle.strings new file mode 100644 index 0000000..99124cc Binary files /dev/null and b/Sparkle.framework/Versions/A/Resources/Autoupdate.app/Contents/Resources/he.lproj/Sparkle.strings differ diff --git a/Sparkle.framework/Versions/A/Resources/Autoupdate.app/Contents/Resources/is.lproj/Sparkle.strings b/Sparkle.framework/Versions/A/Resources/Autoupdate.app/Contents/Resources/is.lproj/Sparkle.strings index 68ae6e0..74ae728 100644 Binary files a/Sparkle.framework/Versions/A/Resources/Autoupdate.app/Contents/Resources/is.lproj/Sparkle.strings and b/Sparkle.framework/Versions/A/Resources/Autoupdate.app/Contents/Resources/is.lproj/Sparkle.strings differ diff --git a/Sparkle.framework/Versions/A/Resources/Autoupdate.app/Contents/Resources/it.lproj/Sparkle.strings b/Sparkle.framework/Versions/A/Resources/Autoupdate.app/Contents/Resources/it.lproj/Sparkle.strings index 99955af..68b6d36 100644 Binary files a/Sparkle.framework/Versions/A/Resources/Autoupdate.app/Contents/Resources/it.lproj/Sparkle.strings and b/Sparkle.framework/Versions/A/Resources/Autoupdate.app/Contents/Resources/it.lproj/Sparkle.strings differ diff --git a/Sparkle.framework/Versions/A/Resources/Autoupdate.app/Contents/Resources/ja.lproj/Sparkle.strings b/Sparkle.framework/Versions/A/Resources/Autoupdate.app/Contents/Resources/ja.lproj/Sparkle.strings index faa546c..5d2315c 100644 Binary files a/Sparkle.framework/Versions/A/Resources/Autoupdate.app/Contents/Resources/ja.lproj/Sparkle.strings and b/Sparkle.framework/Versions/A/Resources/Autoupdate.app/Contents/Resources/ja.lproj/Sparkle.strings differ diff --git a/Sparkle.framework/Versions/A/Resources/Autoupdate.app/Contents/Resources/ko.lproj/Sparkle.strings b/Sparkle.framework/Versions/A/Resources/Autoupdate.app/Contents/Resources/ko.lproj/Sparkle.strings index d5df79d..92c18ee 100644 Binary files a/Sparkle.framework/Versions/A/Resources/Autoupdate.app/Contents/Resources/ko.lproj/Sparkle.strings and b/Sparkle.framework/Versions/A/Resources/Autoupdate.app/Contents/Resources/ko.lproj/Sparkle.strings differ diff --git a/Sparkle.framework/Versions/A/Resources/Autoupdate.app/Contents/Resources/nb.lproj/Sparkle.strings b/Sparkle.framework/Versions/A/Resources/Autoupdate.app/Contents/Resources/nb.lproj/Sparkle.strings index 05a426d..ec2561b 100644 Binary files a/Sparkle.framework/Versions/A/Resources/Autoupdate.app/Contents/Resources/nb.lproj/Sparkle.strings and b/Sparkle.framework/Versions/A/Resources/Autoupdate.app/Contents/Resources/nb.lproj/Sparkle.strings differ diff --git a/Sparkle.framework/Versions/A/Resources/Autoupdate.app/Contents/Resources/nl.lproj/Sparkle.strings b/Sparkle.framework/Versions/A/Resources/Autoupdate.app/Contents/Resources/nl.lproj/Sparkle.strings index 95923ee..58be0e8 100644 Binary files a/Sparkle.framework/Versions/A/Resources/Autoupdate.app/Contents/Resources/nl.lproj/Sparkle.strings and b/Sparkle.framework/Versions/A/Resources/Autoupdate.app/Contents/Resources/nl.lproj/Sparkle.strings differ diff --git a/Sparkle.framework/Versions/A/Resources/Autoupdate.app/Contents/Resources/pl.lproj/Sparkle.strings b/Sparkle.framework/Versions/A/Resources/Autoupdate.app/Contents/Resources/pl.lproj/Sparkle.strings index d10801f..2b9c461 100644 Binary files a/Sparkle.framework/Versions/A/Resources/Autoupdate.app/Contents/Resources/pl.lproj/Sparkle.strings and b/Sparkle.framework/Versions/A/Resources/Autoupdate.app/Contents/Resources/pl.lproj/Sparkle.strings differ diff --git a/Sparkle.framework/Versions/A/Resources/Autoupdate.app/Contents/Resources/pt_BR.lproj/Sparkle.strings b/Sparkle.framework/Versions/A/Resources/Autoupdate.app/Contents/Resources/pt_BR.lproj/Sparkle.strings index 0f2ef4d..c94db09 100644 Binary files a/Sparkle.framework/Versions/A/Resources/Autoupdate.app/Contents/Resources/pt_BR.lproj/Sparkle.strings and b/Sparkle.framework/Versions/A/Resources/Autoupdate.app/Contents/Resources/pt_BR.lproj/Sparkle.strings differ diff --git a/Sparkle.framework/Versions/A/Resources/Autoupdate.app/Contents/Resources/pt_PT.lproj/Sparkle.strings b/Sparkle.framework/Versions/A/Resources/Autoupdate.app/Contents/Resources/pt_PT.lproj/Sparkle.strings index 69853a3..00df86f 100644 Binary files a/Sparkle.framework/Versions/A/Resources/Autoupdate.app/Contents/Resources/pt_PT.lproj/Sparkle.strings and b/Sparkle.framework/Versions/A/Resources/Autoupdate.app/Contents/Resources/pt_PT.lproj/Sparkle.strings differ diff --git a/Sparkle.framework/Versions/A/Resources/Autoupdate.app/Contents/Resources/ro.lproj/Sparkle.strings b/Sparkle.framework/Versions/A/Resources/Autoupdate.app/Contents/Resources/ro.lproj/Sparkle.strings index 3cd694d..318baa9 100644 Binary files a/Sparkle.framework/Versions/A/Resources/Autoupdate.app/Contents/Resources/ro.lproj/Sparkle.strings and b/Sparkle.framework/Versions/A/Resources/Autoupdate.app/Contents/Resources/ro.lproj/Sparkle.strings differ diff --git a/Sparkle.framework/Versions/A/Resources/Autoupdate.app/Contents/Resources/ru.lproj/Sparkle.strings b/Sparkle.framework/Versions/A/Resources/Autoupdate.app/Contents/Resources/ru.lproj/Sparkle.strings index 349f17f..c33086d 100644 Binary files a/Sparkle.framework/Versions/A/Resources/Autoupdate.app/Contents/Resources/ru.lproj/Sparkle.strings and b/Sparkle.framework/Versions/A/Resources/Autoupdate.app/Contents/Resources/ru.lproj/Sparkle.strings differ diff --git a/Sparkle.framework/Versions/A/Resources/Autoupdate.app/Contents/Resources/sk.lproj/Sparkle.strings b/Sparkle.framework/Versions/A/Resources/Autoupdate.app/Contents/Resources/sk.lproj/Sparkle.strings index 38bb70d..a7d2ebc 100644 Binary files a/Sparkle.framework/Versions/A/Resources/Autoupdate.app/Contents/Resources/sk.lproj/Sparkle.strings and b/Sparkle.framework/Versions/A/Resources/Autoupdate.app/Contents/Resources/sk.lproj/Sparkle.strings differ diff --git a/Sparkle.framework/Versions/A/Resources/Autoupdate.app/Contents/Resources/sl.lproj/Sparkle.strings b/Sparkle.framework/Versions/A/Resources/Autoupdate.app/Contents/Resources/sl.lproj/Sparkle.strings index 889a658..1be2a80 100644 Binary files a/Sparkle.framework/Versions/A/Resources/Autoupdate.app/Contents/Resources/sl.lproj/Sparkle.strings and b/Sparkle.framework/Versions/A/Resources/Autoupdate.app/Contents/Resources/sl.lproj/Sparkle.strings differ diff --git a/Sparkle.framework/Versions/A/Resources/Autoupdate.app/Contents/Resources/sv.lproj/Sparkle.strings b/Sparkle.framework/Versions/A/Resources/Autoupdate.app/Contents/Resources/sv.lproj/Sparkle.strings index e7e9307..738c900 100644 Binary files a/Sparkle.framework/Versions/A/Resources/Autoupdate.app/Contents/Resources/sv.lproj/Sparkle.strings and b/Sparkle.framework/Versions/A/Resources/Autoupdate.app/Contents/Resources/sv.lproj/Sparkle.strings differ diff --git a/Sparkle.framework/Versions/A/Resources/Autoupdate.app/Contents/Resources/th.lproj/Sparkle.strings b/Sparkle.framework/Versions/A/Resources/Autoupdate.app/Contents/Resources/th.lproj/Sparkle.strings index 323bb70..eca2570 100644 Binary files a/Sparkle.framework/Versions/A/Resources/Autoupdate.app/Contents/Resources/th.lproj/Sparkle.strings and b/Sparkle.framework/Versions/A/Resources/Autoupdate.app/Contents/Resources/th.lproj/Sparkle.strings differ diff --git a/Sparkle.framework/Versions/A/Resources/Autoupdate.app/Contents/Resources/tr.lproj/Sparkle.strings b/Sparkle.framework/Versions/A/Resources/Autoupdate.app/Contents/Resources/tr.lproj/Sparkle.strings index 74e17e4..4def140 100644 Binary files a/Sparkle.framework/Versions/A/Resources/Autoupdate.app/Contents/Resources/tr.lproj/Sparkle.strings and b/Sparkle.framework/Versions/A/Resources/Autoupdate.app/Contents/Resources/tr.lproj/Sparkle.strings differ diff --git a/Sparkle.framework/Versions/A/Resources/Autoupdate.app/Contents/Resources/uk.lproj/Sparkle.strings b/Sparkle.framework/Versions/A/Resources/Autoupdate.app/Contents/Resources/uk.lproj/Sparkle.strings index bf13d96..f7eb257 100644 Binary files a/Sparkle.framework/Versions/A/Resources/Autoupdate.app/Contents/Resources/uk.lproj/Sparkle.strings and b/Sparkle.framework/Versions/A/Resources/Autoupdate.app/Contents/Resources/uk.lproj/Sparkle.strings differ diff --git a/Sparkle.framework/Versions/A/Resources/Autoupdate.app/Contents/Resources/zh_CN.lproj/Sparkle.strings b/Sparkle.framework/Versions/A/Resources/Autoupdate.app/Contents/Resources/zh_CN.lproj/Sparkle.strings index 49b68ce..214331c 100644 Binary files a/Sparkle.framework/Versions/A/Resources/Autoupdate.app/Contents/Resources/zh_CN.lproj/Sparkle.strings and b/Sparkle.framework/Versions/A/Resources/Autoupdate.app/Contents/Resources/zh_CN.lproj/Sparkle.strings differ diff --git a/Sparkle.framework/Versions/A/Resources/Autoupdate.app/Contents/Resources/zh_TW.lproj/Sparkle.strings b/Sparkle.framework/Versions/A/Resources/Autoupdate.app/Contents/Resources/zh_TW.lproj/Sparkle.strings index d9229c9..533e208 100644 Binary files a/Sparkle.framework/Versions/A/Resources/Autoupdate.app/Contents/Resources/zh_TW.lproj/Sparkle.strings and b/Sparkle.framework/Versions/A/Resources/Autoupdate.app/Contents/Resources/zh_TW.lproj/Sparkle.strings differ diff --git a/Sparkle.framework/Versions/A/Resources/Info.plist b/Sparkle.framework/Versions/A/Resources/Info.plist index 8c21f16..f70151a 100644 --- a/Sparkle.framework/Versions/A/Resources/Info.plist +++ b/Sparkle.framework/Versions/A/Resources/Info.plist @@ -3,13 +3,13 @@ BuildMachineOSBuild - 14E7f + 17A330h CFBundleDevelopmentRegion en CFBundleExecutable Sparkle CFBundleIdentifier - org.andymatuschak.Sparkle + org.sparkle-project.Sparkle CFBundleInfoDictionaryVersion 6.0 CFBundleName @@ -17,32 +17,28 @@ CFBundlePackageType FMWK CFBundleShortVersionString - 1.10.0 git-9646b0b + 1.18.1 21-g558cfd21 CFBundleSignature ???? + CFBundleSupportedPlatforms + + MacOSX + CFBundleVersion - 1.10.0rc1 + 1.18.1 DTCompiler com.apple.compilers.llvm.clang.1_0 DTPlatformBuild - 6D1002 + 9M136h DTPlatformVersion GM DTSDKBuild - 14D125 + 17A263z DTSDKName - macosx10.10 + macosx10.13 DTXcode - 0631 + 0900 DTXcodeBuild - 6D1002 - SUAppendVersionNumber - 1 - SUEnableAutomatedDowngrades - 0 - SUNormalizeInstalledApplicationName - 0 - SURelaunchToolName - Autoupdate + 9M136h diff --git a/Sparkle.framework/Versions/A/Resources/SUModelTranslation.plist b/Sparkle.framework/Versions/A/Resources/SUModelTranslation.plist index 74db0ff..1f75b24 100644 --- a/Sparkle.framework/Versions/A/Resources/SUModelTranslation.plist +++ b/Sparkle.framework/Versions/A/Resources/SUModelTranslation.plist @@ -16,6 +16,8 @@ iMac (Core 2 Duo, 17 inch, Combo Drive) iMac6,1 iMac (Core 2 Duo, 24 inch, SuperDrive) + iMac7,1 + iMac Intel Core 2 Duo (aluminum enclosure) iMac8,1 iMac (Core 2 Duo, 20 or 24 inch, Early 2008 ) iMac9,1 @@ -25,7 +27,7 @@ iMac11,1 iMac (Core i5 or i7, 27 inch Late 2009) iMac11,2 - iMac (Core i3 or i5, 27 inch Mid 2010) + 21.5" iMac (mid 2010) iMac11,3 iMac (Core i5 or i7, 27 inch Mid 2010) iMac12,1 @@ -42,6 +44,16 @@ iMac (Core i5 or i7, 27 inch Late 2013) iMac14,3 iMac (Core i5 or i7, 21.5 inch Late 2013) + iMac14,4 + iMac (Core i5, 21.5 inch Mid 2014) + iMac15,1 + iMac (Retina 5K Core i5 or i7, 27 inch Late 2014 or Mid 2015) + iMac16,1 + iMac (Core i5, 21,5 inch Late 2015) + iMac16,2 + iMac (Retina 4K Core i5 or i7, 21.5 inch Late 2015) + iMac17,1 + iMac (Retina 5K Core i5 or i7, 27 inch Late 2015) MacBook1,1 MacBook (Core Duo) MacBook2,1 @@ -56,6 +68,8 @@ MacBook (Core 2 Duo, Late 2009, Unibody) MacBook7,1 MacBook (Core 2 Duo, Mid 2010, White) + MacBook8,1 + MacBook (Core M, 12 inch, Early 2015) MacBookAir1,1 MacBook Air (Core 2 Duo, 13 inch, Early 2008) MacBookAir2,1 @@ -76,6 +90,10 @@ MacBook Air (Core i5 or i7, 11 inch, Mid 2013 or Early 2014) MacBookAir6,2 MacBook Air (Core i5 or i7, 13 inch, Mid 2013 or Early 2014) + MacBookAir7,1 + MacBook Air (Core i5 or i7, 11 inch, Early 2015) + MacBookAir7,2 + MacBook Air (Core i5 or i7, 13 inch, Early 2015) MacBookPro1,1 MacBook Pro Core Duo (15-inch) MacBookPro1,2 @@ -90,8 +108,70 @@ MacBook Pro Core 2 Duo (17-inch HD, Core 2 Duo) MacBookPro4,1 MacBook Pro (Core 2 Duo Feb 2008) + MacBookPro5,1 + MacBook Pro Intel Core 2 Duo (aluminum unibody) + MacBookPro5,2 + MacBook Pro Intel Core 2 Duo (aluminum unibody) + MacBookPro5,3 + MacBook Pro Intel Core 2 Duo (aluminum unibody) + MacBookPro5,4 + MacBook Pro Intel Core 2 Duo (aluminum unibody) + MacBookPro5,5 + MacBook Pro Intel Core 2 Duo (aluminum unibody) + MacBookPro6,1 + MacBook Pro Intel Core i5, Intel Core i7 (mid 2010) + MacBookPro6,2 + MacBook Pro Intel Core i5, Intel Core i7 (mid 2010) + MacBookPro7,1 + MacBook Pro Intel Core 2 Duo (mid 2010) + MacBookPro8,1 + MacBook Pro Intel Core i5, Intel Core i7, 13" (early 2011) + MacBookPro8,2 + MacBook Pro Intel Core i7, 15" (early 2011) + MacBookPro8,3 + MacBook Pro Intel Core i7, 17" (early 2011) + MacBookPro9,1 + MacBook Pro (15-inch, Mid 2012) + MacBookPro9,2 + MacBook Pro (13-inch, Mid 2012) + MacBookPro10,1 + MacBook Pro (Retina, Mid 2012) + MacBookPro10,2 + MacBook Pro (Retina, 13-inch, Late 2012) + MacBookPro11,1 + MacBook Pro (Retina, 13-inch, Late 2013) + MacBookPro11,2 + MacBook Pro (Retina, 15-inch, Late 2013) + MacBookPro11,3 + MacBook Pro (Retina, 15-inch, Late 2013) + MacbookPro11,4 + MacBook Pro (Retina, 15-inch, Mid 2015) + MacbookPro11,5 + MacBook Pro (Retina, 15-inch, Mid 2015) + MacbookPro12,1  + MacBook Pro (Retina, 13-inch, Early 2015) Macmini1,1 Mac Mini (Core Solo/Duo) + Macmini2,1 + Mac mini Intel Core + Macmini3,1 + Mac mini Intel Core + Macmini4,1 + Mac mini Intel Core (Mid 2010) + Macmini5,1 + Mac mini (Core i5, Mid 2011) + Macmini5,2 + Mac mini (Core i5 or Core i7, Mid 2011) + Macmini5,3 + Mac mini (Core i7, Server, Mid 2011) + Macmini6,1 + Mac mini (Core i5, Late 2012) + Macmini6,2 + Mac mini (Core i7, Normal or Server, Late 2012) + Macmini7,1 + Mac mini (Core i5 or Core i7, Late 2014) + MacPro1,1,Quad + Mac Pro MacPro1,1 Mac Pro (four-core) MacPro2,1 @@ -101,7 +181,9 @@ MacPro4,1 Mac Pro (March 2009) MacPro5,1 - Mac Pro (August 2010) + Mac Pro (2010 or 2012) + MacPro6,1 + Mac Pro (Late 2013) PowerBook1,1 PowerBook G3 PowerBook2,1 @@ -164,14 +246,6 @@ Power Macintosh G3 (Blue & White) PowerMac1,2 Power Macintosh G4 (PCI Graphics) - PowerMac10,1 - Mac Mini G4 - PowerMac10,2 - Mac Mini (Late 2005) - PowerMac11,2 - Power Macintosh G5 (Late 2005) - PowerMac12,1 - iMac G5 (iSight) PowerMac2,1 iMac G3 (Slot-loading CD-ROM) PowerMac2,2 @@ -198,6 +272,8 @@ iMac G4 (17-inch Flat Panel) PowerMac5,1 Power Macintosh G4 Cube + PowerMac5,2 + Power Mac G4 Cube PowerMac6,1 iMac G4 (USB 2.0) PowerMac6,3 @@ -214,6 +290,14 @@ iMac G5 (Ambient Light Sensor) PowerMac9,1 Power Macintosh G5 (Late 2005) + PowerMac10,1 + Mac Mini G4 + PowerMac10,2 + Mac Mini (Late 2005) + PowerMac11,2 + Power Macintosh G5 (Late 2005) + PowerMac12,1 + iMac G5 (iSight) RackMac1,1 Xserve G4 RackMac1,2 @@ -224,5 +308,7 @@ Xserve (Intel Xeon) Xserve2,1 Xserve (January 2008 quad-core) + Xserve3,1 + Xserve (early 2009) diff --git a/Sparkle.framework/Versions/A/Resources/SUStatus.nib b/Sparkle.framework/Versions/A/Resources/SUStatus.nib index 2a63346..5fa3ecf 100644 Binary files a/Sparkle.framework/Versions/A/Resources/SUStatus.nib and b/Sparkle.framework/Versions/A/Resources/SUStatus.nib differ diff --git a/Sparkle.framework/Versions/A/Resources/ar.lproj/SUAutomaticUpdateAlert.nib b/Sparkle.framework/Versions/A/Resources/ar.lproj/SUAutomaticUpdateAlert.nib index f91cb9d..ee833b0 100644 Binary files a/Sparkle.framework/Versions/A/Resources/ar.lproj/SUAutomaticUpdateAlert.nib and b/Sparkle.framework/Versions/A/Resources/ar.lproj/SUAutomaticUpdateAlert.nib differ diff --git a/Sparkle.framework/Versions/A/Resources/ar.lproj/SUUpdateAlert.nib b/Sparkle.framework/Versions/A/Resources/ar.lproj/SUUpdateAlert.nib index 88fe442..a3bf0ac 100644 Binary files a/Sparkle.framework/Versions/A/Resources/ar.lproj/SUUpdateAlert.nib and b/Sparkle.framework/Versions/A/Resources/ar.lproj/SUUpdateAlert.nib differ diff --git a/Sparkle.framework/Versions/A/Resources/ar.lproj/SUUpdatePermissionPrompt.nib b/Sparkle.framework/Versions/A/Resources/ar.lproj/SUUpdatePermissionPrompt.nib index 89b7c48..6889325 100644 Binary files a/Sparkle.framework/Versions/A/Resources/ar.lproj/SUUpdatePermissionPrompt.nib and b/Sparkle.framework/Versions/A/Resources/ar.lproj/SUUpdatePermissionPrompt.nib differ diff --git a/Sparkle.framework/Versions/A/Resources/ar.lproj/Sparkle.strings b/Sparkle.framework/Versions/A/Resources/ar.lproj/Sparkle.strings index 28c2c21..4cd92c0 100644 Binary files a/Sparkle.framework/Versions/A/Resources/ar.lproj/Sparkle.strings and b/Sparkle.framework/Versions/A/Resources/ar.lproj/Sparkle.strings differ diff --git a/Sparkle.framework/Versions/A/Resources/ca.lproj/Sparkle.strings b/Sparkle.framework/Versions/A/Resources/ca.lproj/Sparkle.strings new file mode 100644 index 0000000..cc238f6 Binary files /dev/null and b/Sparkle.framework/Versions/A/Resources/ca.lproj/Sparkle.strings differ diff --git a/Sparkle.framework/Versions/A/Resources/cs.lproj/SUAutomaticUpdateAlert.nib b/Sparkle.framework/Versions/A/Resources/cs.lproj/SUAutomaticUpdateAlert.nib index 4ff8afe..114105b 100644 Binary files a/Sparkle.framework/Versions/A/Resources/cs.lproj/SUAutomaticUpdateAlert.nib and b/Sparkle.framework/Versions/A/Resources/cs.lproj/SUAutomaticUpdateAlert.nib differ diff --git a/Sparkle.framework/Versions/A/Resources/cs.lproj/SUUpdateAlert.nib b/Sparkle.framework/Versions/A/Resources/cs.lproj/SUUpdateAlert.nib index e23cfa1..f4323fb 100644 Binary files a/Sparkle.framework/Versions/A/Resources/cs.lproj/SUUpdateAlert.nib and b/Sparkle.framework/Versions/A/Resources/cs.lproj/SUUpdateAlert.nib differ diff --git a/Sparkle.framework/Versions/A/Resources/cs.lproj/SUUpdatePermissionPrompt.nib b/Sparkle.framework/Versions/A/Resources/cs.lproj/SUUpdatePermissionPrompt.nib index 0947d7f..d5f6662 100644 Binary files a/Sparkle.framework/Versions/A/Resources/cs.lproj/SUUpdatePermissionPrompt.nib and b/Sparkle.framework/Versions/A/Resources/cs.lproj/SUUpdatePermissionPrompt.nib differ diff --git a/Sparkle.framework/Versions/A/Resources/cs.lproj/Sparkle.strings b/Sparkle.framework/Versions/A/Resources/cs.lproj/Sparkle.strings index a50d6bf..c93688a 100644 Binary files a/Sparkle.framework/Versions/A/Resources/cs.lproj/Sparkle.strings and b/Sparkle.framework/Versions/A/Resources/cs.lproj/Sparkle.strings differ diff --git a/Sparkle.framework/Versions/A/Resources/da.lproj/SUAutomaticUpdateAlert.nib b/Sparkle.framework/Versions/A/Resources/da.lproj/SUAutomaticUpdateAlert.nib index 3fc9d17..25e40b2 100644 Binary files a/Sparkle.framework/Versions/A/Resources/da.lproj/SUAutomaticUpdateAlert.nib and b/Sparkle.framework/Versions/A/Resources/da.lproj/SUAutomaticUpdateAlert.nib differ diff --git a/Sparkle.framework/Versions/A/Resources/da.lproj/SUUpdateAlert.nib b/Sparkle.framework/Versions/A/Resources/da.lproj/SUUpdateAlert.nib index 73595ca..043d4b8 100644 Binary files a/Sparkle.framework/Versions/A/Resources/da.lproj/SUUpdateAlert.nib and b/Sparkle.framework/Versions/A/Resources/da.lproj/SUUpdateAlert.nib differ diff --git a/Sparkle.framework/Versions/A/Resources/da.lproj/SUUpdatePermissionPrompt.nib b/Sparkle.framework/Versions/A/Resources/da.lproj/SUUpdatePermissionPrompt.nib index 826a977..c9d44e9 100644 Binary files a/Sparkle.framework/Versions/A/Resources/da.lproj/SUUpdatePermissionPrompt.nib and b/Sparkle.framework/Versions/A/Resources/da.lproj/SUUpdatePermissionPrompt.nib differ diff --git a/Sparkle.framework/Versions/A/Resources/da.lproj/Sparkle.strings b/Sparkle.framework/Versions/A/Resources/da.lproj/Sparkle.strings index 8c349bd..10e3c5a 100644 Binary files a/Sparkle.framework/Versions/A/Resources/da.lproj/Sparkle.strings and b/Sparkle.framework/Versions/A/Resources/da.lproj/Sparkle.strings differ diff --git a/Sparkle.framework/Versions/A/Resources/de.lproj/SUAutomaticUpdateAlert.nib b/Sparkle.framework/Versions/A/Resources/de.lproj/SUAutomaticUpdateAlert.nib index b2b9554..0447897 100644 Binary files a/Sparkle.framework/Versions/A/Resources/de.lproj/SUAutomaticUpdateAlert.nib and b/Sparkle.framework/Versions/A/Resources/de.lproj/SUAutomaticUpdateAlert.nib differ diff --git a/Sparkle.framework/Versions/A/Resources/de.lproj/SUUpdateAlert.nib b/Sparkle.framework/Versions/A/Resources/de.lproj/SUUpdateAlert.nib index c31ac42..cc343d4 100644 Binary files a/Sparkle.framework/Versions/A/Resources/de.lproj/SUUpdateAlert.nib and b/Sparkle.framework/Versions/A/Resources/de.lproj/SUUpdateAlert.nib differ diff --git a/Sparkle.framework/Versions/A/Resources/de.lproj/SUUpdatePermissionPrompt.nib b/Sparkle.framework/Versions/A/Resources/de.lproj/SUUpdatePermissionPrompt.nib index 5d2cdb1..5d584dc 100644 Binary files a/Sparkle.framework/Versions/A/Resources/de.lproj/SUUpdatePermissionPrompt.nib and b/Sparkle.framework/Versions/A/Resources/de.lproj/SUUpdatePermissionPrompt.nib differ diff --git a/Sparkle.framework/Versions/A/Resources/de.lproj/Sparkle.strings b/Sparkle.framework/Versions/A/Resources/de.lproj/Sparkle.strings index fe50db5..9b0968f 100644 Binary files a/Sparkle.framework/Versions/A/Resources/de.lproj/Sparkle.strings and b/Sparkle.framework/Versions/A/Resources/de.lproj/Sparkle.strings differ diff --git a/Sparkle.framework/Versions/A/Resources/el.lproj/SUAutomaticUpdateAlert.nib b/Sparkle.framework/Versions/A/Resources/el.lproj/SUAutomaticUpdateAlert.nib index 229df3c..c4a64b4 100644 Binary files a/Sparkle.framework/Versions/A/Resources/el.lproj/SUAutomaticUpdateAlert.nib and b/Sparkle.framework/Versions/A/Resources/el.lproj/SUAutomaticUpdateAlert.nib differ diff --git a/Sparkle.framework/Versions/A/Resources/el.lproj/SUUpdateAlert.nib b/Sparkle.framework/Versions/A/Resources/el.lproj/SUUpdateAlert.nib index 0d43c97..46cbdc3 100644 Binary files a/Sparkle.framework/Versions/A/Resources/el.lproj/SUUpdateAlert.nib and b/Sparkle.framework/Versions/A/Resources/el.lproj/SUUpdateAlert.nib differ diff --git a/Sparkle.framework/Versions/A/Resources/el.lproj/SUUpdatePermissionPrompt.nib b/Sparkle.framework/Versions/A/Resources/el.lproj/SUUpdatePermissionPrompt.nib index 7f53f7e..c24a4aa 100644 Binary files a/Sparkle.framework/Versions/A/Resources/el.lproj/SUUpdatePermissionPrompt.nib and b/Sparkle.framework/Versions/A/Resources/el.lproj/SUUpdatePermissionPrompt.nib differ diff --git a/Sparkle.framework/Versions/A/Resources/el.lproj/Sparkle.strings b/Sparkle.framework/Versions/A/Resources/el.lproj/Sparkle.strings index 015c213..deed9ef 100644 Binary files a/Sparkle.framework/Versions/A/Resources/el.lproj/Sparkle.strings and b/Sparkle.framework/Versions/A/Resources/el.lproj/Sparkle.strings differ diff --git a/Sparkle.framework/Versions/A/Resources/en.lproj/SUAutomaticUpdateAlert.nib b/Sparkle.framework/Versions/A/Resources/en.lproj/SUAutomaticUpdateAlert.nib index a5a019b..4236118 100644 Binary files a/Sparkle.framework/Versions/A/Resources/en.lproj/SUAutomaticUpdateAlert.nib and b/Sparkle.framework/Versions/A/Resources/en.lproj/SUAutomaticUpdateAlert.nib differ diff --git a/Sparkle.framework/Versions/A/Resources/en.lproj/SUUpdateAlert.nib b/Sparkle.framework/Versions/A/Resources/en.lproj/SUUpdateAlert.nib index 832ec29..12b3e8e 100644 Binary files a/Sparkle.framework/Versions/A/Resources/en.lproj/SUUpdateAlert.nib and b/Sparkle.framework/Versions/A/Resources/en.lproj/SUUpdateAlert.nib differ diff --git a/Sparkle.framework/Versions/A/Resources/en.lproj/SUUpdatePermissionPrompt.nib b/Sparkle.framework/Versions/A/Resources/en.lproj/SUUpdatePermissionPrompt.nib index 78f217a..1dd0f78 100644 Binary files a/Sparkle.framework/Versions/A/Resources/en.lproj/SUUpdatePermissionPrompt.nib and b/Sparkle.framework/Versions/A/Resources/en.lproj/SUUpdatePermissionPrompt.nib differ diff --git a/Sparkle.framework/Versions/A/Resources/en.lproj/Sparkle.strings b/Sparkle.framework/Versions/A/Resources/en.lproj/Sparkle.strings index d2e5e5c..842d255 100644 Binary files a/Sparkle.framework/Versions/A/Resources/en.lproj/Sparkle.strings and b/Sparkle.framework/Versions/A/Resources/en.lproj/Sparkle.strings differ diff --git a/Sparkle.framework/Versions/A/Resources/es.lproj/SUAutomaticUpdateAlert.nib b/Sparkle.framework/Versions/A/Resources/es.lproj/SUAutomaticUpdateAlert.nib index b2666b7..130d71a 100644 Binary files a/Sparkle.framework/Versions/A/Resources/es.lproj/SUAutomaticUpdateAlert.nib and b/Sparkle.framework/Versions/A/Resources/es.lproj/SUAutomaticUpdateAlert.nib differ diff --git a/Sparkle.framework/Versions/A/Resources/es.lproj/SUUpdateAlert.nib b/Sparkle.framework/Versions/A/Resources/es.lproj/SUUpdateAlert.nib index 0dab596..e24c3ca 100644 Binary files a/Sparkle.framework/Versions/A/Resources/es.lproj/SUUpdateAlert.nib and b/Sparkle.framework/Versions/A/Resources/es.lproj/SUUpdateAlert.nib differ diff --git a/Sparkle.framework/Versions/A/Resources/es.lproj/SUUpdatePermissionPrompt.nib b/Sparkle.framework/Versions/A/Resources/es.lproj/SUUpdatePermissionPrompt.nib index 06586bd..caeb75c 100644 Binary files a/Sparkle.framework/Versions/A/Resources/es.lproj/SUUpdatePermissionPrompt.nib and b/Sparkle.framework/Versions/A/Resources/es.lproj/SUUpdatePermissionPrompt.nib differ diff --git a/Sparkle.framework/Versions/A/Resources/es.lproj/Sparkle.strings b/Sparkle.framework/Versions/A/Resources/es.lproj/Sparkle.strings index ee69407..3027ecd 100644 Binary files a/Sparkle.framework/Versions/A/Resources/es.lproj/Sparkle.strings and b/Sparkle.framework/Versions/A/Resources/es.lproj/Sparkle.strings differ diff --git a/Sparkle.framework/Versions/A/Resources/fi.lproj/Sparkle.strings b/Sparkle.framework/Versions/A/Resources/fi.lproj/Sparkle.strings new file mode 100644 index 0000000..32d3107 Binary files /dev/null and b/Sparkle.framework/Versions/A/Resources/fi.lproj/Sparkle.strings differ diff --git a/Sparkle.framework/Versions/A/Resources/fr.lproj/SUAutomaticUpdateAlert.nib b/Sparkle.framework/Versions/A/Resources/fr.lproj/SUAutomaticUpdateAlert.nib index 52eca82..aded902 100644 Binary files a/Sparkle.framework/Versions/A/Resources/fr.lproj/SUAutomaticUpdateAlert.nib and b/Sparkle.framework/Versions/A/Resources/fr.lproj/SUAutomaticUpdateAlert.nib differ diff --git a/Sparkle.framework/Versions/A/Resources/fr.lproj/SUUpdateAlert.nib b/Sparkle.framework/Versions/A/Resources/fr.lproj/SUUpdateAlert.nib index cae35bf..247aab8 100644 Binary files a/Sparkle.framework/Versions/A/Resources/fr.lproj/SUUpdateAlert.nib and b/Sparkle.framework/Versions/A/Resources/fr.lproj/SUUpdateAlert.nib differ diff --git a/Sparkle.framework/Versions/A/Resources/fr.lproj/SUUpdatePermissionPrompt.nib b/Sparkle.framework/Versions/A/Resources/fr.lproj/SUUpdatePermissionPrompt.nib index df2841d..a2468be 100644 Binary files a/Sparkle.framework/Versions/A/Resources/fr.lproj/SUUpdatePermissionPrompt.nib and b/Sparkle.framework/Versions/A/Resources/fr.lproj/SUUpdatePermissionPrompt.nib differ diff --git a/Sparkle.framework/Versions/A/Resources/fr.lproj/Sparkle.strings b/Sparkle.framework/Versions/A/Resources/fr.lproj/Sparkle.strings index c7b221b..e4294a5 100644 Binary files a/Sparkle.framework/Versions/A/Resources/fr.lproj/Sparkle.strings and b/Sparkle.framework/Versions/A/Resources/fr.lproj/Sparkle.strings differ diff --git a/Sparkle.framework/Versions/A/Resources/he.lproj/Sparkle.strings b/Sparkle.framework/Versions/A/Resources/he.lproj/Sparkle.strings new file mode 100644 index 0000000..99124cc Binary files /dev/null and b/Sparkle.framework/Versions/A/Resources/he.lproj/Sparkle.strings differ diff --git a/Sparkle.framework/Versions/A/Resources/is.lproj/SUAutomaticUpdateAlert.nib b/Sparkle.framework/Versions/A/Resources/is.lproj/SUAutomaticUpdateAlert.nib index 68083c2..b10697c 100644 Binary files a/Sparkle.framework/Versions/A/Resources/is.lproj/SUAutomaticUpdateAlert.nib and b/Sparkle.framework/Versions/A/Resources/is.lproj/SUAutomaticUpdateAlert.nib differ diff --git a/Sparkle.framework/Versions/A/Resources/is.lproj/SUUpdateAlert.nib b/Sparkle.framework/Versions/A/Resources/is.lproj/SUUpdateAlert.nib index b6b74f3..049132f 100644 Binary files a/Sparkle.framework/Versions/A/Resources/is.lproj/SUUpdateAlert.nib and b/Sparkle.framework/Versions/A/Resources/is.lproj/SUUpdateAlert.nib differ diff --git a/Sparkle.framework/Versions/A/Resources/is.lproj/SUUpdatePermissionPrompt.nib b/Sparkle.framework/Versions/A/Resources/is.lproj/SUUpdatePermissionPrompt.nib index b50374c..7533345 100644 Binary files a/Sparkle.framework/Versions/A/Resources/is.lproj/SUUpdatePermissionPrompt.nib and b/Sparkle.framework/Versions/A/Resources/is.lproj/SUUpdatePermissionPrompt.nib differ diff --git a/Sparkle.framework/Versions/A/Resources/is.lproj/Sparkle.strings b/Sparkle.framework/Versions/A/Resources/is.lproj/Sparkle.strings index 68ae6e0..74ae728 100644 Binary files a/Sparkle.framework/Versions/A/Resources/is.lproj/Sparkle.strings and b/Sparkle.framework/Versions/A/Resources/is.lproj/Sparkle.strings differ diff --git a/Sparkle.framework/Versions/A/Resources/it.lproj/SUAutomaticUpdateAlert.nib b/Sparkle.framework/Versions/A/Resources/it.lproj/SUAutomaticUpdateAlert.nib index 9c257be..75d8251 100644 Binary files a/Sparkle.framework/Versions/A/Resources/it.lproj/SUAutomaticUpdateAlert.nib and b/Sparkle.framework/Versions/A/Resources/it.lproj/SUAutomaticUpdateAlert.nib differ diff --git a/Sparkle.framework/Versions/A/Resources/it.lproj/SUUpdateAlert.nib b/Sparkle.framework/Versions/A/Resources/it.lproj/SUUpdateAlert.nib index d559eeb..14b4e51 100644 Binary files a/Sparkle.framework/Versions/A/Resources/it.lproj/SUUpdateAlert.nib and b/Sparkle.framework/Versions/A/Resources/it.lproj/SUUpdateAlert.nib differ diff --git a/Sparkle.framework/Versions/A/Resources/it.lproj/SUUpdatePermissionPrompt.nib b/Sparkle.framework/Versions/A/Resources/it.lproj/SUUpdatePermissionPrompt.nib index 8ab6435..3bd60d3 100644 Binary files a/Sparkle.framework/Versions/A/Resources/it.lproj/SUUpdatePermissionPrompt.nib and b/Sparkle.framework/Versions/A/Resources/it.lproj/SUUpdatePermissionPrompt.nib differ diff --git a/Sparkle.framework/Versions/A/Resources/it.lproj/Sparkle.strings b/Sparkle.framework/Versions/A/Resources/it.lproj/Sparkle.strings index 99955af..68b6d36 100644 Binary files a/Sparkle.framework/Versions/A/Resources/it.lproj/Sparkle.strings and b/Sparkle.framework/Versions/A/Resources/it.lproj/Sparkle.strings differ diff --git a/Sparkle.framework/Versions/A/Resources/ja.lproj/SUAutomaticUpdateAlert.nib b/Sparkle.framework/Versions/A/Resources/ja.lproj/SUAutomaticUpdateAlert.nib index 7e4b758..c36e920 100644 Binary files a/Sparkle.framework/Versions/A/Resources/ja.lproj/SUAutomaticUpdateAlert.nib and b/Sparkle.framework/Versions/A/Resources/ja.lproj/SUAutomaticUpdateAlert.nib differ diff --git a/Sparkle.framework/Versions/A/Resources/ja.lproj/SUUpdateAlert.nib b/Sparkle.framework/Versions/A/Resources/ja.lproj/SUUpdateAlert.nib index bbafb69..ebbd509 100644 Binary files a/Sparkle.framework/Versions/A/Resources/ja.lproj/SUUpdateAlert.nib and b/Sparkle.framework/Versions/A/Resources/ja.lproj/SUUpdateAlert.nib differ diff --git a/Sparkle.framework/Versions/A/Resources/ja.lproj/SUUpdatePermissionPrompt.nib b/Sparkle.framework/Versions/A/Resources/ja.lproj/SUUpdatePermissionPrompt.nib index 504677d..a7b0bdd 100644 Binary files a/Sparkle.framework/Versions/A/Resources/ja.lproj/SUUpdatePermissionPrompt.nib and b/Sparkle.framework/Versions/A/Resources/ja.lproj/SUUpdatePermissionPrompt.nib differ diff --git a/Sparkle.framework/Versions/A/Resources/ja.lproj/Sparkle.strings b/Sparkle.framework/Versions/A/Resources/ja.lproj/Sparkle.strings index faa546c..5d2315c 100644 Binary files a/Sparkle.framework/Versions/A/Resources/ja.lproj/Sparkle.strings and b/Sparkle.framework/Versions/A/Resources/ja.lproj/Sparkle.strings differ diff --git a/Sparkle.framework/Versions/A/Resources/ko.lproj/SUAutomaticUpdateAlert.nib b/Sparkle.framework/Versions/A/Resources/ko.lproj/SUAutomaticUpdateAlert.nib index 4012e8c..86f6040 100644 Binary files a/Sparkle.framework/Versions/A/Resources/ko.lproj/SUAutomaticUpdateAlert.nib and b/Sparkle.framework/Versions/A/Resources/ko.lproj/SUAutomaticUpdateAlert.nib differ diff --git a/Sparkle.framework/Versions/A/Resources/ko.lproj/SUUpdateAlert.nib b/Sparkle.framework/Versions/A/Resources/ko.lproj/SUUpdateAlert.nib index 5b35ce4..9fb502c 100644 Binary files a/Sparkle.framework/Versions/A/Resources/ko.lproj/SUUpdateAlert.nib and b/Sparkle.framework/Versions/A/Resources/ko.lproj/SUUpdateAlert.nib differ diff --git a/Sparkle.framework/Versions/A/Resources/ko.lproj/SUUpdatePermissionPrompt.nib b/Sparkle.framework/Versions/A/Resources/ko.lproj/SUUpdatePermissionPrompt.nib index 5600ae3..149e81d 100644 Binary files a/Sparkle.framework/Versions/A/Resources/ko.lproj/SUUpdatePermissionPrompt.nib and b/Sparkle.framework/Versions/A/Resources/ko.lproj/SUUpdatePermissionPrompt.nib differ diff --git a/Sparkle.framework/Versions/A/Resources/ko.lproj/Sparkle.strings b/Sparkle.framework/Versions/A/Resources/ko.lproj/Sparkle.strings index d5df79d..92c18ee 100644 Binary files a/Sparkle.framework/Versions/A/Resources/ko.lproj/Sparkle.strings and b/Sparkle.framework/Versions/A/Resources/ko.lproj/Sparkle.strings differ diff --git a/Sparkle.framework/Versions/A/Resources/nb.lproj/SUAutomaticUpdateAlert.nib b/Sparkle.framework/Versions/A/Resources/nb.lproj/SUAutomaticUpdateAlert.nib index fe29652..4808185 100644 Binary files a/Sparkle.framework/Versions/A/Resources/nb.lproj/SUAutomaticUpdateAlert.nib and b/Sparkle.framework/Versions/A/Resources/nb.lproj/SUAutomaticUpdateAlert.nib differ diff --git a/Sparkle.framework/Versions/A/Resources/nb.lproj/SUUpdateAlert.nib b/Sparkle.framework/Versions/A/Resources/nb.lproj/SUUpdateAlert.nib index a58e36c..211dc8f 100644 Binary files a/Sparkle.framework/Versions/A/Resources/nb.lproj/SUUpdateAlert.nib and b/Sparkle.framework/Versions/A/Resources/nb.lproj/SUUpdateAlert.nib differ diff --git a/Sparkle.framework/Versions/A/Resources/nb.lproj/SUUpdatePermissionPrompt.nib b/Sparkle.framework/Versions/A/Resources/nb.lproj/SUUpdatePermissionPrompt.nib index 1b39b84..86e42a6 100644 Binary files a/Sparkle.framework/Versions/A/Resources/nb.lproj/SUUpdatePermissionPrompt.nib and b/Sparkle.framework/Versions/A/Resources/nb.lproj/SUUpdatePermissionPrompt.nib differ diff --git a/Sparkle.framework/Versions/A/Resources/nb.lproj/Sparkle.strings b/Sparkle.framework/Versions/A/Resources/nb.lproj/Sparkle.strings index 05a426d..ec2561b 100644 Binary files a/Sparkle.framework/Versions/A/Resources/nb.lproj/Sparkle.strings and b/Sparkle.framework/Versions/A/Resources/nb.lproj/Sparkle.strings differ diff --git a/Sparkle.framework/Versions/A/Resources/nl.lproj/SUAutomaticUpdateAlert.nib b/Sparkle.framework/Versions/A/Resources/nl.lproj/SUAutomaticUpdateAlert.nib index 67b36a8..e4ec625 100644 Binary files a/Sparkle.framework/Versions/A/Resources/nl.lproj/SUAutomaticUpdateAlert.nib and b/Sparkle.framework/Versions/A/Resources/nl.lproj/SUAutomaticUpdateAlert.nib differ diff --git a/Sparkle.framework/Versions/A/Resources/nl.lproj/SUUpdateAlert.nib b/Sparkle.framework/Versions/A/Resources/nl.lproj/SUUpdateAlert.nib index 9bdf54b..0ba6762 100644 Binary files a/Sparkle.framework/Versions/A/Resources/nl.lproj/SUUpdateAlert.nib and b/Sparkle.framework/Versions/A/Resources/nl.lproj/SUUpdateAlert.nib differ diff --git a/Sparkle.framework/Versions/A/Resources/nl.lproj/SUUpdatePermissionPrompt.nib b/Sparkle.framework/Versions/A/Resources/nl.lproj/SUUpdatePermissionPrompt.nib index c064d1e..4f9b38b 100644 Binary files a/Sparkle.framework/Versions/A/Resources/nl.lproj/SUUpdatePermissionPrompt.nib and b/Sparkle.framework/Versions/A/Resources/nl.lproj/SUUpdatePermissionPrompt.nib differ diff --git a/Sparkle.framework/Versions/A/Resources/nl.lproj/Sparkle.strings b/Sparkle.framework/Versions/A/Resources/nl.lproj/Sparkle.strings index 95923ee..58be0e8 100644 Binary files a/Sparkle.framework/Versions/A/Resources/nl.lproj/Sparkle.strings and b/Sparkle.framework/Versions/A/Resources/nl.lproj/Sparkle.strings differ diff --git a/Sparkle.framework/Versions/A/Resources/pl.lproj/SUAutomaticUpdateAlert.nib b/Sparkle.framework/Versions/A/Resources/pl.lproj/SUAutomaticUpdateAlert.nib index ec1ad6d..e48d71c 100644 Binary files a/Sparkle.framework/Versions/A/Resources/pl.lproj/SUAutomaticUpdateAlert.nib and b/Sparkle.framework/Versions/A/Resources/pl.lproj/SUAutomaticUpdateAlert.nib differ diff --git a/Sparkle.framework/Versions/A/Resources/pl.lproj/SUUpdateAlert.nib b/Sparkle.framework/Versions/A/Resources/pl.lproj/SUUpdateAlert.nib index c2d1cae..fe98402 100644 Binary files a/Sparkle.framework/Versions/A/Resources/pl.lproj/SUUpdateAlert.nib and b/Sparkle.framework/Versions/A/Resources/pl.lproj/SUUpdateAlert.nib differ diff --git a/Sparkle.framework/Versions/A/Resources/pl.lproj/SUUpdatePermissionPrompt.nib b/Sparkle.framework/Versions/A/Resources/pl.lproj/SUUpdatePermissionPrompt.nib index 50406ab..0e8f33d 100644 Binary files a/Sparkle.framework/Versions/A/Resources/pl.lproj/SUUpdatePermissionPrompt.nib and b/Sparkle.framework/Versions/A/Resources/pl.lproj/SUUpdatePermissionPrompt.nib differ diff --git a/Sparkle.framework/Versions/A/Resources/pl.lproj/Sparkle.strings b/Sparkle.framework/Versions/A/Resources/pl.lproj/Sparkle.strings index d10801f..2b9c461 100644 Binary files a/Sparkle.framework/Versions/A/Resources/pl.lproj/Sparkle.strings and b/Sparkle.framework/Versions/A/Resources/pl.lproj/Sparkle.strings differ diff --git a/Sparkle.framework/Versions/A/Resources/pt_BR.lproj/SUAutomaticUpdateAlert.nib b/Sparkle.framework/Versions/A/Resources/pt_BR.lproj/SUAutomaticUpdateAlert.nib index 4eb1c1a..d185ad8 100644 Binary files a/Sparkle.framework/Versions/A/Resources/pt_BR.lproj/SUAutomaticUpdateAlert.nib and b/Sparkle.framework/Versions/A/Resources/pt_BR.lproj/SUAutomaticUpdateAlert.nib differ diff --git a/Sparkle.framework/Versions/A/Resources/pt_BR.lproj/SUUpdateAlert.nib b/Sparkle.framework/Versions/A/Resources/pt_BR.lproj/SUUpdateAlert.nib index 13f3374..93a0e0e 100644 Binary files a/Sparkle.framework/Versions/A/Resources/pt_BR.lproj/SUUpdateAlert.nib and b/Sparkle.framework/Versions/A/Resources/pt_BR.lproj/SUUpdateAlert.nib differ diff --git a/Sparkle.framework/Versions/A/Resources/pt_BR.lproj/SUUpdatePermissionPrompt.nib b/Sparkle.framework/Versions/A/Resources/pt_BR.lproj/SUUpdatePermissionPrompt.nib index 9fa7506..10f4cde 100644 Binary files a/Sparkle.framework/Versions/A/Resources/pt_BR.lproj/SUUpdatePermissionPrompt.nib and b/Sparkle.framework/Versions/A/Resources/pt_BR.lproj/SUUpdatePermissionPrompt.nib differ diff --git a/Sparkle.framework/Versions/A/Resources/pt_BR.lproj/Sparkle.strings b/Sparkle.framework/Versions/A/Resources/pt_BR.lproj/Sparkle.strings index 0f2ef4d..c94db09 100644 Binary files a/Sparkle.framework/Versions/A/Resources/pt_BR.lproj/Sparkle.strings and b/Sparkle.framework/Versions/A/Resources/pt_BR.lproj/Sparkle.strings differ diff --git a/Sparkle.framework/Versions/A/Resources/pt_PT.lproj/SUAutomaticUpdateAlert.nib b/Sparkle.framework/Versions/A/Resources/pt_PT.lproj/SUAutomaticUpdateAlert.nib index 8add884..2f95438 100644 Binary files a/Sparkle.framework/Versions/A/Resources/pt_PT.lproj/SUAutomaticUpdateAlert.nib and b/Sparkle.framework/Versions/A/Resources/pt_PT.lproj/SUAutomaticUpdateAlert.nib differ diff --git a/Sparkle.framework/Versions/A/Resources/pt_PT.lproj/SUUpdateAlert.nib b/Sparkle.framework/Versions/A/Resources/pt_PT.lproj/SUUpdateAlert.nib index 1b678d3..90a40d4 100644 Binary files a/Sparkle.framework/Versions/A/Resources/pt_PT.lproj/SUUpdateAlert.nib and b/Sparkle.framework/Versions/A/Resources/pt_PT.lproj/SUUpdateAlert.nib differ diff --git a/Sparkle.framework/Versions/A/Resources/pt_PT.lproj/SUUpdatePermissionPrompt.nib b/Sparkle.framework/Versions/A/Resources/pt_PT.lproj/SUUpdatePermissionPrompt.nib index bf6d1be..4e84e87 100644 Binary files a/Sparkle.framework/Versions/A/Resources/pt_PT.lproj/SUUpdatePermissionPrompt.nib and b/Sparkle.framework/Versions/A/Resources/pt_PT.lproj/SUUpdatePermissionPrompt.nib differ diff --git a/Sparkle.framework/Versions/A/Resources/pt_PT.lproj/Sparkle.strings b/Sparkle.framework/Versions/A/Resources/pt_PT.lproj/Sparkle.strings index 69853a3..00df86f 100644 Binary files a/Sparkle.framework/Versions/A/Resources/pt_PT.lproj/Sparkle.strings and b/Sparkle.framework/Versions/A/Resources/pt_PT.lproj/Sparkle.strings differ diff --git a/Sparkle.framework/Versions/A/Resources/ro.lproj/SUAutomaticUpdateAlert.nib b/Sparkle.framework/Versions/A/Resources/ro.lproj/SUAutomaticUpdateAlert.nib index 3200815..8e791fa 100644 Binary files a/Sparkle.framework/Versions/A/Resources/ro.lproj/SUAutomaticUpdateAlert.nib and b/Sparkle.framework/Versions/A/Resources/ro.lproj/SUAutomaticUpdateAlert.nib differ diff --git a/Sparkle.framework/Versions/A/Resources/ro.lproj/SUUpdateAlert.nib b/Sparkle.framework/Versions/A/Resources/ro.lproj/SUUpdateAlert.nib index 91f4335..244b678 100644 Binary files a/Sparkle.framework/Versions/A/Resources/ro.lproj/SUUpdateAlert.nib and b/Sparkle.framework/Versions/A/Resources/ro.lproj/SUUpdateAlert.nib differ diff --git a/Sparkle.framework/Versions/A/Resources/ro.lproj/SUUpdatePermissionPrompt.nib b/Sparkle.framework/Versions/A/Resources/ro.lproj/SUUpdatePermissionPrompt.nib index c93746d..e86d1d0 100644 Binary files a/Sparkle.framework/Versions/A/Resources/ro.lproj/SUUpdatePermissionPrompt.nib and b/Sparkle.framework/Versions/A/Resources/ro.lproj/SUUpdatePermissionPrompt.nib differ diff --git a/Sparkle.framework/Versions/A/Resources/ro.lproj/Sparkle.strings b/Sparkle.framework/Versions/A/Resources/ro.lproj/Sparkle.strings index 3cd694d..318baa9 100644 Binary files a/Sparkle.framework/Versions/A/Resources/ro.lproj/Sparkle.strings and b/Sparkle.framework/Versions/A/Resources/ro.lproj/Sparkle.strings differ diff --git a/Sparkle.framework/Versions/A/Resources/ru.lproj/SUAutomaticUpdateAlert.nib b/Sparkle.framework/Versions/A/Resources/ru.lproj/SUAutomaticUpdateAlert.nib index f501887..c7f72e3 100644 Binary files a/Sparkle.framework/Versions/A/Resources/ru.lproj/SUAutomaticUpdateAlert.nib and b/Sparkle.framework/Versions/A/Resources/ru.lproj/SUAutomaticUpdateAlert.nib differ diff --git a/Sparkle.framework/Versions/A/Resources/ru.lproj/SUUpdateAlert.nib b/Sparkle.framework/Versions/A/Resources/ru.lproj/SUUpdateAlert.nib index 3d961ce..5a5626a 100644 Binary files a/Sparkle.framework/Versions/A/Resources/ru.lproj/SUUpdateAlert.nib and b/Sparkle.framework/Versions/A/Resources/ru.lproj/SUUpdateAlert.nib differ diff --git a/Sparkle.framework/Versions/A/Resources/ru.lproj/SUUpdatePermissionPrompt.nib b/Sparkle.framework/Versions/A/Resources/ru.lproj/SUUpdatePermissionPrompt.nib index 0ea7a5f..c09c353 100644 Binary files a/Sparkle.framework/Versions/A/Resources/ru.lproj/SUUpdatePermissionPrompt.nib and b/Sparkle.framework/Versions/A/Resources/ru.lproj/SUUpdatePermissionPrompt.nib differ diff --git a/Sparkle.framework/Versions/A/Resources/ru.lproj/Sparkle.strings b/Sparkle.framework/Versions/A/Resources/ru.lproj/Sparkle.strings index 349f17f..c33086d 100644 Binary files a/Sparkle.framework/Versions/A/Resources/ru.lproj/Sparkle.strings and b/Sparkle.framework/Versions/A/Resources/ru.lproj/Sparkle.strings differ diff --git a/Sparkle.framework/Versions/A/Resources/sk.lproj/SUAutomaticUpdateAlert.nib b/Sparkle.framework/Versions/A/Resources/sk.lproj/SUAutomaticUpdateAlert.nib index 6de310e..0573ebc 100644 Binary files a/Sparkle.framework/Versions/A/Resources/sk.lproj/SUAutomaticUpdateAlert.nib and b/Sparkle.framework/Versions/A/Resources/sk.lproj/SUAutomaticUpdateAlert.nib differ diff --git a/Sparkle.framework/Versions/A/Resources/sk.lproj/SUUpdateAlert.nib b/Sparkle.framework/Versions/A/Resources/sk.lproj/SUUpdateAlert.nib index 3ef6fb0..91e8c17 100644 Binary files a/Sparkle.framework/Versions/A/Resources/sk.lproj/SUUpdateAlert.nib and b/Sparkle.framework/Versions/A/Resources/sk.lproj/SUUpdateAlert.nib differ diff --git a/Sparkle.framework/Versions/A/Resources/sk.lproj/SUUpdatePermissionPrompt.nib b/Sparkle.framework/Versions/A/Resources/sk.lproj/SUUpdatePermissionPrompt.nib index ec77f89..5b732b8 100644 Binary files a/Sparkle.framework/Versions/A/Resources/sk.lproj/SUUpdatePermissionPrompt.nib and b/Sparkle.framework/Versions/A/Resources/sk.lproj/SUUpdatePermissionPrompt.nib differ diff --git a/Sparkle.framework/Versions/A/Resources/sk.lproj/Sparkle.strings b/Sparkle.framework/Versions/A/Resources/sk.lproj/Sparkle.strings index 38bb70d..a7d2ebc 100644 Binary files a/Sparkle.framework/Versions/A/Resources/sk.lproj/Sparkle.strings and b/Sparkle.framework/Versions/A/Resources/sk.lproj/Sparkle.strings differ diff --git a/Sparkle.framework/Versions/A/Resources/sl.lproj/SUAutomaticUpdateAlert.nib b/Sparkle.framework/Versions/A/Resources/sl.lproj/SUAutomaticUpdateAlert.nib index 3c922a9..4fa1df5 100644 Binary files a/Sparkle.framework/Versions/A/Resources/sl.lproj/SUAutomaticUpdateAlert.nib and b/Sparkle.framework/Versions/A/Resources/sl.lproj/SUAutomaticUpdateAlert.nib differ diff --git a/Sparkle.framework/Versions/A/Resources/sl.lproj/SUUpdateAlert.nib b/Sparkle.framework/Versions/A/Resources/sl.lproj/SUUpdateAlert.nib index 2957889..382d671 100644 Binary files a/Sparkle.framework/Versions/A/Resources/sl.lproj/SUUpdateAlert.nib and b/Sparkle.framework/Versions/A/Resources/sl.lproj/SUUpdateAlert.nib differ diff --git a/Sparkle.framework/Versions/A/Resources/sl.lproj/SUUpdatePermissionPrompt.nib b/Sparkle.framework/Versions/A/Resources/sl.lproj/SUUpdatePermissionPrompt.nib index 9e1c1a0..5333ab2 100644 Binary files a/Sparkle.framework/Versions/A/Resources/sl.lproj/SUUpdatePermissionPrompt.nib and b/Sparkle.framework/Versions/A/Resources/sl.lproj/SUUpdatePermissionPrompt.nib differ diff --git a/Sparkle.framework/Versions/A/Resources/sl.lproj/Sparkle.strings b/Sparkle.framework/Versions/A/Resources/sl.lproj/Sparkle.strings index 889a658..1be2a80 100644 Binary files a/Sparkle.framework/Versions/A/Resources/sl.lproj/Sparkle.strings and b/Sparkle.framework/Versions/A/Resources/sl.lproj/Sparkle.strings differ diff --git a/Sparkle.framework/Versions/A/Resources/sv.lproj/SUAutomaticUpdateAlert.nib b/Sparkle.framework/Versions/A/Resources/sv.lproj/SUAutomaticUpdateAlert.nib index 44caab3..4604b86 100644 Binary files a/Sparkle.framework/Versions/A/Resources/sv.lproj/SUAutomaticUpdateAlert.nib and b/Sparkle.framework/Versions/A/Resources/sv.lproj/SUAutomaticUpdateAlert.nib differ diff --git a/Sparkle.framework/Versions/A/Resources/sv.lproj/SUUpdateAlert.nib b/Sparkle.framework/Versions/A/Resources/sv.lproj/SUUpdateAlert.nib index 4c803c1..a26c7fd 100644 Binary files a/Sparkle.framework/Versions/A/Resources/sv.lproj/SUUpdateAlert.nib and b/Sparkle.framework/Versions/A/Resources/sv.lproj/SUUpdateAlert.nib differ diff --git a/Sparkle.framework/Versions/A/Resources/sv.lproj/SUUpdatePermissionPrompt.nib b/Sparkle.framework/Versions/A/Resources/sv.lproj/SUUpdatePermissionPrompt.nib index a94c004..ddc1824 100644 Binary files a/Sparkle.framework/Versions/A/Resources/sv.lproj/SUUpdatePermissionPrompt.nib and b/Sparkle.framework/Versions/A/Resources/sv.lproj/SUUpdatePermissionPrompt.nib differ diff --git a/Sparkle.framework/Versions/A/Resources/sv.lproj/Sparkle.strings b/Sparkle.framework/Versions/A/Resources/sv.lproj/Sparkle.strings index e7e9307..738c900 100644 Binary files a/Sparkle.framework/Versions/A/Resources/sv.lproj/Sparkle.strings and b/Sparkle.framework/Versions/A/Resources/sv.lproj/Sparkle.strings differ diff --git a/Sparkle.framework/Versions/A/Resources/th.lproj/SUAutomaticUpdateAlert.nib b/Sparkle.framework/Versions/A/Resources/th.lproj/SUAutomaticUpdateAlert.nib index 5dd71dc..e45b9a1 100644 Binary files a/Sparkle.framework/Versions/A/Resources/th.lproj/SUAutomaticUpdateAlert.nib and b/Sparkle.framework/Versions/A/Resources/th.lproj/SUAutomaticUpdateAlert.nib differ diff --git a/Sparkle.framework/Versions/A/Resources/th.lproj/SUUpdateAlert.nib b/Sparkle.framework/Versions/A/Resources/th.lproj/SUUpdateAlert.nib index de5d239..5a66b95 100644 Binary files a/Sparkle.framework/Versions/A/Resources/th.lproj/SUUpdateAlert.nib and b/Sparkle.framework/Versions/A/Resources/th.lproj/SUUpdateAlert.nib differ diff --git a/Sparkle.framework/Versions/A/Resources/th.lproj/SUUpdatePermissionPrompt.nib b/Sparkle.framework/Versions/A/Resources/th.lproj/SUUpdatePermissionPrompt.nib index dd0df43..9172044 100644 Binary files a/Sparkle.framework/Versions/A/Resources/th.lproj/SUUpdatePermissionPrompt.nib and b/Sparkle.framework/Versions/A/Resources/th.lproj/SUUpdatePermissionPrompt.nib differ diff --git a/Sparkle.framework/Versions/A/Resources/th.lproj/Sparkle.strings b/Sparkle.framework/Versions/A/Resources/th.lproj/Sparkle.strings index 323bb70..eca2570 100644 Binary files a/Sparkle.framework/Versions/A/Resources/th.lproj/Sparkle.strings and b/Sparkle.framework/Versions/A/Resources/th.lproj/Sparkle.strings differ diff --git a/Sparkle.framework/Versions/A/Resources/tr.lproj/SUAutomaticUpdateAlert.nib b/Sparkle.framework/Versions/A/Resources/tr.lproj/SUAutomaticUpdateAlert.nib index 285513a..ec8ff84 100644 Binary files a/Sparkle.framework/Versions/A/Resources/tr.lproj/SUAutomaticUpdateAlert.nib and b/Sparkle.framework/Versions/A/Resources/tr.lproj/SUAutomaticUpdateAlert.nib differ diff --git a/Sparkle.framework/Versions/A/Resources/tr.lproj/SUUpdateAlert.nib b/Sparkle.framework/Versions/A/Resources/tr.lproj/SUUpdateAlert.nib index 9339388..26f8576 100644 Binary files a/Sparkle.framework/Versions/A/Resources/tr.lproj/SUUpdateAlert.nib and b/Sparkle.framework/Versions/A/Resources/tr.lproj/SUUpdateAlert.nib differ diff --git a/Sparkle.framework/Versions/A/Resources/tr.lproj/SUUpdatePermissionPrompt.nib b/Sparkle.framework/Versions/A/Resources/tr.lproj/SUUpdatePermissionPrompt.nib index cd259c5..5c7359a 100644 Binary files a/Sparkle.framework/Versions/A/Resources/tr.lproj/SUUpdatePermissionPrompt.nib and b/Sparkle.framework/Versions/A/Resources/tr.lproj/SUUpdatePermissionPrompt.nib differ diff --git a/Sparkle.framework/Versions/A/Resources/tr.lproj/Sparkle.strings b/Sparkle.framework/Versions/A/Resources/tr.lproj/Sparkle.strings index 74e17e4..4def140 100644 Binary files a/Sparkle.framework/Versions/A/Resources/tr.lproj/Sparkle.strings and b/Sparkle.framework/Versions/A/Resources/tr.lproj/Sparkle.strings differ diff --git a/Sparkle.framework/Versions/A/Resources/uk.lproj/SUAutomaticUpdateAlert.nib b/Sparkle.framework/Versions/A/Resources/uk.lproj/SUAutomaticUpdateAlert.nib index 3d1c58b..d8920a5 100644 Binary files a/Sparkle.framework/Versions/A/Resources/uk.lproj/SUAutomaticUpdateAlert.nib and b/Sparkle.framework/Versions/A/Resources/uk.lproj/SUAutomaticUpdateAlert.nib differ diff --git a/Sparkle.framework/Versions/A/Resources/uk.lproj/SUUpdateAlert.nib b/Sparkle.framework/Versions/A/Resources/uk.lproj/SUUpdateAlert.nib index 639d2c3..5c6c521 100644 Binary files a/Sparkle.framework/Versions/A/Resources/uk.lproj/SUUpdateAlert.nib and b/Sparkle.framework/Versions/A/Resources/uk.lproj/SUUpdateAlert.nib differ diff --git a/Sparkle.framework/Versions/A/Resources/uk.lproj/SUUpdatePermissionPrompt.nib b/Sparkle.framework/Versions/A/Resources/uk.lproj/SUUpdatePermissionPrompt.nib index af37a0f..72912e9 100644 Binary files a/Sparkle.framework/Versions/A/Resources/uk.lproj/SUUpdatePermissionPrompt.nib and b/Sparkle.framework/Versions/A/Resources/uk.lproj/SUUpdatePermissionPrompt.nib differ diff --git a/Sparkle.framework/Versions/A/Resources/uk.lproj/Sparkle.strings b/Sparkle.framework/Versions/A/Resources/uk.lproj/Sparkle.strings index bf13d96..f7eb257 100644 Binary files a/Sparkle.framework/Versions/A/Resources/uk.lproj/Sparkle.strings and b/Sparkle.framework/Versions/A/Resources/uk.lproj/Sparkle.strings differ diff --git a/Sparkle.framework/Versions/A/Resources/zh_CN.lproj/SUAutomaticUpdateAlert.nib b/Sparkle.framework/Versions/A/Resources/zh_CN.lproj/SUAutomaticUpdateAlert.nib index 6533a98..2375923 100644 Binary files a/Sparkle.framework/Versions/A/Resources/zh_CN.lproj/SUAutomaticUpdateAlert.nib and b/Sparkle.framework/Versions/A/Resources/zh_CN.lproj/SUAutomaticUpdateAlert.nib differ diff --git a/Sparkle.framework/Versions/A/Resources/zh_CN.lproj/SUUpdateAlert.nib b/Sparkle.framework/Versions/A/Resources/zh_CN.lproj/SUUpdateAlert.nib index f10d922..f6dcd86 100644 Binary files a/Sparkle.framework/Versions/A/Resources/zh_CN.lproj/SUUpdateAlert.nib and b/Sparkle.framework/Versions/A/Resources/zh_CN.lproj/SUUpdateAlert.nib differ diff --git a/Sparkle.framework/Versions/A/Resources/zh_CN.lproj/SUUpdatePermissionPrompt.nib b/Sparkle.framework/Versions/A/Resources/zh_CN.lproj/SUUpdatePermissionPrompt.nib index 903c6ce..1107ca7 100644 Binary files a/Sparkle.framework/Versions/A/Resources/zh_CN.lproj/SUUpdatePermissionPrompt.nib and b/Sparkle.framework/Versions/A/Resources/zh_CN.lproj/SUUpdatePermissionPrompt.nib differ diff --git a/Sparkle.framework/Versions/A/Resources/zh_CN.lproj/Sparkle.strings b/Sparkle.framework/Versions/A/Resources/zh_CN.lproj/Sparkle.strings index 49b68ce..214331c 100644 Binary files a/Sparkle.framework/Versions/A/Resources/zh_CN.lproj/Sparkle.strings and b/Sparkle.framework/Versions/A/Resources/zh_CN.lproj/Sparkle.strings differ diff --git a/Sparkle.framework/Versions/A/Resources/zh_TW.lproj/SUAutomaticUpdateAlert.nib b/Sparkle.framework/Versions/A/Resources/zh_TW.lproj/SUAutomaticUpdateAlert.nib index 3d0448f..9abca3c 100644 Binary files a/Sparkle.framework/Versions/A/Resources/zh_TW.lproj/SUAutomaticUpdateAlert.nib and b/Sparkle.framework/Versions/A/Resources/zh_TW.lproj/SUAutomaticUpdateAlert.nib differ diff --git a/Sparkle.framework/Versions/A/Resources/zh_TW.lproj/SUUpdateAlert.nib b/Sparkle.framework/Versions/A/Resources/zh_TW.lproj/SUUpdateAlert.nib index 5566620..9065be8 100644 Binary files a/Sparkle.framework/Versions/A/Resources/zh_TW.lproj/SUUpdateAlert.nib and b/Sparkle.framework/Versions/A/Resources/zh_TW.lproj/SUUpdateAlert.nib differ diff --git a/Sparkle.framework/Versions/A/Resources/zh_TW.lproj/SUUpdatePermissionPrompt.nib b/Sparkle.framework/Versions/A/Resources/zh_TW.lproj/SUUpdatePermissionPrompt.nib index 470407c..919230b 100644 Binary files a/Sparkle.framework/Versions/A/Resources/zh_TW.lproj/SUUpdatePermissionPrompt.nib and b/Sparkle.framework/Versions/A/Resources/zh_TW.lproj/SUUpdatePermissionPrompt.nib differ diff --git a/Sparkle.framework/Versions/A/Resources/zh_TW.lproj/Sparkle.strings b/Sparkle.framework/Versions/A/Resources/zh_TW.lproj/Sparkle.strings index d9229c9..533e208 100644 Binary files a/Sparkle.framework/Versions/A/Resources/zh_TW.lproj/Sparkle.strings and b/Sparkle.framework/Versions/A/Resources/zh_TW.lproj/Sparkle.strings differ diff --git a/Sparkle.framework/Versions/A/Sparkle b/Sparkle.framework/Versions/A/Sparkle index 23f7820..ce286a2 100755 Binary files a/Sparkle.framework/Versions/A/Sparkle and b/Sparkle.framework/Versions/A/Sparkle differ diff --git a/docs/js/fb4.2.js b/docs/js/fb4.2.js new file mode 100644 index 0000000..decd93b --- /dev/null +++ b/docs/js/fb4.2.js @@ -0,0 +1 @@ +var css='._1ht6,._1htf,html{overflow:hidden}body,button,input,label,select,td,textarea{font-family:system,-apple-system,BlinkMacSystemFont,"Helvetica Neue","Lucida Grande"!important}._4_j4{display:block}._4sp8{min-width:0}._5742{display:none!important}._1enh{max-width:280px;min-width:280px}@media all and (max-width:800px){._1ht5 ._1qt4,.ie10 ._1ht5 ._1qt4,.safari.webkit ._1ht5 ._1qt4{display:-webkit-box}._3rh8{display:block}}@media all and (max-width:640px){._1enh{min-width:74px;max-width:74px}._1ht5 ._1qt4,._3rh8,.ie10 ._1ht5 ._1qt4,.safari.webkit ._1ht5 ._1qt4{display:none}}._4u-c:not(._1wfr){border-right:1px solid rgba(0,0,0,.0980392)}._1q5-{border:none}._1ht6,._1htf{max-width:100%;display:block}._1enh ._36ic,._s15{display:none}._1az,.emoticon{background-image:none!important;width:auto!important;height:auto!important}._4a0v._4a0x{min-width:28px}';function CONVERSATION_LINK(e){return'[data-reactid="'+e+'"] a'}function ID(e){return'[id="'+e+'"]'}function init(){csssetup(),setInterval(function(){updateTitle(),dockCount();var e=document.querySelector(UPLOAD_BUTTON);e&&(e.onclick=function(e){e.preventDefault(),e.stopPropagation(),uploadInfo()})},200),setTimeout(function(){document.querySelector(SETTINGS_BUTTON).click(),mixpanel.track("loaded"),window.dispatchEvent(new Event("resize"))},3e3),document.body.onkeypress=function(e){if((!document.querySelector(":focus")||document.querySelector(TEXT_BOX+":focus")&&0===window.getSelection().baseOffset)&&!e.metaKey&&!e.ctrlKey){var t=event.which||event.keyCode,n=document.querySelector(TEXT_BOX),o=document.createRange(),i=window.getSelection();o.setStart(n,1),o.collapse(!0),i.removeAllRanges(),i.addRange(o);var r=document.createEvent("TextEvent");return r.initTextEvent("textInput",!0,!0,null,String.fromCharCode(t),9,"en-US"),n.dispatchEvent(r),!1}};var e=document.querySelector(TITLE_BAR);e&&e.addEventListener("DOMSubtreeModified",function(){updateTitle()})}function uploadInfo(){window.webkit.messageHandlers.notification.postMessage({type:"CHOOSE_IMAGE"})}function updateTitle(){var e=document.querySelector(LAST_ACTIVE)?document.querySelector(LAST_ACTIVE).textContent:"";window.webkit.messageHandlers.notification.postMessage({type:"SET_TITLE",title:document.querySelector(CURRENT_CONVERSATION_NAME).textContent,activity:e})}function newConversation(){document.querySelector(NEW_MESSAGE_BUTTON).click()}function gotoConversation(e){1==e?document.querySelector(SELECTED_CONVERSATION).nextElementSibling.querySelector("a").click():document.querySelector(SELECTED_CONVERSATION).previousElementSibling.querySelector("a").click()}function gotoConversationAtIndex(e){document.querySelector(CONVERSATION_LIST+"li:nth-child("+e+") a").click()}function reactivation(e){e?document.querySelector(CONVERSATION_LINK(user_id)).click():(new Date).getTime()0){var t=document.querySelector(UNREAD_MESSAGE_TEXT);if(t){if(t=t.textContent,-1!=document.querySelector(UNREAD_MESSAGE_TEXT).innerHTML.indexOf(""+YOU+""))return;var n=document.querySelector(UNREAD_MESSAGE_NAME).textContent;if(lastNotification!=n+t){document.querySelector(UNREAD_MESSAGE_TEXT);[].forEach.call(document.querySelectorAll(EMOTICONS),function(e){e.textContent=""});var o=document.querySelector(UNREAD_MESSAGE_TEXT+" "+EMOTICONS);o&&(o.textContent=findSurrogatePair(parseInt(document.querySelector(UNREAD_MESSAGE_TEXT+" "+EMOTICONS).getAttribute("src").split("/").reverse()[0].split(".")[0],16)).map(function(e){return String.fromCharCode(parseInt(e,16))}).join("")),t=document.querySelector(UNREAD_MESSAGE_TEXT).textContent;var i=document.querySelector(UNREAD_MESSAGE_ROW).getAttribute("id"),r=document.querySelector(UNREAD_MESSAGE_ROW).querySelector(UNREAD_MESSAGE_PICTURE);r=r?r.getAttribute("src"):"",ignoreNotification||document.querySelector(ID(i)).parentElement.classList.contains(MUTED)?ignoreNotification=!1:(window.webkit.messageHandlers.notification.postMessage({type:"NOTIFICATION",title:n,text:t,id:i,pictureUrl:r}),window.webkit.messageHandlers.notification.postMessage({type:"DOCK_COUNT",content:String(e)})),lastNotification=n+t,lastNotificationTime=(new Date).getTime()}}}}function findSurrogatePair(e){983040===e&&(e=128077);var t=e-65536,n=56320+(1023&t);return[(55296+(t>>10)).toString(16),n.toString(16)]}function replyToNotification(e,t){document.querySelector(ID(e)+" a").click(),setTimeout(function(){var e=document.createEvent("TextEvent");e.initTextEvent("textInput",!0,!0,null,t,9,"en-US"),document.querySelector(TEXT_BOX).dispatchEvent(e),ignoreNotification=!0,__triggerKeyboardEvent(document.querySelector(TEXT_BOX),13,!0)},50)}function getValueForFirstObjectKey(e){var t=Object.keys(e);return t.length>0?e[t[0]]:null}var SETTINGS_BUTTON="._30yy._2fug._p",NEW_MESSAGE_BUTTON="._36ic._5l-3 > a._30yy",INFORMATION_BUTTON='[data-testid="info_panel_button"]',UPLOAD_BUTTON="._m._4q60._3rzn._6a",UPLOAD_FORM="._4rv4 form",TEXT_BOX="._5rpu",SEARCH_BOX="._58al",TITLE_BAR="._5743",LAST_ACTIVE="._2v6o",CURRENT_CONVERSATION_NAME=TITLE_BAR+" span",CONVERSATION_LIST="._2xhi ul",SELECTED_CONVERSATION="._1ht2",_MENU_ITEMS="._54nq._2i-c._558b._2n_z li",SETTINGS_MENU_ITEM=_MENU_ITEMS+":first-child",LOGOUT_MENU_ITEM=_MENU_ITEMS+":last-child",UNREAD_CONVERSATION="._1ht3",UNREAD_MESSAGE_NAME=UNREAD_CONVERSATION+" ._1ht6",UNREAD_MESSAGE_TEXT=UNREAD_CONVERSATION+" ._1htf",UNREAD_MESSAGE_ROW=UNREAD_CONVERSATION+"._1ht1 div",UNREAD_MESSAGE_PICTURE="._55lt > .img",EMOTICONS="._1ift",MUTED="_569x",_localeKeyword=Array.prototype.filter.call(document.body.classList,function(e){return e.startsWith("Locale")})[0],LOCALE=_localeKeyword?_localeKeyword.replace("Locale_",""):"",YOU_KEYWORDS={default:"You: ",tr_TR:"Sen: "},YOU=YOU_KEYWORDS.hasOwnProperty(LOCALE)?YOU_KEYWORDS[LOCALE]:YOU_KEYWORDS.default;function CONVERSATION_LINK(e){return'[data-reactid="'+e+'"] a'}function ID(e){return'[id="'+e+'"]'}var lastNotification,lastNotificationTime,dockCounter="",ignoreNotification=!1;!function(e,t){var n,o,i,r;t.__SV||(window.mixpanel=t,t._i=[],t.init=function(e,n,o){function c(e,t){var n=t.split(".");2==n.length&&(e=e[n[0]],t=n[1]),e[t]=function(){e.push([t].concat(Array.prototype.slice.call(arguments,0)))}}var a=t;for(void 0!==o?a=t[o]=[]:o="mixpanel",a.people=a.people||[],a.toString=function(e){var t="mixpanel";return"mixpanel"!==o&&(t+="."+o),e||(t+=" (stub)"),t},a.people.toString=function(){return a.toString(1)+".people (stub)"},i="disable track track_pageview track_links track_forms register register_once alias unregister identify name_tag set_config people.set people.set_once people.increment people.append people.track_charge people.clear_charges people.delete_user".split(" "),r=0;r + + + + + + + + +
+

Version 4.2

+
    +
  • New Features:
  • +
  • This is first signed update, so Sparkle will no longer alert you.
  • +
+
    +
  • Resolved Issues:
  • +
  • Fixed misaligned chat window #2
  • +
  • Preferences keyboard shortcut now works #2
  • +
  • Notifications should now work as expected #2
  • +
+
+
+ +
+ + diff --git a/tools/sign_update b/tools/sign_update new file mode 100755 index 0000000..7c43999 --- /dev/null +++ b/tools/sign_update @@ -0,0 +1,9 @@ +#!/bin/bash +set -e +set -o pipefail +if [ "$#" -ne 2 ]; then + echo "Usage: $0 update_archive private_key" + exit 1 +fi +openssl=/usr/bin/openssl +$openssl dgst -sha1 -binary < "$1" | $openssl dgst -dss1 -sign "$2" | $openssl enc -base64 diff --git a/update_feed.xml b/update_feed.xml index b11c8c8..c7f6bd0 100644 --- a/update_feed.xml +++ b/update_feed.xml @@ -6,16 +6,17 @@ Most recent changes with links to updates. en - Version 4.1 + Version 4.2 - https://hrubymar10.github.io/goofy_swift/versions/4.1.html + https://hrubymar10.github.io/goofy_swift/versions/4.2.html - Wed, 01 Mar 2018 19:00:00 +0000 - https://hrubymar10.github.io/goofy_swift/versions/4.1.html - Wed, 01 Mar 2018 20:00:00 +0000 + https://hrubymar10.github.io/goofy_swift/versions/4.2.html +