Bump Sparkle to 1.22.0

This commit is contained in:
Mitchell Livingston 2019-12-23 21:46:05 -05:00
parent 44fc571a67
commit 1f5a9b35a1
169 changed files with 4839 additions and 17 deletions

2
NEWS
View File

@ -3,7 +3,7 @@
==== All Platforms ====
==== OS X Client Client ====
* Dark Mode support
* Sparkle updated to 1.21.2
* Sparkle updated to 1.22.0
* Minimum OS version updated to 10.10
==== Qt Client ====
==== Web Client ====

View File

@ -20,6 +20,7 @@
SU_EXPORT @interface SUAppcastItem : NSObject
@property (copy, readonly) NSString *title;
@property (copy, readonly) NSString *dateString;
@property (copy, readonly) NSDate *date;
@property (copy, readonly) NSString *itemDescription;
@property (strong, readonly) NSURL *releaseNotesURL;
@property (strong, readonly) SUSignatures *signatures;
@ -32,6 +33,7 @@ SU_EXPORT @interface SUAppcastItem : NSObject
@property (copy, readonly) NSString *displayVersionString;
@property (copy, readonly) NSDictionary *deltaUpdates;
@property (strong, readonly) NSURL *infoURL;
@property (copy, readonly) NSNumber* phasedRolloutInterval;
// Initializes with data from a dictionary provided by the RSS class.
- (instancetype)initWithDictionary:(NSDictionary *)dict;

View File

@ -9,7 +9,11 @@
#ifndef SUCODESIGNINGVERIFIER_H
#define SUCODESIGNINGVERIFIER_H
#if __has_feature(modules)
@import Foundation;
#else
#import <Foundation/Foundation.h>
#endif
#import "SUExport.h"
SU_EXPORT @interface SUCodeSigningVerifier : NSObject

View File

