From a7c949e53d1ff87ea0c1db0a935d0cacf1baa9ca Mon Sep 17 00:00:00 2001 From: "Marcus S. Zarra" Date: Sat, 5 Jun 2010 00:51:53 -0600 Subject: [PATCH] Testing of plugin installer --- Daemon/Classes/AppDelegate.h | 2 +- Daemon/Classes/ZSyncDaemon.m | 68 +++++-- Daemon/Info-Installer.plist | 34 ++++ Daemon/Info.plist | 87 +++++---- Daemon/Prefix.pch | 4 +- Daemon/ZSyncDaemon.xcodeproj/project.pbxproj | 129 +++++++++++++ DesktopCode/ZSyncHandler.m | 2 +- Images/icon.icns | Bin 0 -> 13961 bytes Images/icon128.png | Bin 0 -> 14009 bytes Images/icon256.png | Bin 0 -> 35728 bytes Images/icon32.png | Bin 0 -> 4374 bytes SampleDesktop/Classes/AppDelegate.h | 2 + SampleDesktop/Classes/AppDelegate.m | 11 ++ .../SampleDesktop.xcodeproj/project.pbxproj | 177 ++++++++++++++++++ SampleDesktop/SampleDesktopPlugin-Info.plist | 22 +++ 15 files changed, 487 insertions(+), 51 deletions(-) create mode 100644 Daemon/Info-Installer.plist create mode 100644 Images/icon.icns create mode 100644 Images/icon128.png create mode 100644 Images/icon256.png create mode 100644 Images/icon32.png create mode 100644 SampleDesktop/SampleDesktopPlugin-Info.plist diff --git a/Daemon/Classes/AppDelegate.h b/Daemon/Classes/AppDelegate.h index 010719d..f2e03c1 100644 --- a/Daemon/Classes/AppDelegate.h +++ b/Daemon/Classes/AppDelegate.h @@ -26,7 +26,7 @@ // OTHER DEALINGS IN THE SOFTWARE. // -@interface AppDelegate : NSObject +@interface AppDelegate : NSObject { NSStatusItem *statusItem; } diff --git a/Daemon/Classes/ZSyncDaemon.m b/Daemon/Classes/ZSyncDaemon.m index f7bdcf2..edc04e1 100644 --- a/Daemon/Classes/ZSyncDaemon.m +++ b/Daemon/Classes/ZSyncDaemon.m @@ -1,7 +1,22 @@ #import "ZSyncDaemon.h" +#define ZSyncVersionNumber @"ZSyncVersionNumber" + @implementation ZSyncDaemon ++ (NSBundle*)myBundle +{ + NSString *path = [[NSBundle mainBundle] pathForResource:@"ZSyncInstaller" ofType:@"bundle"]; + return [NSBundle bundleWithPath:path]; +} + ++ (NSBundle*)daemonBundle +{ + NSBundle *myBundle = [self myBundle]; + NSString *path = [myBundle pathForResource:@"ZSyncDaemon" ofType:@"app"]; + return [NSBundle bundleWithPath:path]; +} + + (NSString*)basePath { //Build our standard install path @@ -56,10 +71,7 @@ + (BOOL)isDaemonInstalled:(NSError**)error; if (error) { return NO; } - if (![[NSFileManager defaultManager] createDirectoryAtPath:basePath - withIntermediateDirectories:YES - attributes:nil - error:error]) { + if (![[NSFileManager defaultManager] createDirectoryAtPath:basePath withIntermediateDirectories:YES attributes:nil error:error]) { return NO; } } @@ -69,22 +81,36 @@ + (BOOL)isDaemonInstalled:(NSError**)error; + (BOOL)installDaemon:(NSError**)error; { - NSString *myBundlePath = [[NSBundle mainBundle] bundlePath]; - NSString *applicationPath = [self applicationPath]; + NSString *basePath = [self basePath]; NSFileManager *fileManager = [NSFileManager defaultManager]; + BOOL isDirectory = NO; + + if (![fileManager fileExistsAtPath:basePath isDirectory:&isDirectory]) { + if (![[NSFileManager defaultManager] createDirectoryAtPath:basePath withIntermediateDirectories:YES attributes:nil error:error]) { + return NO; + } + } else if (!isDirectory) { + NSString *errorDesc = [NSString stringWithFormat:@"Unknown file at base installation path: %@", basePath]; + NSDictionary *dictionary = [NSDictionary dictionaryWithObject:errorDesc forKey:NSLocalizedDescriptionKey]; + *error = [NSError errorWithDomain:@"ZSync" code:1123 userInfo:dictionary]; + return NO; + } + + NSString *myBundlePath = [[self daemonBundle] bundlePath]; + NSString *applicationPath = [self applicationPath]; return [fileManager copyItemAtPath:myBundlePath toPath:applicationPath error:error]; } + (BOOL)stopDaemon:(NSError**)error { - NSString *appName = [[[NSBundle mainBundle] infoDictionary] objectForKey:@"CFBundleExecutable"]; + NSString *appName = [[[self myBundle] infoDictionary] objectForKey:@"CFBundleExecutable"]; NSString *command = [NSString stringWithFormat:@"tell application \"%@\" to quit", appName]; NSAppleScript *quitScript; quitScript = [[NSAppleScript alloc] initWithSource:command]; NSDictionary *errorDict = nil; // TODO: This should be turned into an NSError response if (![quitScript executeAndReturnError:&errorDict]) { - ALog(@"Failure. What does it look like: %@", errorDict); + NSAssert1(NO, @"Failure. What does it look like: %@", errorDict); [quitScript release], quitScript = nil; return NO; } @@ -94,11 +120,11 @@ + (BOOL)stopDaemon:(NSError**)error + (BOOL)updateInstalledApplication:(NSError**)error; { - NSString *appName = [[[NSBundle mainBundle] infoDictionary] objectForKey:@"CFBundleExecutable"]; + NSString *appName = [[[self myBundle] infoDictionary] objectForKey:@"CFBundleExecutable"]; if ([self isDaemonRunning] && ![self stopDaemon:error]) return NO; - NSString *myBundlePath = [[NSBundle mainBundle] bundlePath]; + NSString *myBundlePath = [[self myBundle] bundlePath]; NSString *applicationPath = [self applicationPath]; NSString *basePath = [self basePath]; @@ -164,7 +190,7 @@ + (BOOL)installPluginAtPath:(NSString*)path intoDaemonWithError:(NSError**)error if (!isDaemonInstalled) { if (![self installDaemon:error]) return NO; } else { - NSDictionary *infoDictionary = [[NSBundle mainBundle] infoDictionary]; + NSDictionary *infoDictionary = [[self daemonBundle] infoDictionary]; NSInteger currentVersionNumber = [[infoDictionary objectForKey:ZSyncVersionNumber] integerValue]; NSBundle *installed = [NSBundle bundleWithPath:[self applicationPath]]; @@ -184,8 +210,22 @@ + (BOOL)installPluginAtPath:(NSString*)path intoDaemonWithError:(NSError**)error } //Install the plugin - NSString *pluginPath = [[self pluginPath] stringByAppendingPathComponent:[path lastPathComponent]]; + NSString *pluginPath = [self pluginPath]; NSFileManager *fileManager = [NSFileManager defaultManager]; + BOOL isDirectory = NO; + + if (![fileManager fileExistsAtPath:pluginPath isDirectory:&isDirectory]) { + if (![[NSFileManager defaultManager] createDirectoryAtPath:pluginPath withIntermediateDirectories:YES attributes:nil error:error]) { + return NO; + } + } else if (!isDirectory) { + NSString *errorDesc = [NSString stringWithFormat:@"Unknown file at base installation path: %@", pluginPath]; + NSDictionary *dictionary = [NSDictionary dictionaryWithObject:errorDesc forKey:NSLocalizedDescriptionKey]; + *error = [NSError errorWithDomain:@"ZSync" code:1123 userInfo:dictionary]; + return NO; + } + + pluginPath = [pluginPath stringByAppendingPathComponent:[path lastPathComponent]]; if (![fileManager copyItemAtPath:path toPath:pluginPath error:error]) { return NO; } @@ -198,7 +238,7 @@ + (BOOL)installPluginAtPath:(NSString*)path intoDaemonWithError:(NSError**)error + (BOOL)isDaemonRunning; { - NSDictionary *infoDictionary = [[NSBundle mainBundle] infoDictionary]; + NSDictionary *infoDictionary = [[self daemonBundle] infoDictionary]; NSString *myBundleID = [infoDictionary objectForKey:@"CFBundleIdentifier"]; NSWorkspace *workspace = [NSWorkspace sharedWorkspace]; @@ -212,7 +252,7 @@ + (BOOL)isDaemonRunning; + (void)startDaemon; { - NSDictionary *infoDictionary = [[NSBundle mainBundle] infoDictionary]; + NSDictionary *infoDictionary = [[self myBundle] infoDictionary]; NSString *appName = [infoDictionary objectForKey:@"CFBundleExecutable"]; NSWorkspace *workspace = [NSWorkspace sharedWorkspace]; diff --git a/Daemon/Info-Installer.plist b/Daemon/Info-Installer.plist new file mode 100644 index 0000000..57825a1 --- /dev/null +++ b/Daemon/Info-Installer.plist @@ -0,0 +1,34 @@ + + + + + CFBundleDevelopmentRegion + English + CFBundleExecutable + ${EXECUTABLE_NAME} + CFBundleIconFile + icon.icns + CFBundleIdentifier + com.zarrastudios.zsync.${PRODUCT_NAME:rfc1034identifier} + CFBundleInfoDictionaryVersion + 6.0 + CFBundleName + ${PRODUCT_NAME} + CFBundlePackageType + APPL + CFBundleShortVersionString + 1.0 + CFBundleSignature + ???? + CFBundleVersion + 1 + LSMinimumSystemVersion + ${MACOSX_DEPLOYMENT_TARGET} + LSUIElement + + NSPrincipalClass + ZSyncDaemon + ZSyncVersionNumber + 1 + + diff --git a/Daemon/Info.plist b/Daemon/Info.plist index a22d194..ee1c01b 100644 --- a/Daemon/Info.plist +++ b/Daemon/Info.plist @@ -1,36 +1,59 @@ - - NSMainNibFile - MainMenu - CFBundleDevelopmentRegion - English - CFBundleExecutable - ${EXECUTABLE_NAME} - CFBundleIconFile - - CFBundleIdentifier - com.yourcompany.${PRODUCT_NAME:rfc1034identifier} - CFBundleInfoDictionaryVersion - 6.0 - CFBundleName - ${PRODUCT_NAME} - CFBundlePackageType - APPL - CFBundleSignature - ???? - CFBundleShortVersionString - 1.0 - LSMinimumSystemVersion - ${MACOSX_DEPLOYMENT_TARGET} - CFBundleVersion - 1 - NSPrincipalClass - NSApplication - LSUIElement - - ZSyncVersionNumber - 1 - + + + UTExportedTypeDeclarations + + + UTTypeConformsTo + + com.apple.bundle + + UTTypeDescription + ZSync Plugin + UTTypeIdentifier + com.zarrastudios.zsync.plugin + UTTypeTagSpecification + + public.filename-extension + + zsyncPlugin + + + + + + + CFBundleDevelopmentRegion + English + CFBundleExecutable + ${EXECUTABLE_NAME} + CFBundleIconFile + icon.icns + CFBundleIdentifier + com.zarrastudios.zsync.${PRODUCT_NAME:rfc1034identifier} + CFBundleInfoDictionaryVersion + 6.0 + CFBundleName + ${PRODUCT_NAME} + CFBundlePackageType + APPL + CFBundleShortVersionString + 1.0 + CFBundleSignature + ???? + CFBundleVersion + 1 + LSMinimumSystemVersion + ${MACOSX_DEPLOYMENT_TARGET} + LSUIElement + + NSMainNibFile + MainMenu + NSPrincipalClass + NSApplication + ZSyncVersionNumber + 1 + diff --git a/Daemon/Prefix.pch b/Daemon/Prefix.pch index 3940968..afbab00 100644 --- a/Daemon/Prefix.pch +++ b/Daemon/Prefix.pch @@ -2,6 +2,4 @@ #import #import #import "ZSync.h" -#endif - -#define ZSyncVersionNumber @"ZSyncVersionNumber" \ No newline at end of file +#endif \ No newline at end of file diff --git a/Daemon/ZSyncDaemon.xcodeproj/project.pbxproj b/Daemon/ZSyncDaemon.xcodeproj/project.pbxproj index 72a8779..7db25e1 100644 --- a/Daemon/ZSyncDaemon.xcodeproj/project.pbxproj +++ b/Daemon/ZSyncDaemon.xcodeproj/project.pbxproj @@ -24,10 +24,23 @@ B691FB8E10ED875800207210 /* PairingCodeWindowController.m in Sources */ = {isa = PBXBuildFile; fileRef = B691FB8810ED875800207210 /* PairingCodeWindowController.m */; }; B691FB8F10ED875800207210 /* ZSyncHandler.m in Sources */ = {isa = PBXBuildFile; fileRef = B691FB8B10ED875800207210 /* ZSyncHandler.m */; }; B691FBBD10ED884000207210 /* SyncServices.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = B691FBBC10ED884000207210 /* SyncServices.framework */; }; + B6DEEC0611BA16A90036A137 /* icon.icns in Resources */ = {isa = PBXBuildFile; fileRef = B6DEEC0511BA16A90036A137 /* icon.icns */; }; + B6DEEC3A11BA18970036A137 /* ZSyncDaemon.m in Sources */ = {isa = PBXBuildFile; fileRef = B63F9CAB11B2EF6700811EB1 /* ZSyncDaemon.m */; }; + B6DEEC3D11BA18C00036A137 /* ZSyncDaemon.app in Resources */ = {isa = PBXBuildFile; fileRef = 8D1107320486CEB800E47090 /* ZSyncDaemon.app */; }; B6EC175D10F5033E0051FD2E /* GTMNSData+zlib.m in Sources */ = {isa = PBXBuildFile; fileRef = B6EC175C10F5033E0051FD2E /* GTMNSData+zlib.m */; }; B6EC179F10F509010051FD2E /* libMYNetwork-Desktop.a in Frameworks */ = {isa = PBXBuildFile; fileRef = B6EC179E10F509010051FD2E /* libMYNetwork-Desktop.a */; }; /* End PBXBuildFile section */ +/* Begin PBXContainerItemProxy section */ + B6DEEC3811BA187F0036A137 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 29B97313FDCFA39411CA2CEA /* Project object */; + proxyType = 1; + remoteGlobalIDString = 8D1107260486CEB800E47090; + remoteInfo = ZSyncDaemon; + }; +/* End PBXContainerItemProxy section */ + /* Begin PBXFileReference section */ 1058C7A1FEA54F0111CA2CBB /* Cocoa.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Cocoa.framework; path = /System/Library/Frameworks/Cocoa.framework; sourceTree = ""; }; 29B97324FDCFA39411CA2CEA /* AppKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = AppKit.framework; path = /System/Library/Frameworks/AppKit.framework; sourceTree = ""; }; @@ -74,6 +87,9 @@ B691FBA910ED879D00207210 /* TCPListener.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = TCPListener.h; sourceTree = ""; }; B691FBAA10ED879D00207210 /* ZSyncShared.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ZSyncShared.h; sourceTree = ""; }; B691FBBC10ED884000207210 /* SyncServices.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = SyncServices.framework; path = System/Library/Frameworks/SyncServices.framework; sourceTree = SDKROOT; }; + B6C5981811BA1B2D007CB1E1 /* Info-Installer.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; path = "Info-Installer.plist"; sourceTree = ""; }; + B6DEEC0511BA16A90036A137 /* icon.icns */ = {isa = PBXFileReference; lastKnownFileType = image.icns; path = icon.icns; sourceTree = ""; }; + B6DEEC2F11BA18680036A137 /* ZSyncInstaller.bundle */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = ZSyncInstaller.bundle; sourceTree = BUILT_PRODUCTS_DIR; }; B6EC175A10F5033E0051FD2E /* GTMDefines.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = GTMDefines.h; sourceTree = ""; }; B6EC175B10F5033E0051FD2E /* GTMNSData+zlib.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = "GTMNSData+zlib.h"; sourceTree = ""; }; B6EC175C10F5033E0051FD2E /* GTMNSData+zlib.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = "GTMNSData+zlib.m"; sourceTree = ""; }; @@ -93,6 +109,13 @@ ); runOnlyForDeploymentPostprocessing = 0; }; + B6DEEC2D11BA18680036A137 /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + runOnlyForDeploymentPostprocessing = 0; + }; /* End PBXFrameworksBuildPhase section */ /* Begin PBXGroup section */ @@ -119,6 +142,7 @@ isa = PBXGroup; children = ( 8D1107320486CEB800E47090 /* ZSyncDaemon.app */, + B6DEEC2F11BA18680036A137 /* ZSyncInstaller.bundle */, ); name = Products; sourceTree = ""; @@ -142,6 +166,7 @@ 29B97315FDCFA39411CA2CEA /* Other Sources */ = { isa = PBXGroup; children = ( + B6C5981811BA1B2D007CB1E1 /* Info-Installer.plist */, B691FB4910ED857100207210 /* Info.plist */, B691FB4A10ED857100207210 /* Prefix.pch */, B691FB3C10ED855F00207210 /* main.m */, @@ -173,6 +198,7 @@ B63F9C2011B2EA1300811EB1 /* Images */ = { isa = PBXGroup; children = ( + B6DEEC0511BA16A90036A137 /* icon.icns */, B63F9C2111B2EA2800811EB1 /* menubar.png */, ); name = Images; @@ -274,6 +300,24 @@ productReference = 8D1107320486CEB800E47090 /* ZSyncDaemon.app */; productType = "com.apple.product-type.application"; }; + B6DEEC2E11BA18680036A137 /* ZSyncInstaller */ = { + isa = PBXNativeTarget; + buildConfigurationList = B6DEEC3711BA18680036A137 /* Build configuration list for PBXNativeTarget "ZSyncInstaller" */; + buildPhases = ( + B6DEEC2B11BA18680036A137 /* Resources */, + B6DEEC2C11BA18680036A137 /* Sources */, + B6DEEC2D11BA18680036A137 /* Frameworks */, + ); + buildRules = ( + ); + dependencies = ( + B6DEEC3911BA187F0036A137 /* PBXTargetDependency */, + ); + name = ZSyncInstaller; + productName = ZSyncInstaller; + productReference = B6DEEC2F11BA18680036A137 /* ZSyncInstaller.bundle */; + productType = "com.apple.product-type.bundle"; + }; /* End PBXNativeTarget section */ /* Begin PBXProject section */ @@ -294,6 +338,7 @@ projectRoot = ""; targets = ( 8D1107260486CEB800E47090 /* ZSyncDaemon */, + B6DEEC2E11BA18680036A137 /* ZSyncInstaller */, ); }; /* End PBXProject section */ @@ -308,6 +353,15 @@ B691FB8C10ED875800207210 /* PairingWindow.xib in Resources */, B64FE70410EE728F00B15A8F /* clientDescription.plist in Resources */, B63F9C2211B2EA2800811EB1 /* menubar.png in Resources */, + B6DEEC0611BA16A90036A137 /* icon.icns in Resources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + B6DEEC2B11BA18680036A137 /* Resources */ = { + isa = PBXResourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + B6DEEC3D11BA18C00036A137 /* ZSyncDaemon.app in Resources */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -330,8 +384,24 @@ ); runOnlyForDeploymentPostprocessing = 0; }; + B6DEEC2C11BA18680036A137 /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + B6DEEC3A11BA18970036A137 /* ZSyncDaemon.m in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; /* End PBXSourcesBuildPhase section */ +/* Begin PBXTargetDependency section */ + B6DEEC3911BA187F0036A137 /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + target = 8D1107260486CEB800E47090 /* ZSyncDaemon */; + targetProxy = B6DEEC3811BA187F0036A137 /* PBXContainerItemProxy */; + }; +/* End PBXTargetDependency section */ + /* Begin PBXVariantGroup section */ B691FB3E10ED855F00207210 /* InfoPlist.strings */ = { isa = PBXVariantGroup; @@ -362,6 +432,56 @@ /* End PBXVariantGroup section */ /* Begin XCBuildConfiguration section */ + B6DEEC3211BA18680036A137 /* Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + COPY_PHASE_STRIP = NO; + GCC_DYNAMIC_NO_PIC = NO; + GCC_ENABLE_FIX_AND_CONTINUE = YES; + GCC_MODEL_TUNING = G5; + GCC_OPTIMIZATION_LEVEL = 0; + GCC_PRECOMPILE_PREFIX_HEADER = YES; + GCC_PREFIX_HEADER = "$(SYSTEM_LIBRARY_DIR)/Frameworks/AppKit.framework/Headers/AppKit.h"; + INFOPLIST_FILE = "Info-Installer.plist"; + INSTALL_PATH = "$(HOME)/Library/Bundles"; + OTHER_LDFLAGS = ( + "-framework", + Foundation, + "-framework", + AppKit, + ); + PREBINDING = NO; + PRODUCT_NAME = ZSyncInstaller; + WRAPPER_EXTENSION = bundle; + }; + name = Debug; + }; + B6DEEC3311BA18680036A137 /* Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + COPY_PHASE_STRIP = YES; + DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; + GCC_ENABLE_FIX_AND_CONTINUE = NO; + GCC_MODEL_TUNING = G5; + GCC_PRECOMPILE_PREFIX_HEADER = YES; + GCC_PREFIX_HEADER = "$(SYSTEM_LIBRARY_DIR)/Frameworks/AppKit.framework/Headers/AppKit.h"; + INFOPLIST_FILE = "Info-Installer.plist"; + INSTALL_PATH = "$(HOME)/Library/Bundles"; + OTHER_LDFLAGS = ( + "-framework", + Foundation, + "-framework", + AppKit, + ); + PREBINDING = NO; + PRODUCT_NAME = ZSyncInstaller; + WRAPPER_EXTENSION = bundle; + ZERO_LINK = NO; + }; + name = Release; + }; C01FCF4B08A954540054247B /* Debug */ = { isa = XCBuildConfiguration; buildSettings = { @@ -433,6 +553,15 @@ /* End XCBuildConfiguration section */ /* Begin XCConfigurationList section */ + B6DEEC3711BA18680036A137 /* Build configuration list for PBXNativeTarget "ZSyncInstaller" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + B6DEEC3211BA18680036A137 /* Debug */, + B6DEEC3311BA18680036A137 /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; C01FCF4A08A954540054247B /* Build configuration list for PBXNativeTarget "ZSyncDaemon" */ = { isa = XCConfigurationList; buildConfigurations = ( diff --git a/DesktopCode/ZSyncHandler.m b/DesktopCode/ZSyncHandler.m index 12cd5af..feffad9 100644 --- a/DesktopCode/ZSyncHandler.m +++ b/DesktopCode/ZSyncHandler.m @@ -45,8 +45,8 @@ + (id)shared; if (!zsSharedSyncHandler) { zsSharedSyncHandler = [[ZSyncHandler alloc] init]; } - return zsSharedSyncHandler; } + return zsSharedSyncHandler; } - (NSMutableArray*)connections diff --git a/Images/icon.icns b/Images/icon.icns new file mode 100644 index 0000000000000000000000000000000000000000..02bd8f5a1283a50c6be31229a5dc18fe989539a8 GIT binary patch literal 13961 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 z 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 + + + + CFBundleDevelopmentRegion + English + CFBundleExecutable + ${EXECUTABLE_NAME} + CFBundleIdentifier + com.yourcompany.${PRODUCT_NAME:rfc1034identifier} + CFBundleInfoDictionaryVersion + 6.0 + CFBundlePackageType + BNDL + CFBundleShortVersionString + 1.0 + CFBundleSignature + ???? + CFBundleVersion + 1 + +