[Pkg-owncloud-commits] [owncloud-client] 158/498: shell_i: Add a FinderSync-based implementation #2340
Sandro Knauß
hefee-guest at moszumanska.debian.org
Tue Aug 11 14:48:46 UTC 2015
This is an automated email from the git hooks/post-receive script.
hefee-guest pushed a commit to branch master
in repository owncloud-client.
commit 02f6dbba46a44aed3fc9550090646f13c1bf59ae
Author: Jocelyn Turcotte <jturcotte at woboq.com>
Date: Mon Jun 15 14:57:33 2015 +0200
shell_i: Add a FinderSync-based implementation #2340
This uses the new official API to show overlay icons and add our
custom context menu entry instead of hooking directly into the
Finder process and intercept drawind routines.
A dummy desktopclient target is also in the project to allow debugging
directly in Xcode while the official client can be started from the
command line. Otherwise Xcode won't allow attaching to the debugee.
Dummy icon files have been added while we get proper icon produced.
We can't use the old icons since what we use for the legacy shell
integration is already padded according to where the badge should
appear on the full icon.
---
shell_integration/MacOSX/CMakeLists.txt | 20 +-
.../OwnCloud.xcworkspace/contents.xcworkspacedata | 3 +
.../xcshareddata/OwnCloud.xccheckout | 10 +-
.../OwnCloudFinderSync/FinderSyncExt/FinderSync.h | 28 ++
.../OwnCloudFinderSync/FinderSyncExt/FinderSync.m | 161 +++++++
.../FinderSyncExt/FinderSyncExt.entitlements | 12 +
.../OwnCloudFinderSync/FinderSyncExt/Info.plist | 43 ++
.../OwnCloudFinderSync.xcodeproj/project.pbxproj | 534 +++++++++++++++++++++
.../xcshareddata/xcschemes/FinderSyncExt.xcscheme | 105 ++++
.../OwnCloudFinderSync/desktopclient/Info.plist | 30 ++
.../MacOSX/OwnCloudFinderSync/desktopclient/main.m | 16 +
.../icons/nopadding/error.iconset/icon_32x32.png | Bin 0 -> 1816 bytes
.../nopadding/error_swm.iconset/icon_32x32.png | Bin 0 -> 2541 bytes
.../icons/nopadding/ok.iconset/icon_32x32.png | Bin 0 -> 1825 bytes
.../icons/nopadding/ok_swm.iconset/icon_32x32.png | Bin 0 -> 2543 bytes
.../icons/nopadding/sync.iconset/icon_32x32.png | Bin 0 -> 1884 bytes
.../nopadding/sync_swm.iconset/icon_32x32.png | Bin 0 -> 2592 bytes
.../icons/nopadding/warning.iconset/icon_32x32.png | Bin 0 -> 1800 bytes
.../nopadding/warning_swm.iconset/icon_32x32.png | Bin 0 -> 2498 bytes
19 files changed, 954 insertions(+), 8 deletions(-)
diff --git a/shell_integration/MacOSX/CMakeLists.txt b/shell_integration/MacOSX/CMakeLists.txt
index d5730b1..b18bf08 100644
--- a/shell_integration/MacOSX/CMakeLists.txt
+++ b/shell_integration/MacOSX/CMakeLists.txt
@@ -1,11 +1,25 @@
if(APPLE)
-add_custom_target( mac_overlayplugin ALL
- xcodebuild -workspace ${CMAKE_SOURCE_DIR}/shell_integration/MacOSX/OwnCloud.xcworkspace
+add_custom_target( legacy_mac_overlayplugin ALL
+ xcodebuild -workspace ${CMAKE_SOURCE_DIR}/shell_integration/MacOSX/OwnCloud.xcworkspace
-scheme SyncStateFinder.osax SYMROOT=${CMAKE_CURRENT_BINARY_DIR} archive
- COMMENT building Mac Overlay icons)
+ COMMENT building Legacy Mac Overlay icons)
+
+# The bundle identifier and application group need to have compatible values with the client
+# to be able to open a Mach port across the extension's sandbox boundary.
+# Pass the info through the xcodebuild command line and make sure that the project uses
+# those user-defined settings to build the plist.
+add_custom_target( mac_overlayplugin ALL
+ xcodebuild -project ${CMAKE_SOURCE_DIR}/shell_integration/MacOSX/OwnCloudFinderSync/OwnCloudFinderSync.xcodeproj
+ -target FinderSyncExt -configuration Release SYMROOT=${CMAKE_CURRENT_BINARY_DIR}
+ OC_APPLICATION_NAME=${APPLICATION_NAME}
+ OC_APPLICATION_REV_DOMAIN=${APPLICATION_REV_DOMAIN}
+ COMMENT building Mac Overlay icons)
INSTALL( DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/Release/SyncStateFinder.osax/Contents
DESTINATION ${CMAKE_INSTALL_PREFIX}/Library/ScriptingAdditions/SyncStateFinder.osax/ )
+INSTALL(DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/Release/FinderSyncExt.appex
+ DESTINATION ${OWNCLOUD_OSX_BUNDLE}/Contents/Plugins
+ USE_SOURCE_PERMISSIONS)
endif(APPLE)
diff --git a/shell_integration/MacOSX/OwnCloud.xcworkspace/contents.xcworkspacedata b/shell_integration/MacOSX/OwnCloud.xcworkspace/contents.xcworkspacedata
index a21afc3..26fba34 100644
--- a/shell_integration/MacOSX/OwnCloud.xcworkspace/contents.xcworkspacedata
+++ b/shell_integration/MacOSX/OwnCloud.xcworkspace/contents.xcworkspacedata
@@ -2,6 +2,9 @@
<Workspace
version = "1.0">
<FileRef
+ location = "group:OwnCloudFinderSync/OwnCloudFinderSync.xcodeproj">
+ </FileRef>
+ <FileRef
location = "group:OwnCloudFinder/OwnCloudFinder.xcodeproj">
</FileRef>
<FileRef
diff --git a/shell_integration/MacOSX/OwnCloud.xcworkspace/xcshareddata/OwnCloud.xccheckout b/shell_integration/MacOSX/OwnCloud.xcworkspace/xcshareddata/OwnCloud.xccheckout
index 8320a7f..9512111 100644
--- a/shell_integration/MacOSX/OwnCloud.xcworkspace/xcshareddata/OwnCloud.xccheckout
+++ b/shell_integration/MacOSX/OwnCloud.xcworkspace/xcshareddata/OwnCloud.xccheckout
@@ -10,29 +10,29 @@
<string>OwnCloud</string>
<key>IDESourceControlProjectOriginsDictionary</key>
<dict>
- <key>09EE94AA-F410-4594-AB26-5A0220DEAEC7</key>
+ <key>D67321A19EF879CA55BF889202BA8C23AC9AA2B5</key>
<string>ssh://github.com/owncloud/client.git</string>
</dict>
<key>IDESourceControlProjectPath</key>
<string>shell_integration/MacOSX/OwnCloud.xcworkspace</string>
<key>IDESourceControlProjectRelativeInstallPathDictionary</key>
<dict>
- <key>09EE94AA-F410-4594-AB26-5A0220DEAEC7</key>
+ <key>D67321A19EF879CA55BF889202BA8C23AC9AA2B5</key>
<string>../../..</string>
</dict>
<key>IDESourceControlProjectURL</key>
<string>ssh://github.com/owncloud/client.git</string>
<key>IDESourceControlProjectVersion</key>
- <integer>110</integer>
+ <integer>111</integer>
<key>IDESourceControlProjectWCCIdentifier</key>
- <string>09EE94AA-F410-4594-AB26-5A0220DEAEC7</string>
+ <string>D67321A19EF879CA55BF889202BA8C23AC9AA2B5</string>
<key>IDESourceControlProjectWCConfigurations</key>
<array>
<dict>
<key>IDESourceControlRepositoryExtensionIdentifierKey</key>
<string>public.vcs.git</string>
<key>IDESourceControlWCCIdentifierKey</key>
- <string>09EE94AA-F410-4594-AB26-5A0220DEAEC7</string>
+ <string>D67321A19EF879CA55BF889202BA8C23AC9AA2B5</string>
<key>IDESourceControlWCCName</key>
<string>client</string>
</dict>
diff --git a/shell_integration/MacOSX/OwnCloudFinderSync/FinderSyncExt/FinderSync.h b/shell_integration/MacOSX/OwnCloudFinderSync/FinderSyncExt/FinderSync.h
new file mode 100644
index 0000000..749f849
--- /dev/null
+++ b/shell_integration/MacOSX/OwnCloudFinderSync/FinderSyncExt/FinderSync.h
@@ -0,0 +1,28 @@
+/*
+ * Copyright (C) by Jocelyn Turcotte <jturcotte at woboq.com>
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful, but
+ * WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
+ * or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+ * for more details.
+ */
+
+
+#import <Cocoa/Cocoa.h>
+#import <FinderSync/FinderSync.h>
+#import "SyncClientProxy.h"
+
+ at interface FinderSync : FIFinderSync <SyncClientProxyDelegate>
+{
+ SyncClientProxy *_syncClientProxy;
+ NSMutableSet *_registeredDirectories;
+ NSMutableSet *_requestedUrls;
+ NSString *_shareMenuTitle;
+}
+
+ at end
diff --git a/shell_integration/MacOSX/OwnCloudFinderSync/FinderSyncExt/FinderSync.m b/shell_integration/MacOSX/OwnCloudFinderSync/FinderSyncExt/FinderSync.m
new file mode 100644
index 0000000..8c0c2c0
--- /dev/null
+++ b/shell_integration/MacOSX/OwnCloudFinderSync/FinderSyncExt/FinderSync.m
@@ -0,0 +1,161 @@
+/*
+ * Copyright (C) by Jocelyn Turcotte <jturcotte at woboq.com>
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful, but
+ * WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
+ * or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+ * for more details.
+ */
+
+
+#import "FinderSync.h"
+
+
+ at implementation FinderSync
+
+- (instancetype)init
+{
+ self = [super init];
+
+ FIFinderSyncController *syncController = [FIFinderSyncController defaultController];
+ NSBundle *extBundle = [NSBundle bundleForClass:[self class]];
+ // This was added to the bundle's Info.plist to get it from the build system
+ NSString *teamIdentifierPrefix = [extBundle objectForInfoDictionaryKey:@"TeamIdentifierPrefix"];
+
+ [syncController setBadgeImage:[extBundle imageForResource:@"ok.icns"] label:nil forBadgeIdentifier:@"OK"];
+ [syncController setBadgeImage:[extBundle imageForResource:@"sync.icns"] label:nil forBadgeIdentifier:@"SYNC"];
+ [syncController setBadgeImage:[extBundle imageForResource:@"sync.icns"] label:nil forBadgeIdentifier:@"NEW"];
+ [syncController setBadgeImage:[extBundle imageForResource:@"warning.icns"] label:nil forBadgeIdentifier:@"IGNORE"];
+ [syncController setBadgeImage:[extBundle imageForResource:@"error.icns"] label:nil forBadgeIdentifier:@"ERROR"];
+ [syncController setBadgeImage:[extBundle imageForResource:@"ok_swm.icns"] label:nil forBadgeIdentifier:@"OK+SWM"];
+ [syncController setBadgeImage:[extBundle imageForResource:@"sync_swm.icns"] label:nil forBadgeIdentifier:@"SYNC+SWM"];
+ [syncController setBadgeImage:[extBundle imageForResource:@"sync_swm.icns"] label:nil forBadgeIdentifier:@"NEW+SWM"];
+ [syncController setBadgeImage:[extBundle imageForResource:@"warning_swm.icns"] label:nil forBadgeIdentifier:@"IGNORE+SWM"];
+ [syncController setBadgeImage:[extBundle imageForResource:@"error_swm.icns"] label:nil forBadgeIdentifier:@"ERROR+SWM"];
+
+ // The Mach post name needs to be prefixed with the code signing Team ID
+ // https://developer.apple.com/library/mac/documentation/Security/Conceptual/AppSandboxDesignGuide/AppSandboxInDepth/AppSandboxInDepth.html#//apple_ref/doc/uid/TP40011183-CH3-SW24
+ NSString *serverName = [[teamIdentifierPrefix stringByAppendingString:[extBundle bundleIdentifier]]
+ stringByReplacingOccurrencesOfString:@".FinderSyncExt" withString:@".socketApi"];
+
+ _syncClientProxy = [[SyncClientProxy alloc] initWithDelegate:self serverName:serverName];
+ _registeredDirectories = [[NSMutableSet alloc] init];
+ _requestedUrls = [[NSMutableSet alloc] init];
+ _shareMenuTitle = nil;
+
+ [_syncClientProxy start];
+ return self;
+}
+
+#pragma mark - Primary Finder Sync protocol methods
+
+- (void)endObservingDirectoryAtURL:(NSURL *)url
+{
+ // The user is no longer seeing the container's contents.
+ // At this point we know that the status of any file as a direct child of url.filePathURL
+ // won't be displayed. Filter our _requestedUrls to get rid of them.
+ NSString *observedDirectoryPath = [url.filePathURL path];
+ [_requestedUrls filterUsingPredicate:[NSPredicate predicateWithBlock:^BOOL(id evaluatedObject, NSDictionary *bindings) {
+ NSURL *requestedUrl = (NSURL *)evaluatedObject;
+ NSString *parentDir = [[requestedUrl path] stringByDeletingLastPathComponent];
+ return [parentDir isEqualToString:observedDirectoryPath];
+ }]];
+}
+
+- (void)requestBadgeIdentifierForURL:(NSURL *)url
+{
+ [_requestedUrls addObject:url.filePathURL];
+
+ BOOL isDir;
+ if ([[NSFileManager defaultManager] fileExistsAtPath:[url path] isDirectory: &isDir] == NO) {
+ NSLog(@"ERROR: Could not determine file type of %@", [url path]);
+ isDir = NO;
+ }
+
+ NSString* normalizedPath = [[url path] decomposedStringWithCanonicalMapping];
+ [_syncClientProxy askForIcon:normalizedPath isDirectory:isDir];
+}
+
+#pragma mark - Menu and toolbar item support
+
+- (NSMenu *)menuForMenuKind:(FIMenuKind)whichMenu
+{
+ if (_shareMenuTitle) {
+ NSMenu *menu = [[NSMenu alloc] initWithTitle:@""];
+ [menu addItemWithTitle:_shareMenuTitle action:@selector(shareMenuAction:) keyEquivalent:@"title"];
+
+ return menu;
+ }
+ return nil;
+}
+
+- (IBAction)shareMenuAction:(id)sender
+{
+ NSArray* items = [[FIFinderSyncController defaultController] selectedItemURLs];
+
+ [items enumerateObjectsUsingBlock: ^(id obj, NSUInteger idx, BOOL *stop) {
+ NSString* normalizedPath = [[obj path] decomposedStringWithCanonicalMapping];
+ [_syncClientProxy askOnSocket:normalizedPath query:@"SHARE"];
+ }];
+}
+
+#pragma mark - SyncClientProxyDelegate implementation
+
+- (void)setResultForPath:(NSString*)path result:(NSString*)result
+{
+ NSString *normalizedPath = [path decomposedStringWithCanonicalMapping];
+ [[FIFinderSyncController defaultController] setBadgeIdentifier:result forURL:[NSURL fileURLWithPath:normalizedPath]];
+}
+
+- (void)reFetchFileNameCacheForPath:(NSString*)path
+{
+ // This shouldn't be necessary, and will be a problem when we
+ // filter values of _requestedUrls even though Finder might still
+ // have an old status in its cache (and therefore won't re-request it)
+ // but will do OK until we get the socket API to re-push the status of everything needed.
+ [_requestedUrls enumerateObjectsUsingBlock: ^(id url, BOOL *stop) {
+ if ([[url path] hasPrefix:path])
+ [self requestBadgeIdentifierForURL: url];
+ }];
+}
+
+- (void)registerPath:(NSString*)path
+{
+ assert(_registeredDirectories);
+ [_registeredDirectories addObject:[NSURL fileURLWithPath:path]];
+ [FIFinderSyncController defaultController].directoryURLs = _registeredDirectories;
+}
+
+- (void)unregisterPath:(NSString*)path
+{
+ [_registeredDirectories removeObject:[NSURL fileURLWithPath:path]];
+ [FIFinderSyncController defaultController].directoryURLs = _registeredDirectories;
+}
+
+- (void)setShareMenuTitle:(NSString*)title
+{
+ _shareMenuTitle = title;
+}
+
+- (void)loadIconResourcePath:(NSString*)path
+{
+#pragma unused(path)
+}
+
+- (void)connectionDidDie
+{
+ _shareMenuTitle = nil;
+
+ // This will tell Finder that this extension isn't attached to any directory
+ // until we can reconnect to the sync client.
+ [_registeredDirectories removeAllObjects];
+ [FIFinderSyncController defaultController].directoryURLs = nil;
+}
+
+ at end
+
diff --git a/shell_integration/MacOSX/OwnCloudFinderSync/FinderSyncExt/FinderSyncExt.entitlements b/shell_integration/MacOSX/OwnCloudFinderSync/FinderSyncExt/FinderSyncExt.entitlements
new file mode 100644
index 0000000..2060579
--- /dev/null
+++ b/shell_integration/MacOSX/OwnCloudFinderSync/FinderSyncExt/FinderSyncExt.entitlements
@@ -0,0 +1,12 @@
+<?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>com.apple.security.app-sandbox</key>
+ <true/>
+ <key>com.apple.security.application-groups</key>
+ <array>
+ <string>$(TeamIdentifierPrefix)$(OC_APPLICATION_REV_DOMAIN)</string>
+ </array>
+</dict>
+</plist>
diff --git a/shell_integration/MacOSX/OwnCloudFinderSync/FinderSyncExt/Info.plist b/shell_integration/MacOSX/OwnCloudFinderSync/FinderSyncExt/Info.plist
new file mode 100644
index 0000000..36fe63e
--- /dev/null
+++ b/shell_integration/MacOSX/OwnCloudFinderSync/FinderSyncExt/Info.plist
@@ -0,0 +1,43 @@
+<?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>TeamIdentifierPrefix</key>
+ <string>$(TeamIdentifierPrefix)</string>
+ <key>CFBundleDevelopmentRegion</key>
+ <string>en</string>
+ <key>CFBundleDisplayName</key>
+ <string>$(OC_APPLICATION_NAME) Extensions</string>
+ <key>CFBundleExecutable</key>
+ <string>$(EXECUTABLE_NAME)</string>
+ <key>CFBundleIdentifier</key>
+ <string>$(OC_APPLICATION_REV_DOMAIN).$(PRODUCT_NAME:rfc1034identifier)</string>
+ <key>CFBundleInfoDictionaryVersion</key>
+ <string>6.0</string>
+ <key>CFBundleName</key>
+ <string>$(PRODUCT_NAME)</string>
+ <key>CFBundlePackageType</key>
+ <string>XPC!</string>
+ <key>CFBundleShortVersionString</key>
+ <string>1.0</string>
+ <key>CFBundleSignature</key>
+ <string>????</string>
+ <key>CFBundleVersion</key>
+ <string>1</string>
+ <key>LSMinimumSystemVersion</key>
+ <string>$(MACOSX_DEPLOYMENT_TARGET)</string>
+ <key>LSUIElement</key>
+ <true/>
+ <key>NSExtension</key>
+ <dict>
+ <key>NSExtensionAttributes</key>
+ <dict/>
+ <key>NSExtensionPointIdentifier</key>
+ <string>com.apple.FinderSync</string>
+ <key>NSExtensionPrincipalClass</key>
+ <string>FinderSync</string>
+ </dict>
+ <key>NSPrincipalClass</key>
+ <string>NSApplication</string>
+</dict>
+</plist>
diff --git a/shell_integration/MacOSX/OwnCloudFinderSync/OwnCloudFinderSync.xcodeproj/project.pbxproj b/shell_integration/MacOSX/OwnCloudFinderSync/OwnCloudFinderSync.xcodeproj/project.pbxproj
new file mode 100644
index 0000000..61aead9
--- /dev/null
+++ b/shell_integration/MacOSX/OwnCloudFinderSync/OwnCloudFinderSync.xcodeproj/project.pbxproj
@@ -0,0 +1,534 @@
+// !$*UTF8*$!
+{
+ archiveVersion = 1;
+ classes = {
+ };
+ objectVersion = 46;
+ objects = {
+
+/* Begin PBXBuildFile section */
+ C2B573BA1B1CD91E00303B36 /* main.m in Sources */ = {isa = PBXBuildFile; fileRef = C2B573B91B1CD91E00303B36 /* main.m */; };
+ C2B573D21B1CD94B00303B36 /* main.m in Resources */ = {isa = PBXBuildFile; fileRef = C2B573B91B1CD91E00303B36 /* main.m */; };
+ C2B573DE1B1CD9CE00303B36 /* FinderSync.m in Sources */ = {isa = PBXBuildFile; fileRef = C2B573DD1B1CD9CE00303B36 /* FinderSync.m */; };
+ C2B573E21B1CD9CE00303B36 /* FinderSyncExt.appex in Embed App Extensions */ = {isa = PBXBuildFile; fileRef = C2B573D71B1CD9CE00303B36 /* FinderSyncExt.appex */; settings = {ATTRIBUTES = (RemoveHeadersOnCopy, ); }; };
+ C2B573E91B1DA1FB00303B36 /* SyncClientProxy.m in Sources */ = {isa = PBXBuildFile; fileRef = C2B573E81B1DA1FB00303B36 /* SyncClientProxy.m */; };
+ C2B573F21B1DAD6400303B36 /* error_swm.iconset in Resources */ = {isa = PBXBuildFile; fileRef = C2B573EA1B1DAD6400303B36 /* error_swm.iconset */; };
+ C2B573F31B1DAD6400303B36 /* error.iconset in Resources */ = {isa = PBXBuildFile; fileRef = C2B573EB1B1DAD6400303B36 /* error.iconset */; };
+ C2B573F41B1DAD6400303B36 /* ok_swm.iconset in Resources */ = {isa = PBXBuildFile; fileRef = C2B573EC1B1DAD6400303B36 /* ok_swm.iconset */; };
+ C2B573F51B1DAD6400303B36 /* ok.iconset in Resources */ = {isa = PBXBuildFile; fileRef = C2B573ED1B1DAD6400303B36 /* ok.iconset */; };
+ C2B573F61B1DAD6400303B36 /* sync_swm.iconset in Resources */ = {isa = PBXBuildFile; fileRef = C2B573EE1B1DAD6400303B36 /* sync_swm.iconset */; };
+ C2B573F71B1DAD6400303B36 /* sync.iconset in Resources */ = {isa = PBXBuildFile; fileRef = C2B573EF1B1DAD6400303B36 /* sync.iconset */; };
+ C2B573F81B1DAD6400303B36 /* warning_swm.iconset in Resources */ = {isa = PBXBuildFile; fileRef = C2B573F01B1DAD6400303B36 /* warning_swm.iconset */; };
+ C2B573F91B1DAD6400303B36 /* warning.iconset in Resources */ = {isa = PBXBuildFile; fileRef = C2B573F11B1DAD6400303B36 /* warning.iconset */; };
+/* End PBXBuildFile section */
+
+/* Begin PBXContainerItemProxy section */
+ C2B573DF1B1CD9CE00303B36 /* PBXContainerItemProxy */ = {
+ isa = PBXContainerItemProxy;
+ containerPortal = C2B573951B1CD88000303B36 /* Project object */;
+ proxyType = 1;
+ remoteGlobalIDString = C2B573D61B1CD9CE00303B36;
+ remoteInfo = FinderSyncExt;
+ };
+/* End PBXContainerItemProxy section */
+
+/* Begin PBXCopyFilesBuildPhase section */
+ C2B573E11B1CD9CE00303B36 /* Embed App Extensions */ = {
+ isa = PBXCopyFilesBuildPhase;
+ buildActionMask = 2147483647;
+ dstPath = "";
+ dstSubfolderSpec = 13;
+ files = (
+ C2B573E21B1CD9CE00303B36 /* FinderSyncExt.appex in Embed App Extensions */,
+ );
+ name = "Embed App Extensions";
+ runOnlyForDeploymentPostprocessing = 0;
+ };
+/* End PBXCopyFilesBuildPhase section */
+
+/* Begin PBXFileReference section */
+ C2B573B11B1CD91E00303B36 /* desktopclient.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = desktopclient.app; sourceTree = BUILT_PRODUCTS_DIR; };
+ C2B573B51B1CD91E00303B36 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = "<group>"; };
+ C2B573B91B1CD91E00303B36 /* main.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = main.m; sourceTree = "<group>"; };
+ C2B573D71B1CD9CE00303B36 /* FinderSyncExt.appex */ = {isa = PBXFileReference; explicitFileType = "wrapper.app-extension"; includeInIndex = 0; path = FinderSyncExt.appex; sourceTree = BUILT_PRODUCTS_DIR; };
+ C2B573DA1B1CD9CE00303B36 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = "<group>"; };
+ C2B573DB1B1CD9CE00303B36 /* FinderSyncExt.entitlements */ = {isa = PBXFileReference; lastKnownFileType = text.xml; path = FinderSyncExt.entitlements; sourceTree = "<group>"; };
+ C2B573DC1B1CD9CE00303B36 /* FinderSync.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = FinderSync.h; sourceTree = "<group>"; };
+ C2B573DD1B1CD9CE00303B36 /* FinderSync.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = FinderSync.m; sourceTree = "<group>"; };
+ C2B573E71B1DA1FB00303B36 /* SyncClientProxy.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SyncClientProxy.h; sourceTree = "<group>"; };
+ C2B573E81B1DA1FB00303B36 /* SyncClientProxy.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = SyncClientProxy.m; sourceTree = "<group>"; };
+ C2B573EA1B1DAD6400303B36 /* error_swm.iconset */ = {isa = PBXFileReference; lastKnownFileType = folder.iconset; name = error_swm.iconset; path = /Users/joce/dev/client/shell_integration/MacOSX/OwnCloudFinder/FinderSyncExt/../../../icons/nopadding/error_swm.iconset; sourceTree = "<absolute>"; };
+ C2B573EB1B1DAD6400303B36 /* error.iconset */ = {isa = PBXFileReference; lastKnownFileType = folder.iconset; name = error.iconset; path = /Users/joce/dev/client/shell_integration/MacOSX/OwnCloudFinder/FinderSyncExt/../../../icons/nopadding/error.iconset; sourceTree = "<absolute>"; };
+ C2B573EC1B1DAD6400303B36 /* ok_swm.iconset */ = {isa = PBXFileReference; lastKnownFileType = folder.iconset; name = ok_swm.iconset; path = /Users/joce/dev/client/shell_integration/MacOSX/OwnCloudFinder/FinderSyncExt/../../../icons/nopadding/ok_swm.iconset; sourceTree = "<absolute>"; };
+ C2B573ED1B1DAD6400303B36 /* ok.iconset */ = {isa = PBXFileReference; lastKnownFileType = folder.iconset; name = ok.iconset; path = /Users/joce/dev/client/shell_integration/MacOSX/OwnCloudFinder/FinderSyncExt/../../../icons/nopadding/ok.iconset; sourceTree = "<absolute>"; };
+ C2B573EE1B1DAD6400303B36 /* sync_swm.iconset */ = {isa = PBXFileReference; lastKnownFileType = folder.iconset; name = sync_swm.iconset; path = /Users/joce/dev/client/shell_integration/MacOSX/OwnCloudFinder/FinderSyncExt/../../../icons/nopadding/sync_swm.iconset; sourceTree = "<absolute>"; };
+ C2B573EF1B1DAD6400303B36 /* sync.iconset */ = {isa = PBXFileReference; lastKnownFileType = folder.iconset; name = sync.iconset; path = /Users/joce/dev/client/shell_integration/MacOSX/OwnCloudFinder/FinderSyncExt/../../../icons/nopadding/sync.iconset; sourceTree = "<absolute>"; };
+ C2B573F01B1DAD6400303B36 /* warning_swm.iconset */ = {isa = PBXFileReference; lastKnownFileType = folder.iconset; name = warning_swm.iconset; path = /Users/joce/dev/client/shell_integration/MacOSX/OwnCloudFinder/FinderSyncExt/../../../icons/nopadding/warning_swm.iconset; sourceTree = "<absolute>"; };
+ C2B573F11B1DAD6400303B36 /* warning.iconset */ = {isa = PBXFileReference; lastKnownFileType = folder.iconset; name = warning.iconset; path = /Users/joce/dev/client/shell_integration/MacOSX/OwnCloudFinder/FinderSyncExt/../../../icons/nopadding/warning.iconset; sourceTree = "<absolute>"; };
+/* End PBXFileReference section */
+
+/* Begin PBXFrameworksBuildPhase section */
+ C2B573AE1B1CD91E00303B36 /* Frameworks */ = {
+ isa = PBXFrameworksBuildPhase;
+ buildActionMask = 2147483647;
+ files = (
+ );
+ runOnlyForDeploymentPostprocessing = 0;
+ };
+ C2B573D41B1CD9CE00303B36 /* Frameworks */ = {
+ isa = PBXFrameworksBuildPhase;
+ buildActionMask = 2147483647;
+ files = (
+ );
+ runOnlyForDeploymentPostprocessing = 0;
+ };
+/* End PBXFrameworksBuildPhase section */
+
+/* Begin PBXGroup section */
+ C2B573941B1CD88000303B36 = {
+ isa = PBXGroup;
+ children = (
+ C2B573E61B1DA1FB00303B36 /* common */,
+ C2B573B31B1CD91E00303B36 /* desktopclient */,
+ C2B573D81B1CD9CE00303B36 /* FinderSyncExt */,
+ C2B573B21B1CD91E00303B36 /* Products */,
+ );
+ sourceTree = "<group>";
+ };
+ C2B573B21B1CD91E00303B36 /* Products */ = {
+ isa = PBXGroup;
+ children = (
+ C2B573B11B1CD91E00303B36 /* desktopclient.app */,
+ C2B573D71B1CD9CE00303B36 /* FinderSyncExt.appex */,
+ );
+ name = Products;
+ sourceTree = "<group>";
+ };
+ C2B573B31B1CD91E00303B36 /* desktopclient */ = {
+ isa = PBXGroup;
+ children = (
+ C2B573B41B1CD91E00303B36 /* Supporting Files */,
+ );
+ path = desktopclient;
+ sourceTree = "<group>";
+ };
+ C2B573B41B1CD91E00303B36 /* Supporting Files */ = {
+ isa = PBXGroup;
+ children = (
+ C2B573B51B1CD91E00303B36 /* Info.plist */,
+ C2B573B91B1CD91E00303B36 /* main.m */,
+ );
+ name = "Supporting Files";
+ sourceTree = "<group>";
+ };
+ C2B573D81B1CD9CE00303B36 /* FinderSyncExt */ = {
+ isa = PBXGroup;
+ children = (
+ C2B573DC1B1CD9CE00303B36 /* FinderSync.h */,
+ C2B573DD1B1CD9CE00303B36 /* FinderSync.m */,
+ C2B573D91B1CD9CE00303B36 /* Supporting Files */,
+ );
+ path = FinderSyncExt;
+ sourceTree = "<group>";
+ };
+ C2B573D91B1CD9CE00303B36 /* Supporting Files */ = {
+ isa = PBXGroup;
+ children = (
+ C2B573EA1B1DAD6400303B36 /* error_swm.iconset */,
+ C2B573EB1B1DAD6400303B36 /* error.iconset */,
+ C2B573EC1B1DAD6400303B36 /* ok_swm.iconset */,
+ C2B573ED1B1DAD6400303B36 /* ok.iconset */,
+ C2B573EE1B1DAD6400303B36 /* sync_swm.iconset */,
+ C2B573EF1B1DAD6400303B36 /* sync.iconset */,
+ C2B573F01B1DAD6400303B36 /* warning_swm.iconset */,
+ C2B573F11B1DAD6400303B36 /* warning.iconset */,
+ C2B573DA1B1CD9CE00303B36 /* Info.plist */,
+ C2B573DB1B1CD9CE00303B36 /* FinderSyncExt.entitlements */,
+ );
+ name = "Supporting Files";
+ sourceTree = "<group>";
+ };
+ C2B573E61B1DA1FB00303B36 /* common */ = {
+ isa = PBXGroup;
+ children = (
+ C2B573E71B1DA1FB00303B36 /* SyncClientProxy.h */,
+ C2B573E81B1DA1FB00303B36 /* SyncClientProxy.m */,
+ );
+ name = common;
+ path = ../common;
+ sourceTree = "<group>";
+ };
+/* End PBXGroup section */
+
+/* Begin PBXNativeTarget section */
+ C2B573B01B1CD91E00303B36 /* desktopclient */ = {
+ isa = PBXNativeTarget;
+ buildConfigurationList = C2B573CC1B1CD91E00303B36 /* Build configuration list for PBXNativeTarget "desktopclient" */;
+ buildPhases = (
+ C2B573AD1B1CD91E00303B36 /* Sources */,
+ C2B573AE1B1CD91E00303B36 /* Frameworks */,
+ C2B573AF1B1CD91E00303B36 /* Resources */,
+ C2B573E11B1CD9CE00303B36 /* Embed App Extensions */,
+ );
+ buildRules = (
+ );
+ dependencies = (
+ C2B573E01B1CD9CE00303B36 /* PBXTargetDependency */,
+ );
+ name = desktopclient;
+ productName = desktopclient;
+ productReference = C2B573B11B1CD91E00303B36 /* desktopclient.app */;
+ productType = "com.apple.product-type.application";
+ };
+ C2B573D61B1CD9CE00303B36 /* FinderSyncExt */ = {
+ isa = PBXNativeTarget;
+ buildConfigurationList = C2B573E31B1CD9CE00303B36 /* Build configuration list for PBXNativeTarget "FinderSyncExt" */;
+ buildPhases = (
+ C2B573D31B1CD9CE00303B36 /* Sources */,
+ C2B573D41B1CD9CE00303B36 /* Frameworks */,
+ C2B573D51B1CD9CE00303B36 /* Resources */,
+ );
+ buildRules = (
+ );
+ dependencies = (
+ );
+ name = FinderSyncExt;
+ productName = FinderSyncExt;
+ productReference = C2B573D71B1CD9CE00303B36 /* FinderSyncExt.appex */;
+ productType = "com.apple.product-type.app-extension";
+ };
+/* End PBXNativeTarget section */
+
+/* Begin PBXProject section */
+ C2B573951B1CD88000303B36 /* Project object */ = {
+ isa = PBXProject;
+ attributes = {
+ LastUpgradeCheck = 0630;
+ TargetAttributes = {
+ C2B573B01B1CD91E00303B36 = {
+ CreatedOnToolsVersion = 6.3.1;
+ DevelopmentTeam = 9B5WD74GWJ;
+ };
+ C2B573D61B1CD9CE00303B36 = {
+ CreatedOnToolsVersion = 6.3.1;
+ DevelopmentTeam = 9B5WD74GWJ;
+ SystemCapabilities = {
+ com.apple.ApplicationGroups.Mac = {
+ enabled = 1;
+ };
+ };
+ };
+ };
+ };
+ buildConfigurationList = C2B573981B1CD88000303B36 /* Build configuration list for PBXProject "OwnCloudFinderSync" */;
+ compatibilityVersion = "Xcode 3.2";
+ developmentRegion = English;
+ hasScannedForEncodings = 0;
+ knownRegions = (
+ en,
+ Base,
+ );
+ mainGroup = C2B573941B1CD88000303B36;
+ productRefGroup = C2B573B21B1CD91E00303B36 /* Products */;
+ projectDirPath = "";
+ projectRoot = "";
+ targets = (
+ C2B573B01B1CD91E00303B36 /* desktopclient */,
+ C2B573D61B1CD9CE00303B36 /* FinderSyncExt */,
+ );
+ };
+/* End PBXProject section */
+
+/* Begin PBXResourcesBuildPhase section */
+ C2B573AF1B1CD91E00303B36 /* Resources */ = {
+ isa = PBXResourcesBuildPhase;
+ buildActionMask = 2147483647;
+ files = (
+ C2B573D21B1CD94B00303B36 /* main.m in Resources */,
+ );
+ runOnlyForDeploymentPostprocessing = 0;
+ };
+ C2B573D51B1CD9CE00303B36 /* Resources */ = {
+ isa = PBXResourcesBuildPhase;
+ buildActionMask = 2147483647;
+ files = (
+ C2B573F91B1DAD6400303B36 /* warning.iconset in Resources */,
+ C2B573F31B1DAD6400303B36 /* error.iconset in Resources */,
+ C2B573F81B1DAD6400303B36 /* warning_swm.iconset in Resources */,
+ C2B573F21B1DAD6400303B36 /* error_swm.iconset in Resources */,
+ C2B573F71B1DAD6400303B36 /* sync.iconset in Resources */,
+ C2B573F41B1DAD6400303B36 /* ok_swm.iconset in Resources */,
+ C2B573F51B1DAD6400303B36 /* ok.iconset in Resources */,
+ C2B573F61B1DAD6400303B36 /* sync_swm.iconset in Resources */,
+ );
+ runOnlyForDeploymentPostprocessing = 0;
+ };
+/* End PBXResourcesBuildPhase section */
+
+/* Begin PBXSourcesBuildPhase section */
+ C2B573AD1B1CD91E00303B36 /* Sources */ = {
+ isa = PBXSourcesBuildPhase;
+ buildActionMask = 2147483647;
+ files = (
+ C2B573BA1B1CD91E00303B36 /* main.m in Sources */,
+ );
+ runOnlyForDeploymentPostprocessing = 0;
+ };
+ C2B573D31B1CD9CE00303B36 /* Sources */ = {
+ isa = PBXSourcesBuildPhase;
+ buildActionMask = 2147483647;
+ files = (
+ C2B573E91B1DA1FB00303B36 /* SyncClientProxy.m in Sources */,
+ C2B573DE1B1CD9CE00303B36 /* FinderSync.m in Sources */,
+ );
+ runOnlyForDeploymentPostprocessing = 0;
+ };
+/* End PBXSourcesBuildPhase section */
+
+/* Begin PBXTargetDependency section */
+ C2B573E01B1CD9CE00303B36 /* PBXTargetDependency */ = {
+ isa = PBXTargetDependency;
+ target = C2B573D61B1CD9CE00303B36 /* FinderSyncExt */;
+ targetProxy = C2B573DF1B1CD9CE00303B36 /* PBXContainerItemProxy */;
+ };
+/* End PBXTargetDependency section */
+
+/* Begin XCBuildConfiguration section */
+ C2B573991B1CD88000303B36 /* Debug */ = {
+ isa = XCBuildConfiguration;
+ buildSettings = {
+ };
+ name = Debug;
+ };
+ C2B5739A1B1CD88000303B36 /* Release */ = {
+ isa = XCBuildConfiguration;
+ buildSettings = {
+ };
+ name = Release;
+ };
+ C2B573CD1B1CD91E00303B36 /* Debug */ = {
+ isa = XCBuildConfiguration;
+ buildSettings = {
+ ALWAYS_SEARCH_USER_PATHS = NO;
+ ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
+ CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x";
+ CLANG_CXX_LIBRARY = "libc++";
+ CLANG_ENABLE_MODULES = YES;
+ CLANG_ENABLE_OBJC_ARC = YES;
+ CLANG_WARN_BOOL_CONVERSION = YES;
+ CLANG_WARN_CONSTANT_CONVERSION = YES;
+ CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR;
+ CLANG_WARN_EMPTY_BODY = YES;
+ CLANG_WARN_ENUM_CONVERSION = YES;
+ CLANG_WARN_INT_CONVERSION = YES;
+ CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR;
+ CLANG_WARN_UNREACHABLE_CODE = YES;
+ CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
+ CODE_SIGN_IDENTITY = "Developer ID Application";
+ "CODE_SIGN_IDENTITY[sdk=macosx*]" = "Mac Developer";
+ COMBINE_HIDPI_IMAGES = YES;
+ COPY_PHASE_STRIP = NO;
+ DEBUG_INFORMATION_FORMAT = dwarf;
+ ENABLE_STRICT_OBJC_MSGSEND = YES;
+ GCC_C_LANGUAGE_STANDARD = gnu99;
+ GCC_DYNAMIC_NO_PIC = NO;
+ GCC_NO_COMMON_BLOCKS = YES;
+ GCC_OPTIMIZATION_LEVEL = 0;
+ GCC_PREPROCESSOR_DEFINITIONS = (
+ "DEBUG=1",
+ "$(inherited)",
+ );
+ GCC_SYMBOLS_PRIVATE_EXTERN = NO;
+ GCC_WARN_64_TO_32_BIT_CONVERSION = YES;
+ GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR;
+ GCC_WARN_UNDECLARED_SELECTOR = YES;
+ GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;
+ GCC_WARN_UNUSED_FUNCTION = YES;
+ GCC_WARN_UNUSED_VARIABLE = YES;
+ INFOPLIST_FILE = desktopclient/Info.plist;
+ LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/../Frameworks";
+ MACOSX_DEPLOYMENT_TARGET = 10.10;
+ MTL_ENABLE_DEBUG_INFO = YES;
+ ONLY_ACTIVE_ARCH = YES;
+ PRODUCT_NAME = "$(TARGET_NAME)";
+ PROVISIONING_PROFILE = "";
+ SDKROOT = macosx;
+ };
+ name = Debug;
+ };
+ C2B573CE1B1CD91E00303B36 /* Release */ = {
+ isa = XCBuildConfiguration;
+ buildSettings = {
+ ALWAYS_SEARCH_USER_PATHS = NO;
+ ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
+ CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x";
+ CLANG_CXX_LIBRARY = "libc++";
+ CLANG_ENABLE_MODULES = YES;
+ CLANG_ENABLE_OBJC_ARC = YES;
+ CLANG_WARN_BOOL_CONVERSION = YES;
+ CLANG_WARN_CONSTANT_CONVERSION = YES;
+ CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR;
+ CLANG_WARN_EMPTY_BODY = YES;
+ CLANG_WARN_ENUM_CONVERSION = YES;
+ CLANG_WARN_INT_CONVERSION = YES;
+ CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR;
+ CLANG_WARN_UNREACHABLE_CODE = YES;
+ CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
+ CODE_SIGN_IDENTITY = "Developer ID Application";
+ "CODE_SIGN_IDENTITY[sdk=macosx*]" = "Mac Developer";
+ COMBINE_HIDPI_IMAGES = YES;
+ COPY_PHASE_STRIP = NO;
+ DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym";
+ ENABLE_NS_ASSERTIONS = NO;
+ ENABLE_STRICT_OBJC_MSGSEND = YES;
+ GCC_C_LANGUAGE_STANDARD = gnu99;
+ GCC_NO_COMMON_BLOCKS = YES;
+ GCC_WARN_64_TO_32_BIT_CONVERSION = YES;
+ GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR;
+ GCC_WARN_UNDECLARED_SELECTOR = YES;
+ GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;
+ GCC_WARN_UNUSED_FUNCTION = YES;
+ GCC_WARN_UNUSED_VARIABLE = YES;
+ INFOPLIST_FILE = desktopclient/Info.plist;
+ LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/../Frameworks";
+ MACOSX_DEPLOYMENT_TARGET = 10.10;
+ MTL_ENABLE_DEBUG_INFO = NO;
+ PRODUCT_NAME = "$(TARGET_NAME)";
+ PROVISIONING_PROFILE = "";
+ SDKROOT = macosx;
+ };
+ name = Release;
+ };
+ C2B573E41B1CD9CE00303B36 /* Debug */ = {
+ isa = XCBuildConfiguration;
+ buildSettings = {
+ ALWAYS_SEARCH_USER_PATHS = NO;
+ CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x";
+ CLANG_CXX_LIBRARY = "libc++";
+ CLANG_ENABLE_MODULES = YES;
+ CLANG_ENABLE_OBJC_ARC = YES;
+ CLANG_WARN_BOOL_CONVERSION = YES;
+ CLANG_WARN_CONSTANT_CONVERSION = YES;
+ CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR;
+ CLANG_WARN_EMPTY_BODY = YES;
+ CLANG_WARN_ENUM_CONVERSION = YES;
+ CLANG_WARN_INT_CONVERSION = YES;
+ CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR;
+ CLANG_WARN_UNREACHABLE_CODE = YES;
+ CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
+ CODE_SIGN_ENTITLEMENTS = FinderSyncExt/FinderSyncExt.entitlements;
+ CODE_SIGN_IDENTITY = "Developer ID Application";
+ "CODE_SIGN_IDENTITY[sdk=macosx*]" = "Mac Developer";
+ COMBINE_HIDPI_IMAGES = YES;
+ COPY_PHASE_STRIP = NO;
+ DEBUG_INFORMATION_FORMAT = dwarf;
+ ENABLE_STRICT_OBJC_MSGSEND = YES;
+ GCC_C_LANGUAGE_STANDARD = gnu99;
+ GCC_DYNAMIC_NO_PIC = NO;
+ GCC_NO_COMMON_BLOCKS = YES;
+ GCC_OPTIMIZATION_LEVEL = 0;
+ GCC_PREPROCESSOR_DEFINITIONS = (
+ "DEBUG=1",
+ "$(inherited)",
+ );
+ GCC_SYMBOLS_PRIVATE_EXTERN = NO;
+ GCC_WARN_64_TO_32_BIT_CONVERSION = YES;
+ GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR;
+ GCC_WARN_UNDECLARED_SELECTOR = YES;
+ GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;
+ GCC_WARN_UNUSED_FUNCTION = YES;
+ GCC_WARN_UNUSED_VARIABLE = YES;
+ INFOPLIST_FILE = FinderSyncExt/Info.plist;
+ LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/../Frameworks @executable_path/../../../../Frameworks";
+ MACOSX_DEPLOYMENT_TARGET = 10.10;
+ MTL_ENABLE_DEBUG_INFO = YES;
+ OC_APPLICATION_NAME = ownCloud;
+ OC_APPLICATION_REV_DOMAIN = com.owncloud.desktopclient;
+ ONLY_ACTIVE_ARCH = YES;
+ PRODUCT_NAME = "$(TARGET_NAME)";
+ PROVISIONING_PROFILE = "";
+ SDKROOT = macosx;
+ SKIP_INSTALL = YES;
+ };
+ name = Debug;
+ };
+ C2B573E51B1CD9CE00303B36 /* Release */ = {
+ isa = XCBuildConfiguration;
+ buildSettings = {
+ ALWAYS_SEARCH_USER_PATHS = NO;
+ CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x";
+ CLANG_CXX_LIBRARY = "libc++";
+ CLANG_ENABLE_MODULES = YES;
+ CLANG_ENABLE_OBJC_ARC = YES;
+ CLANG_WARN_BOOL_CONVERSION = YES;
+ CLANG_WARN_CONSTANT_CONVERSION = YES;
+ CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR;
+ CLANG_WARN_EMPTY_BODY = YES;
+ CLANG_WARN_ENUM_CONVERSION = YES;
+ CLANG_WARN_INT_CONVERSION = YES;
+ CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR;
+ CLANG_WARN_UNREACHABLE_CODE = YES;
+ CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
+ CODE_SIGN_ENTITLEMENTS = FinderSyncExt/FinderSyncExt.entitlements;
+ CODE_SIGN_IDENTITY = "Developer ID Application";
+ "CODE_SIGN_IDENTITY[sdk=macosx*]" = "Mac Developer";
+ COMBINE_HIDPI_IMAGES = YES;
+ COPY_PHASE_STRIP = NO;
+ DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym";
+ ENABLE_NS_ASSERTIONS = NO;
+ ENABLE_STRICT_OBJC_MSGSEND = YES;
+ GCC_C_LANGUAGE_STANDARD = gnu99;
+ GCC_NO_COMMON_BLOCKS = YES;
+ GCC_WARN_64_TO_32_BIT_CONVERSION = YES;
+ GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR;
+ GCC_WARN_UNDECLARED_SELECTOR = YES;
+ GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;
+ GCC_WARN_UNUSED_FUNCTION = YES;
+ GCC_WARN_UNUSED_VARIABLE = YES;
+ INFOPLIST_FILE = FinderSyncExt/Info.plist;
+ LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/../Frameworks @executable_path/../../../../Frameworks";
+ MACOSX_DEPLOYMENT_TARGET = 10.10;
+ MTL_ENABLE_DEBUG_INFO = NO;
+ OC_APPLICATION_NAME = ownCloud;
+ OC_APPLICATION_REV_DOMAIN = com.owncloud.desktopclient;
+ PRODUCT_NAME = "$(TARGET_NAME)";
+ PROVISIONING_PROFILE = "";
+ SDKROOT = macosx;
+ SKIP_INSTALL = YES;
+ };
+ name = Release;
+ };
+/* End XCBuildConfiguration section */
+
+/* Begin XCConfigurationList section */
+ C2B573981B1CD88000303B36 /* Build configuration list for PBXProject "OwnCloudFinderSync" */ = {
+ isa = XCConfigurationList;
+ buildConfigurations = (
+ C2B573991B1CD88000303B36 /* Debug */,
+ C2B5739A1B1CD88000303B36 /* Release */,
+ );
+ defaultConfigurationIsVisible = 0;
+ defaultConfigurationName = Release;
+ };
+ C2B573CC1B1CD91E00303B36 /* Build configuration list for PBXNativeTarget "desktopclient" */ = {
+ isa = XCConfigurationList;
+ buildConfigurations = (
+ C2B573CD1B1CD91E00303B36 /* Debug */,
+ C2B573CE1B1CD91E00303B36 /* Release */,
+ );
+ defaultConfigurationIsVisible = 0;
+ defaultConfigurationName = Release;
+ };
+ C2B573E31B1CD9CE00303B36 /* Build configuration list for PBXNativeTarget "FinderSyncExt" */ = {
+ isa = XCConfigurationList;
+ buildConfigurations = (
+ C2B573E41B1CD9CE00303B36 /* Debug */,
+ C2B573E51B1CD9CE00303B36 /* Release */,
+ );
+ defaultConfigurationIsVisible = 0;
+ defaultConfigurationName = Release;
+ };
+/* End XCConfigurationList section */
+ };
+ rootObject = C2B573951B1CD88000303B36 /* Project object */;
+}
diff --git a/shell_integration/MacOSX/OwnCloudFinderSync/OwnCloudFinderSync.xcodeproj/xcshareddata/xcschemes/FinderSyncExt.xcscheme b/shell_integration/MacOSX/OwnCloudFinderSync/OwnCloudFinderSync.xcodeproj/xcshareddata/xcschemes/FinderSyncExt.xcscheme
new file mode 100644
index 0000000..785a0da
--- /dev/null
+++ b/shell_integration/MacOSX/OwnCloudFinderSync/OwnCloudFinderSync.xcodeproj/xcshareddata/xcschemes/FinderSyncExt.xcscheme
@@ -0,0 +1,105 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<Scheme
+ LastUpgradeVersion = "0630"
+ wasCreatedForAppExtension = "YES"
+ version = "2.0">
+ <BuildAction
+ parallelizeBuildables = "YES"
+ buildImplicitDependencies = "YES">
+ <BuildActionEntries>
+ <BuildActionEntry
+ buildForTesting = "YES"
+ buildForRunning = "YES"
+ buildForProfiling = "YES"
+ buildForArchiving = "YES"
+ buildForAnalyzing = "YES">
+ <BuildableReference
+ BuildableIdentifier = "primary"
+ BlueprintIdentifier = "C2B573D61B1CD9CE00303B36"
+ BuildableName = "FinderSyncExt.appex"
+ BlueprintName = "FinderSyncExt"
+ ReferencedContainer = "container:OwnCloudFinderSync.xcodeproj">
+ </BuildableReference>
+ </BuildActionEntry>
+ <BuildActionEntry
+ buildForTesting = "YES"
+ buildForRunning = "YES"
+ buildForProfiling = "YES"
+ buildForArchiving = "YES"
+ buildForAnalyzing = "YES">
+ <BuildableReference
+ BuildableIdentifier = "primary"
+ BlueprintIdentifier = "C2B573B01B1CD91E00303B36"
+ BuildableName = "desktopclient.app"
+ BlueprintName = "desktopclient"
+ ReferencedContainer = "container:OwnCloudFinderSync.xcodeproj">
+ </BuildableReference>
+ </BuildActionEntry>
+ </BuildActionEntries>
+ </BuildAction>
+ <TestAction
+ selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB"
+ selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB"
+ shouldUseLaunchSchemeArgsEnv = "YES"
+ buildConfiguration = "Debug">
+ <Testables>
+ </Testables>
+ <MacroExpansion>
+ <BuildableReference
+ BuildableIdentifier = "primary"
+ BlueprintIdentifier = "C2B573D61B1CD9CE00303B36"
+ BuildableName = "FinderSyncExt.appex"
+ BlueprintName = "FinderSyncExt"
+ ReferencedContainer = "container:OwnCloudFinderSync.xcodeproj">
+ </BuildableReference>
+ </MacroExpansion>
+ </TestAction>
+ <LaunchAction
+ selectedDebuggerIdentifier = ""
+ selectedLauncherIdentifier = "Xcode.IDEFoundation.Launcher.PosixSpawn"
+ launchStyle = "0"
+ useCustomWorkingDirectory = "NO"
+ buildConfiguration = "Debug"
+ ignoresPersistentStateOnLaunch = "NO"
+ debugDocumentVersioning = "YES"
+ allowLocationSimulation = "YES"
+ launchAutomaticallySubstyle = "2">
+ <BuildableProductRunnable
+ runnableDebuggingMode = "0">
+ <BuildableReference
+ BuildableIdentifier = "primary"
+ BlueprintIdentifier = "C2B573B01B1CD91E00303B36"
+ BuildableName = "desktopclient.app"
+ BlueprintName = "desktopclient"
+ ReferencedContainer = "container:OwnCloudFinderSync.xcodeproj">
+ </BuildableReference>
+ </BuildableProductRunnable>
+ <AdditionalOptions>
+ </AdditionalOptions>
+ </LaunchAction>
+ <ProfileAction
+ shouldUseLaunchSchemeArgsEnv = "YES"
+ savedToolIdentifier = ""
+ useCustomWorkingDirectory = "NO"
+ buildConfiguration = "Release"
+ debugDocumentVersioning = "YES"
+ launchAutomaticallySubstyle = "2">
+ <BuildableProductRunnable
+ runnableDebuggingMode = "0">
+ <BuildableReference
+ BuildableIdentifier = "primary"
+ BlueprintIdentifier = "C2B573B01B1CD91E00303B36"
+ BuildableName = "desktopclient.app"
+ BlueprintName = "desktopclient"
+ ReferencedContainer = "container:OwnCloudFinderSync.xcodeproj">
+ </BuildableReference>
+ </BuildableProductRunnable>
+ </ProfileAction>
+ <AnalyzeAction
+ buildConfiguration = "Debug">
+ </AnalyzeAction>
+ <ArchiveAction
+ buildConfiguration = "Release"
+ revealArchiveInOrganizer = "YES">
+ </ArchiveAction>
+</Scheme>
diff --git a/shell_integration/MacOSX/OwnCloudFinderSync/desktopclient/Info.plist b/shell_integration/MacOSX/OwnCloudFinderSync/desktopclient/Info.plist
new file mode 100644
index 0000000..bbaa296
--- /dev/null
+++ b/shell_integration/MacOSX/OwnCloudFinderSync/desktopclient/Info.plist
@@ -0,0 +1,30 @@
+<?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>CFBundleDevelopmentRegion</key>
+ <string>en</string>
+ <key>CFBundleExecutable</key>
+ <string>$(EXECUTABLE_NAME)</string>
+ <key>CFBundleIconFile</key>
+ <string></string>
+ <key>CFBundleIdentifier</key>
+ <string>com.owncloud.$(PRODUCT_NAME:rfc1034identifier)</string>
+ <key>CFBundleInfoDictionaryVersion</key>
+ <string>6.0</string>
+ <key>CFBundleName</key>
+ <string>$(PRODUCT_NAME)</string>
+ <key>CFBundlePackageType</key>
+ <string>APPL</string>
+ <key>CFBundleShortVersionString</key>
+ <string>1.0</string>
+ <key>CFBundleSignature</key>
+ <string>????</string>
+ <key>CFBundleVersion</key>
+ <string>1</string>
+ <key>LSMinimumSystemVersion</key>
+ <string>$(MACOSX_DEPLOYMENT_TARGET)</string>
+ <key>NSPrincipalClass</key>
+ <string>NSApplication</string>
+</dict>
+</plist>
diff --git a/shell_integration/MacOSX/OwnCloudFinderSync/desktopclient/main.m b/shell_integration/MacOSX/OwnCloudFinderSync/desktopclient/main.m
new file mode 100644
index 0000000..6f580d2
--- /dev/null
+++ b/shell_integration/MacOSX/OwnCloudFinderSync/desktopclient/main.m
@@ -0,0 +1,16 @@
+//
+// main.m
+// desktopclient
+//
+// Created by Jocelyn Turcotte on 01/06/15.
+//
+//
+
+// This is fake application bundle with the same bundle ID as the real desktop client.
+// Xcode needs a wrapping application to allow the extension to be debugged.
+
+#import <Cocoa/Cocoa.h>
+
+int main(int argc, const char * argv[]) {
+ return NSApplicationMain(argc, argv);
+}
diff --git a/shell_integration/icons/nopadding/error.iconset/icon_32x32.png b/shell_integration/icons/nopadding/error.iconset/icon_32x32.png
new file mode 100644
index 0000000..9541677
Binary files /dev/null and b/shell_integration/icons/nopadding/error.iconset/icon_32x32.png differ
diff --git a/shell_integration/icons/nopadding/error_swm.iconset/icon_32x32.png b/shell_integration/icons/nopadding/error_swm.iconset/icon_32x32.png
new file mode 100644
index 0000000..4c91662
Binary files /dev/null and b/shell_integration/icons/nopadding/error_swm.iconset/icon_32x32.png differ
diff --git a/shell_integration/icons/nopadding/ok.iconset/icon_32x32.png b/shell_integration/icons/nopadding/ok.iconset/icon_32x32.png
new file mode 100644
index 0000000..5565e57
Binary files /dev/null and b/shell_integration/icons/nopadding/ok.iconset/icon_32x32.png differ
diff --git a/shell_integration/icons/nopadding/ok_swm.iconset/icon_32x32.png b/shell_integration/icons/nopadding/ok_swm.iconset/icon_32x32.png
new file mode 100644
index 0000000..f2cc4b9
Binary files /dev/null and b/shell_integration/icons/nopadding/ok_swm.iconset/icon_32x32.png differ
diff --git a/shell_integration/icons/nopadding/sync.iconset/icon_32x32.png b/shell_integration/icons/nopadding/sync.iconset/icon_32x32.png
new file mode 100644
index 0000000..7066c54
Binary files /dev/null and b/shell_integration/icons/nopadding/sync.iconset/icon_32x32.png differ
diff --git a/shell_integration/icons/nopadding/sync_swm.iconset/icon_32x32.png b/shell_integration/icons/nopadding/sync_swm.iconset/icon_32x32.png
new file mode 100644
index 0000000..e3c5db5
Binary files /dev/null and b/shell_integration/icons/nopadding/sync_swm.iconset/icon_32x32.png differ
diff --git a/shell_integration/icons/nopadding/warning.iconset/icon_32x32.png b/shell_integration/icons/nopadding/warning.iconset/icon_32x32.png
new file mode 100644
index 0000000..8766b93
Binary files /dev/null and b/shell_integration/icons/nopadding/warning.iconset/icon_32x32.png differ
diff --git a/shell_integration/icons/nopadding/warning_swm.iconset/icon_32x32.png b/shell_integration/icons/nopadding/warning_swm.iconset/icon_32x32.png
new file mode 100644
index 0000000..e25e383
Binary files /dev/null and b/shell_integration/icons/nopadding/warning_swm.iconset/icon_32x32.png differ
--
Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/pkg-owncloud/owncloud-client.git
More information about the Pkg-owncloud-commits
mailing list