@ -29,6 +29,7 @@ typedef NS_ENUM(OSStatus, SUError) {
SUNoUpdateError = 1001,
SUAppcastError = 1002,
SURunningFromDiskImageError = 1003,
SURunningTranslocated = 1004,
// Download phase errors.
SUTemporaryDirectoryError = 2000,

View File

@ -189,6 +189,8 @@ SU_EXPORT @interface SUUpdater : NSObject
For UI-less/daemon apps that aren't usually quit, instead of this function,
you can use the delegate method
SUUpdaterDelegate::updater:willInstallUpdateOnQuit:immediateInstallationInvocation:
or
SUUpdaterDelegate::updater:willInstallUpdateOnQuit:immediateInstallationBlock:
to immediately start installation when an update was found.
A progress dialog is shown but the user will never be prompted to read the

View File

@ -117,6 +117,23 @@ SU_EXPORT extern NSString *const SUUpdaterAppcastNotificationKey;
*/
- (void)updater:(SUUpdater *)updater didFindValidUpdate:(SUAppcastItem *)item;
/*!
Called just before the scheduled update driver prompts the user to install an update.
\param updater The SUUpdater instance.
\return YES to allow the update prompt to be shown (the default behavior), or NO to suppress it.
*/
- (BOOL)updaterShouldShowUpdateAlertForScheduledUpdate:(SUUpdater *)updater forItem:(SUAppcastItem *)item;
/*!
Called after the user dismisses the update alert.
\param updater The SUUpdater instance.
\param permanently YES if the alert will not appear again for this update; NO if it may reappear.
*/
- (void)updater:(SUUpdater *)updater didDismissUpdateAlertPermanently:(BOOL)permanently forItem:(SUAppcastItem *)item;
/*!
Called when a valid update is not found.
@ -124,6 +141,13 @@ SU_EXPORT extern NSString *const SUUpdaterAppcastNotificationKey;
*/
- (void)updaterDidNotFindUpdate:(SUUpdater *)updater;
/*!
Called when the user clicks the Skip This Version button.
\param updater The SUUpdater instance.
*/
- (void)updater:(SUUpdater *)updater userDidSkipThisVersion:(SUAppcastItem *)item;
/*!
Called immediately before downloading the specified update.
@ -195,6 +219,21 @@ SU_EXPORT extern NSString *const SUUpdaterAppcastNotificationKey;
*/
- (BOOL)updater:(SUUpdater *)updater shouldPostponeRelaunchForUpdate:(SUAppcastItem *)item untilInvoking:(NSInvocation *)invocation;
/*!
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.
This method acts as a simpler alternative to SUUpdaterDelegate::updater:shouldPostponeRelaunchForUpdate:untilInvoking: avoiding usage of NSInvocation, which is not available in Swift environments.
\param updater The SUUpdater instance.
\param item The appcast item corresponding to the update that is proposed to be installed.
\return \c YES to delay the relaunch.
*/
- (BOOL)updater:(SUUpdater *)updater shouldPostponeRelaunchForUpdate:(SUAppcastItem *)item;
/*!
Returns whether the application should be relaunched at all.
@ -280,6 +319,18 @@ SU_EXPORT extern NSString *const SUUpdaterAppcastNotificationKey;
*/
- (void)updater:(SUUpdater *)updater willInstallUpdateOnQuit:(SUAppcastItem *)item immediateInstallationInvocation:(NSInvocation *)invocation;
/*!
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)
This method acts as a more modern alternative to SUUpdaterDelegate::updater:willInstallUpdateOnQuit:immediateInstallationInvocation: using a block instead of NSInvocation, which is not available in Swift environments.
\param updater The SUUpdater instance.
\param item The appcast item corresponding to the update that is proposed to be installed.
\param installationBlock Can be used to trigger an immediate silent install and relaunch.
*/
- (void)updater:(SUUpdater *)updater willInstallUpdateOnQuit:(SUAppcastItem *)item immediateInstallationBlock:(void (^)(void))installationBlock;
/*!
Calls after an update that was scheduled to be silently installed on quit has been canceled.

View File

@ -3,7 +3,7 @@
<plist version="1.0">
<dict>
<key>BuildMachineOSBuild</key>
<string>18C54</string>
<string>19A558d</string>
<key>CFBundleDevelopmentRegion</key>
<string>English</string>
<key>CFBundleExecutable</key>
@ -17,7 +17,7 @@
<key>CFBundlePackageType</key>
<string>APPL</string>
<key>CFBundleShortVersionString</key>
<string>1.21.2 12-ga5b23cdbe</string>
<string>1.22.0 33-gd5222353e</string>
<key>CFBundleSignature</key>
<string>????</string>
<key>CFBundleSupportedPlatforms</key>
@ -25,21 +25,21 @@
<string>MacOSX</string>
</array>
<key>CFBundleVersion</key>
<string>1.21.2</string>
<string>1.22.0</string>
<key>DTCompiler</key>
<string>com.apple.compilers.llvm.clang.1_0</string>
<key>DTPlatformBuild</key>
<string>10B61</string>
<string>11M392r</string>
<key>DTPlatformVersion</key>
<string>GM</string>
<key>DTSDKBuild</key>
<string>18B71</string>
<string>19A536d</string>
<key>DTSDKName</key>
<string>macosx10.14</string>
<string>macosx10.15</string>
<key>DTXcode</key>
<string>1010</string>
<string>1100</string>
<key>DTXcodeBuild</key>
<string>10B61</string>
<string>11M392r</string>
<key>LSBackgroundOnly</key>
<string>1</string>
<key>LSMinimumSystemVersion</key>

View File

@ -0,0 +1,860 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>files</key>
<dict>
<key>Resources/AppIcon.icns</key>
<data>
4McwRDEss5BzWwUMG2Xf93+ze08=
</data>
<key>Resources/SUStatus.nib</key>
<data>
o2Yxifmvxybh4UD7ZLx7IddkLoE=
</data>
<key>Resources/ar.lproj/Sparkle.strings</key>
<dict>
<key>hash</key>
<data>
3/ZrgZd3oO/InbR3VBYBSZ3KsDs=
</data>
<key>optional</key>
<true/>
</dict>
<key>Resources/ca.lproj/Sparkle.strings</key>
<dict>
<key>hash</key>
<data>
8xZ59T/LZxVMOWNsGblySVsijvs=
</data>
<key>optional</key>
<true/>
</dict>
<key>Resources/cs.lproj/Sparkle.strings</key>
<dict>
<key>hash</key>
<data>
6JE9xjhtYHPDzzXXR8Mosaib/q4=
</data>
<key>optional</key>
<true/>
</dict>
<key>Resources/da.lproj/Sparkle.strings</key>
<dict>
<key>hash</key>
<data>
OjB4Xa9yPARy+Ji2tdn3b+Ac0Fo=
</data>
<key>optional</key>
<true/>
</dict>
<key>Resources/de.lproj/Sparkle.strings</key>
<dict>
<key>hash</key>
<data>
9TpatxKVW4B5x0nkam4LaP8YZpE=
</data>
<key>optional</key>
<true/>
</dict>
<key>Resources/el.lproj/Sparkle.strings</key>
<dict>
<key>hash</key>
<data>
RU7Vl6NphtB/j6np3vlCOV+f3hg=
</data>
<key>optional</key>
<true/>
</dict>
<key>Resources/en.lproj/Sparkle.strings</key>
<dict>
<key>hash</key>
<data>
l89zcS7iMBHT6EWrGbWHDVntC48=
</data>
<key>optional</key>
<true/>
</dict>
<key>Resources/es.lproj/Sparkle.strings</key>
<dict>
<key>hash</key>
<data>
wOQS5w7QXdkdtKNJB7rdanciR0s=
</data>
<key>optional</key>
<true/>
</dict>
<key>Resources/fi.lproj/Sparkle.strings</key>
<dict>
<key>hash</key>
<data>
yd6pIoSj19HMDIUos4Td1Fch7bs=
</data>
<key>optional</key>
<true/>
</dict>
<key>Resources/fr.lproj/Sparkle.strings</key>
<dict>
<key>hash</key>
<data>
y92HAeGH2U+nipQe3JclUrCK5xM=
</data>
<key>optional</key>
<true/>
</dict>
<key>Resources/he.lproj/Sparkle.strings</key>
<dict>
<key>hash</key>
<data>
U2WmlYGYmeeIlSW66R8awwmNXIE=
</data>
<key>optional</key>
<true/>
</dict>
<key>Resources/hr.lproj/Sparkle.strings</key>
<dict>
<key>hash</key>
<data>
cg3tRv/UshuWY4el+bbeoBZUzd4=
</data>
<key>optional</key>
<true/>
</dict>
<key>Resources/hu.lproj/Sparkle.strings</key>
<dict>
<key>hash</key>
<data>
PR7CwzbW+Lh9vVOFOSEI/fShBAM=
</data>
<key>optional</key>
<true/>
</dict>
<key>Resources/is.lproj/Sparkle.strings</key>
<dict>
<key>hash</key>
<data>
8fxzD9ZhrvIZVZB1+QSJaPzg80M=
</data>
<key>optional</key>
<true/>
</dict>
<key>Resources/it.lproj/Sparkle.strings</key>
<dict>
<key>hash</key>
<data>
KrPl3iDKA91Kcl3LXG7nUmlQ9rY=
</data>
<key>optional</key>
<true/>
</dict>
<key>Resources/ja.lproj/Sparkle.strings</key>
<dict>
<key>hash</key>
<data>
pOqMr4NLCYTsTevlFEYuB28kdvo=
</data>
<key>optional</key>
<true/>
</dict>
<key>Resources/ko.lproj/Sparkle.strings</key>
<dict>
<key>hash</key>
<data>
ZiduO/QU0b+UIt/1uiR2Ltiq/nY=
</data>
<key>optional</key>
<true/>
</dict>
<key>Resources/nb.lproj/Sparkle.strings</key>
<dict>
<key>hash</key>
<data>
ZdW2FCEBSCiNzzblpiVbzqOQs00=
</data>
<key>optional</key>
<true/>
</dict>
<key>Resources/nl.lproj/Sparkle.strings</key>
<dict>
<key>hash</key>
<data>
3BsDDQcMCxtwvlr07YzTG096bmU=
</data>
<key>optional</key>
<true/>
</dict>
<key>Resources/pl.lproj/Sparkle.strings</key>
<dict>
<key>hash</key>
<data>
tbKCaaSKLjvC7nDxfs/zxdO0sB0=
</data>
<key>optional</key>
<true/>
</dict>
<key>Resources/pt_BR.lproj/Sparkle.strings</key>
<dict>
<key>hash</key>
<data>
fCBMPEPsgJUYEr/n7SCU8YstLAs=
</data>
<key>optional</key>
<true/>
</dict>
<key>Resources/pt_PT.lproj/Sparkle.strings</key>
<dict>
<key>hash</key>
<data>
CzVZ2qGRE0ZQoYAFZ/C1OoqoaH8=
</data>
<key>optional</key>
<true/>
</dict>
<key>Resources/ro.lproj/Sparkle.strings</key>
<dict>
<key>hash</key>
<data>
DQSgRc2GsuXpDdBrs3wSPW5Y3As=
</data>
<key>optional</key>
<true/>
</dict>
<key>Resources/ru.lproj/Sparkle.strings</key>
<dict>
<key>hash</key>
<data>
nm1CwJSExUzZFYaiAHF7VIkGn6I=
</data>
<key>optional</key>
<true/>
</dict>
<key>Resources/sk.lproj/Sparkle.strings</key>
<dict>
<key>hash</key>
<data>
/iRGi+ly+kyot+oc/hjr0ZcBShM=
</data>
<key>optional</key>
<true/>
</dict>
<key>Resources/sl.lproj/Sparkle.strings</key>
<dict>
<key>hash</key>
<data>
sATNnW+R68nq8JWI+WTAnDhypIM=
</data>
<key>optional</key>
<true/>
</dict>
<key>Resources/sv.lproj/Sparkle.strings</key>
<dict>
<key>hash</key>
<data>
tUiNJSF7ds41OWD4IyeZogQOekk=
</data>
<key>optional</key>
<true/>
</dict>
<key>Resources/th.lproj/Sparkle.strings</key>
<dict>
<key>hash</key>
<data>
xtkemLr0M1e/ZWKgA4ENtgOFXa8=
</data>
<key>optional</key>
<true/>
</dict>
<key>Resources/tr.lproj/Sparkle.strings</key>
<dict>
<key>hash</key>
<data>
1ZAnkcXSiedlZc0O8oX54NwZHkA=
</data>
<key>optional</key>
<true/>
</dict>
<key>Resources/uk.lproj/Sparkle.strings</key>
<dict>
<key>hash</key>
<data>
pZzpQkpsUENxNUOdVMiFdri0zX0=
</data>
<key>optional</key>
<true/>
</dict>
<key>Resources/zh_CN.lproj/Sparkle.strings</key>
<dict>
<key>hash</key>
<data>
srfTNLIFIdhNKE0yRzwEqAD7b+c=
</data>
<key>optional</key>
<true/>
</dict>
<key>Resources/zh_TW.lproj/Sparkle.strings</key>
<dict>
<key>hash</key>
<data>
xTTZRp0ziBZthxP8cgRiEgxZE0U=
</data>
<key>optional</key>
<true/>
</dict>
</dict>
<key>files2</key>
<dict>
<key>MacOS/fileop</key>
<dict>
<key>cdhash</key>
<data>
Ps1don/6nqymXddRaXBPac4trnw=
</data>
<key>requirement</key>
<string>cdhash H"67e48cd5d6915bfcc4aac46335bc8249421445a3" or cdhash H"3ecd5da27ffa9eaca65dd75169704f69ce2dae7c"</string>
</dict>
<key>Resources/AppIcon.icns</key>
<dict>
<key>hash</key>
<data>
4McwRDEss5BzWwUMG2Xf93+ze08=
</data>
<key>hash2</key>
<data>
nq7j0ugQwyNbJn/7zGFwxIR0njwU3i7hAYKEyZhvUfE=
</data>
</dict>
<key>Resources/SUStatus.nib</key>
<dict>
<key>hash</key>
<data>
o2Yxifmvxybh4UD7ZLx7IddkLoE=
</data>
<key>hash2</key>
<data>
9EMiB3mf7GHO1CblwtYHjfKx9oWJW7uh2BeVuMSQdM8=
</data>
</dict>
<key>Resources/ar.lproj/Sparkle.strings</key>
<dict>
<key>hash</key>
<data>
3/ZrgZd3oO/InbR3VBYBSZ3KsDs=
</data>
<key>hash2</key>
<data>
kXl1QOUKU1bn38zZFTTTo6jSvJa3xzW+506BHFqXTrA=
</data>
<key>optional</key>
<true/>
</dict>
<key>Resources/ca.lproj/Sparkle.strings</key>
<dict>
<key>hash</key>
<data>
8xZ59T/LZxVMOWNsGblySVsijvs=
</data>
<key>hash2</key>
<data>
qveaz1JvR0txRBIrXESNsw7OQ/Ff/cPzhDLnsoEQraU=
</data>
<key>optional</key>
<true/>
</dict>
<key>Resources/cs.lproj/Sparkle.strings</key>
<dict>
<key>hash</key>
<data>
6JE9xjhtYHPDzzXXR8Mosaib/q4=
</data>
<key>hash2</key>
<data>
+egOEAm7wKsZEYpWPMyIt3O/K3rKusLoqgRPDjTbVj0=
</data>
<key>optional</key>
<true/>
</dict>
<key>Resources/da.lproj/Sparkle.strings</key>
<dict>
<key>hash</key>
<data>
OjB4Xa9yPARy+Ji2tdn3b+Ac0Fo=
</data>
<key>hash2</key>
<data>
TNnVYVM/FH7RRT5MJDiudHhliKhwVdzKtoFHoaOyYNA=
</data>
<key>optional</key>
<true/>
</dict>
<key>Resources/de.lproj/Sparkle.strings</key>
<dict>
<key>hash</key>
<data>
9TpatxKVW4B5x0nkam4LaP8YZpE=
</data>
<key>hash2</key>
<data>
RWEMiKY073CexFxlxvRxZNV6sIGKW4o2w1zkbu84jTo=
</data>
<key>optional</key>
<true/>
</dict>
<key>Resources/el.lproj/Sparkle.strings</key>
<dict>
<key>hash</key>
<data>
RU7Vl6NphtB/j6np3vlCOV+f3hg=
</data>
<key>hash2</key>
<data>
k6iM4cKwuwNERro0buUXP+cC7EfqUysLG3xtqQTYd88=
</data>
<key>optional</key>
<true/>
</dict>
<key>Resources/en.lproj/Sparkle.strings</key>
<dict>
<key>hash</key>
<data>
l89zcS7iMBHT6EWrGbWHDVntC48=
</data>
<key>hash2</key>
<data>
NsYIQJr5hHbcZCmDpOJU7CG0gQyMCwtcCHxnVm6hX10=
</data>
<key>optional</key>
<true/>
</dict>
<key>Resources/es.lproj/Sparkle.strings</key>
<dict>
<key>hash</key>
<data>
wOQS5w7QXdkdtKNJB7rdanciR0s=
</data>
<key>hash2</key>
<data>
Ft9c/NUFvzlK18fFR95eU9BF+WhuLxk4/mxS9Anjtgw=
</data>
<key>optional</key>
<true/>
</dict>
<key>Resources/fi.lproj/Sparkle.strings</key>
<dict>
<key>hash</key>
<data>
yd6pIoSj19HMDIUos4Td1Fch7bs=
</data>
<key>hash2</key>
<data>
+AiiKWEdH3lesozLJBn3tfK6vi/VSI1/TnWVmIdVVsc=
</data>
<key>optional</key>
<true/>
</dict>
<key>Resources/fr.lproj/Sparkle.strings</key>
<dict>
<key>hash</key>
<data>
y92HAeGH2U+nipQe3JclUrCK5xM=
</data>
<key>hash2</key>
<data>
iTJwrct6/Zdwlxdm5T/GC9hA4ztJ0z5vMfrd5koPIkM=
</data>
<key>optional</key>
<true/>
</dict>
<key>Resources/he.lproj/Sparkle.strings</key>
<dict>
<key>hash</key>
<data>
U2WmlYGYmeeIlSW66R8awwmNXIE=
</data>
<key>hash2</key>
<data>
4gUlWkwTANV/jd7n4OZoXyT8CAcgWVk/tI3a25wmuLg=
</data>
<key>optional</key>
<true/>
</dict>
<key>Resources/hr.lproj/Sparkle.strings</key>
<dict>
<key>hash</key>
<data>
cg3tRv/UshuWY4el+bbeoBZUzd4=
</data>
<key>hash2</key>
<data>
dkl+Vn68FbdfQQMcnDHr8oXTSzW0uKtYMKZ0dTf9aC4=
</data>
<key>optional</key>
<true/>
</dict>
<key>Resources/hu.lproj/Sparkle.strings</key>
<dict>
<key>hash</key>
<data>
PR7CwzbW+Lh9vVOFOSEI/fShBAM=
</data>
<key>hash2</key>
<data>
03d0wnNZx2by2rcwyyUQp8ZbjVmAEQoBXA1HN25F7Hs=
</data>
<key>optional</key>
<true/>
</dict>
<key>Resources/is.lproj/Sparkle.strings</key>
<dict>
<key>hash</key>
<data>
8fxzD9ZhrvIZVZB1+QSJaPzg80M=
</data>
<key>hash2</key>
<data>
xcV1yh/zU3U3TsRUT6vGybvIQitf+ThrogN/uOWmD8k=
</data>
<key>optional</key>
<true/>
</dict>
<key>Resources/it.lproj/Sparkle.strings</key>
<dict>
<key>hash</key>
<data>
KrPl3iDKA91Kcl3LXG7nUmlQ9rY=
</data>
<key>hash2</key>
<data>
SnALHmsNWW8OuPdd4u6wTLF7MpPLJhJp//vTwuGcJpY=
</data>
<key>optional</key>
<true/>
</dict>
<key>Resources/ja.lproj/Sparkle.strings</key>
<dict>
<key>hash</key>
<data>
pOqMr4NLCYTsTevlFEYuB28kdvo=
</data>
<key>hash2</key>
<data>
jnZ+6gkcjoepDpH6/BXf4i3Txhm79rLxvJeqpPqHteE=
</data>
<key>optional</key>
<true/>
</dict>
<key>Resources/ko.lproj/Sparkle.strings</key>
<dict>
<key>hash</key>
<data>
ZiduO/QU0b+UIt/1uiR2Ltiq/nY=
</data>
<key>hash2</key>
<data>
o5tc0FFNdGdzBM2RGpZDRFKYF7JMFNZbfPyh3Surt7c=
</data>
<key>optional</key>
<true/>
</dict>
<key>Resources/nb.lproj/Sparkle.strings</key>
<dict>
<key>hash</key>
<data>
ZdW2FCEBSCiNzzblpiVbzqOQs00=
</data>
<key>hash2</key>
<data>
CiGpWxnyFqcL70YEaY6tZavZqd/L3I/gl/58Vf/j9ys=
</data>
<key>optional</key>
<true/>
</dict>
<key>Resources/nl.lproj/Sparkle.strings</key>
<dict>
<key>hash</key>
<data>
3BsDDQcMCxtwvlr07YzTG096bmU=
</data>
<key>hash2</key>
<data>
rOb3Gc/eTUZhs/QUuspB/stVPNkSU75vZKR5LNcdTek=
</data>
<key>optional</key>
<true/>
</dict>
<key>Resources/pl.lproj/Sparkle.strings</key>
<dict>
<key>hash</key>
<data>
tbKCaaSKLjvC7nDxfs/zxdO0sB0=
</data>
<key>hash2</key>
<data>
yGt+gco6nzn7EMGrYj5QUGfy/Ax/HcMHlPi7v2gwdPk=
</data>
<key>optional</key>
<true/>
</dict>
<key>Resources/pt_BR.lproj/Sparkle.strings</key>
<dict>
<key>hash</key>
<data>
fCBMPEPsgJUYEr/n7SCU8YstLAs=
</data>
<key>hash2</key>
<data>
vKlvCF9C0Tkpv05lzTmL8xZUeTclYhgm3mDU+0FCPLQ=
</data>
<key>optional</key>
<true/>
</dict>
<key>Resources/pt_PT.lproj/Sparkle.strings</key>
<dict>
<key>hash</key>
<data>
CzVZ2qGRE0ZQoYAFZ/C1OoqoaH8=
</data>
<key>hash2</key>
<data>
Qedn2GikAYoVHUMFjZs4DYYZ0OLQtZKSCJTQDSb0WuE=
</data>
<key>optional</key>
<true/>
</dict>
<key>Resources/ro.lproj/Sparkle.strings</key>
<dict>
<key>hash</key>
<data>
DQSgRc2GsuXpDdBrs3wSPW5Y3As=
</data>
<key>hash2</key>
<data>
HakhsVJkpV0iiAc2tmuQ/p107dUH70aWI4tutDGX5Ps=
</data>
<key>optional</key>
<true/>
</dict>
<key>Resources/ru.lproj/Sparkle.strings</key>
<dict>
<key>hash</key>
<data>
nm1CwJSExUzZFYaiAHF7VIkGn6I=
</data>
<key>hash2</key>
<data>
/aioLC/IpLjhwGWWNrpmzvhFrjFcHxA6ZXtagde3rjA=
</data>
<key>optional</key>
<true/>
</dict>
<key>Resources/sk.lproj/Sparkle.strings</key>
<dict>
<key>hash</key>
<data>
/iRGi+ly+kyot+oc/hjr0ZcBShM=
</data>
<key>hash2</key>
<data>
Dr7D2ChakP7IjzSKPULAjfQ//onLMkL0gw+yyfYjspA=
</data>
<key>optional</key>
<true/>
</dict>
<key>Resources/sl.lproj/Sparkle.strings</key>
<dict>
<key>hash</key>
<data>
sATNnW+R68nq8JWI+WTAnDhypIM=
</data>
<key>hash2</key>
<data>
TonjJQq91roqTPcD7kBKH/xsfvhc0wl3q0XBSySAu+g=
</data>
<key>optional</key>
<true/>
</dict>
<key>Resources/sv.lproj/Sparkle.strings</key>
<dict>
<key>hash</key>
<data>
tUiNJSF7ds41OWD4IyeZogQOekk=
</data>
<key>hash2</key>
<data>
QLVPGXWqtZ9Udh4uz+lLiX83nnDGdDM9WER9W2GBsv4=
</data>
<key>optional</key>
<true/>
</dict>
<key>Resources/th.lproj/Sparkle.strings</key>
<dict>
<key>hash</key>
<data>
xtkemLr0M1e/ZWKgA4ENtgOFXa8=
</data>
<key>hash2</key>
<data>
fS7xcje0F0oq7sIn18SpN+cXAXCKsPBDNU/R9W3POqI=
</data>
<key>optional</key>
<true/>
</dict>
<key>Resources/tr.lproj/Sparkle.strings</key>
<dict>
<key>hash</key>
<data>
1ZAnkcXSiedlZc0O8oX54NwZHkA=
</data>
<key>hash2</key>
<data>
zKHIxWlHwUZ/93ji6b0kLof1QMBjmIQGE8E5urNuTZg=
</data>
<key>optional</key>
<true/>
</dict>
<key>Resources/uk.lproj/Sparkle.strings</key>
<dict>
<key>hash</key>
<data>
pZzpQkpsUENxNUOdVMiFdri0zX0=
</data>
<key>hash2</key>
<data>
P9H3Jrk+Zyq2tenKBdBC+b9hcLg4nlIEbRlXUAN1AqA=
</data>
<key>optional</key>
<true/>
</dict>
<key>Resources/zh_CN.lproj/Sparkle.strings</key>
<dict>
<key>hash</key>
<data>
srfTNLIFIdhNKE0yRzwEqAD7b+c=
</data>
<key>hash2</key>
<data>
BhJKIV1dEw3kjBKsXdi9ATHVkYVIbZphZW4ZuTLUXQQ=
</data>
<key>optional</key>
<true/>
</dict>
<key>Resources/zh_TW.lproj/Sparkle.strings</key>
<dict>
<key>hash</key>
<data>
xTTZRp0ziBZthxP8cgRiEgxZE0U=
</data>
<key>hash2</key>
<data>
2aZwBp9W8BR6Tbt6hEDjm/y/vo3FGMCIQOAsclVy+kQ=
</data>
<key>optional</key>
<true/>
</dict>
</dict>
<key>rules</key>
<dict>
<key>^Resources/</key>
<true/>
<key>^Resources/.*\.lproj/</key>
<dict>
<key>optional</key>
<true/>
<key>weight</key>
<real>1000</real>
</dict>
<key>^Resources/.*\.lproj/locversion.plist$</key>
<dict>
<key>omit</key>
<true/>
<key>weight</key>
<real>1100</real>
</dict>
<key>^Resources/Base\.lproj/</key>
<dict>
<key>weight</key>
<real>1010</real>
</dict>
<key>^version.plist$</key>
<true/>
</dict>
<key>rules2</key>
<dict>
<key>.*\.dSYM($|/)</key>
<dict>
<key>weight</key>
<real>11</real>
</dict>
<key>^(.*/)?\.DS_Store$</key>
<dict>
<key>omit</key>
<true/>
<key>weight</key>
<real>2000</real>
</dict>
<key>^(Frameworks|SharedFrameworks|PlugIns|Plug-ins|XPCServices|Helpers|MacOS|Library/(Automator|Spotlight|LoginItems))/</key>
<dict>
<key>nested</key>
<true/>
<key>weight</key>
<real>10</real>
</dict>
<key>^.*</key>
<true/>
<key>^Info\.plist$</key>
<dict>
<key>omit</key>
<true/>
<key>weight</key>
<real>20</real>
</dict>
<key>^PkgInfo$</key>
<dict>
<key>omit</key>
<true/>
<key>weight</key>
<real>20</real>
</dict>
<key>^Resources/</key>
<dict>
<key>weight</key>
<real>20</real>
</dict>
<key>^Resources/.*\.lproj/</key>
<dict>
<key>optional</key>
<true/>
<key>weight</key>
<real>1000</real>
</dict>
<key>^Resources/.*\.lproj/locversion.plist$</key>
<dict>
<key>omit</key>
<true/>
<key>weight</key>
<real>1100</real>
</dict>
<key>^Resources/Base\.lproj/</key>
<dict>
<key>weight</key>
<real>1010</real>
</dict>
<key>^[^/]+$</key>
<dict>
<key>nested</key>
<true/>
<key>weight</key>
<real>10</real>
</dict>
<key>^embedded\.provisionprofile$</key>
<dict>
<key>weight</key>
<real>20</real>
</dict>
<key>^version\.plist$</key>
<dict>
<key>weight</key>
<real>20</real>
</dict>
</dict>
</dict>
</plist>

View File

@ -3,7 +3,7 @@
<plist version="1.0">
<dict>
<key>BuildMachineOSBuild</key>
<string>18C54</string>
<string>19A558d</string>
<key>CFBundleDevelopmentRegion</key>
<string>en</string>
<key>CFBundleExecutable</key>
@ -17,7 +17,7 @@
<key>CFBundlePackageType</key>
<string>FMWK</string>
<key>CFBundleShortVersionString</key>
<string>1.21.2 12-ga5b23cdbe</string>
<string>1.22.0 33-gd5222353e</string>
<key>CFBundleSignature</key>
<string>????</string>
<key>CFBundleSupportedPlatforms</key>
@ -25,20 +25,22 @@
<string>MacOSX</string>
</array>
<key>CFBundleVersion</key>
<string>1.21.2</string>
<string>1.22.0</string>
<key>DTCompiler</key>
<string>com.apple.compilers.llvm.clang.1_0</string>
<key>DTPlatformBuild</key>
<string>10B61</string>
<string>11M392r</string>
<key>DTPlatformVersion</key>
<string>GM</string>
<key>DTSDKBuild</key>
<string>18B71</string>
<string>19A536d</string>
<key>DTSDKName</key>
<string>macosx10.14</string>
<string>macosx10.15</string>
<key>DTXcode</key>
<string>1010</string>
<string>1100</string>
<key>DTXcodeBuild</key>
<string>10B61</string>
<string>11M392r</string>
<key>LSMinimumSystemVersion</key>
<string>10.7</string>
</dict>
</plist>

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