From da7abf1030b4bfb56bd224ff33aa346fa6d64a5c Mon Sep 17 00:00:00 2001 From: Maarten Billemont Date: Mon, 19 May 2014 15:20:22 -0400 Subject: [PATCH] Try to fix login item code signing. --- .../xcshareddata/MasterPassword.xccheckout | 2 +- .../project.pbxproj | 51 +++++-------------- .../MPLoginAppDelegate.h | 13 ----- .../MPLoginAppDelegate.m | 39 -------------- ...asterPassword-Mac-LoginHelper.entitlements | 4 ++ .../en.lproj/InfoPlist.strings | 2 - .../MasterPassword-Mac-LoginHelper/main.m | 20 ++++++-- .../project.pbxproj | 3 ++ .../ObjC/Mac/MasterPassword.entitlements | 4 ++ 9 files changed, 42 insertions(+), 96 deletions(-) delete mode 100644 MasterPassword/ObjC/Mac/MasterPassword-Mac-LoginHelper/MasterPassword-Mac-LoginHelper/MPLoginAppDelegate.h delete mode 100644 MasterPassword/ObjC/Mac/MasterPassword-Mac-LoginHelper/MasterPassword-Mac-LoginHelper/MPLoginAppDelegate.m delete mode 100644 MasterPassword/ObjC/Mac/MasterPassword-Mac-LoginHelper/MasterPassword-Mac-LoginHelper/en.lproj/InfoPlist.strings diff --git a/MasterPassword.xcworkspace/xcshareddata/MasterPassword.xccheckout b/MasterPassword.xcworkspace/xcshareddata/MasterPassword.xccheckout index 164fbcdc..27ca984b 100644 --- a/MasterPassword.xcworkspace/xcshareddata/MasterPassword.xccheckout +++ b/MasterPassword.xcworkspace/xcshareddata/MasterPassword.xccheckout @@ -5,7 +5,7 @@ IDESourceControlProjectFavoriteDictionaryKey IDESourceControlProjectIdentifier - CC7A6AA5-3ED2-4398-826E-A6E4176230EF + 1DC75A27-0030-4493-ACE8-E1D49AB9A549 IDESourceControlProjectName MasterPassword IDESourceControlProjectOriginsDictionary diff --git a/MasterPassword/ObjC/Mac/MasterPassword-Mac-LoginHelper/MasterPassword-Mac-LoginHelper.xcodeproj/project.pbxproj b/MasterPassword/ObjC/Mac/MasterPassword-Mac-LoginHelper/MasterPassword-Mac-LoginHelper.xcodeproj/project.pbxproj index aa4b80bd..5d5c3c0b 100644 --- a/MasterPassword/ObjC/Mac/MasterPassword-Mac-LoginHelper/MasterPassword-Mac-LoginHelper.xcodeproj/project.pbxproj +++ b/MasterPassword/ObjC/Mac/MasterPassword-Mac-LoginHelper/MasterPassword-Mac-LoginHelper.xcodeproj/project.pbxproj @@ -7,10 +7,7 @@ objects = { /* Begin PBXBuildFile section */ - DA3B84581915577F00246EEA /* Crashlytics.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = DA3B84571915577F00246EEA /* Crashlytics.framework */; }; - DAD9B5CF176299B9001835F9 /* InfoPlist.strings in Resources */ = {isa = PBXBuildFile; fileRef = DAD9B5CD176299B9001835F9 /* InfoPlist.strings */; }; DAD9B5D1176299B9001835F9 /* main.m in Sources */ = {isa = PBXBuildFile; fileRef = DAD9B5D0176299B9001835F9 /* main.m */; }; - DAD9B5D8176299B9001835F9 /* MPLoginAppDelegate.m in Sources */ = {isa = PBXBuildFile; fileRef = DAD9B5D7176299B9001835F9 /* MPLoginAppDelegate.m */; }; DAD9B5EC1762AAA6001835F9 /* AppKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = DAD9B5EB1762AAA6001835F9 /* AppKit.framework */; }; /* End PBXBuildFile section */ @@ -18,10 +15,7 @@ DA3B84571915577F00246EEA /* Crashlytics.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Crashlytics.framework; path = ../../../../External/Mac/Crashlytics.framework; sourceTree = ""; }; DAD9B5C1176299B9001835F9 /* MasterPassword-Mac-LoginHelper.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = "MasterPassword-Mac-LoginHelper.app"; sourceTree = BUILT_PRODUCTS_DIR; }; DAD9B5CC176299B9001835F9 /* MasterPassword-Mac-LoginHelper-Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = "MasterPassword-Mac-LoginHelper-Info.plist"; sourceTree = ""; }; - DAD9B5CE176299B9001835F9 /* en */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = en; path = en.lproj/InfoPlist.strings; sourceTree = ""; }; DAD9B5D0176299B9001835F9 /* main.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = main.m; sourceTree = ""; }; - DAD9B5D6176299B9001835F9 /* MPLoginAppDelegate.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = MPLoginAppDelegate.h; sourceTree = ""; }; - DAD9B5D7176299B9001835F9 /* MPLoginAppDelegate.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = MPLoginAppDelegate.m; sourceTree = ""; }; DAD9B5EA17629C56001835F9 /* MasterPassword-Mac-LoginHelper.entitlements */ = {isa = PBXFileReference; lastKnownFileType = text.xml; path = "MasterPassword-Mac-LoginHelper.entitlements"; sourceTree = ""; }; DAD9B5EB1762AAA6001835F9 /* AppKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = AppKit.framework; path = System/Library/Frameworks/AppKit.framework; sourceTree = SDKROOT; }; /* End PBXFileReference section */ @@ -32,7 +26,6 @@ buildActionMask = 2147483647; files = ( DAD9B5EC1762AAA6001835F9 /* AppKit.framework in Frameworks */, - DA3B84581915577F00246EEA /* Crashlytics.framework in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -69,8 +62,6 @@ isa = PBXGroup; children = ( DAD9B5EA17629C56001835F9 /* MasterPassword-Mac-LoginHelper.entitlements */, - DAD9B5D6176299B9001835F9 /* MPLoginAppDelegate.h */, - DAD9B5D7176299B9001835F9 /* MPLoginAppDelegate.m */, DAD9B5CB176299B9001835F9 /* Supporting Files */, ); path = "MasterPassword-Mac-LoginHelper"; @@ -80,7 +71,6 @@ isa = PBXGroup; children = ( DAD9B5CC176299B9001835F9 /* MasterPassword-Mac-LoginHelper-Info.plist */, - DAD9B5CD176299B9001835F9 /* InfoPlist.strings */, DAD9B5D0176299B9001835F9 /* main.m */, ); name = "Supporting Files"; @@ -115,6 +105,16 @@ CLASSPREFIX = MP; LastUpgradeCheck = 0510; ORGANIZATIONNAME = "Maarten Billemont"; + TargetAttributes = { + DAD9B5C0176299B9001835F9 = { + DevelopmentTeam = HL3Q45LX9N; + SystemCapabilities = { + com.apple.Sandbox = { + enabled = 1; + }; + }; + }; + }; }; buildConfigurationList = DAD9B5BC176299B9001835F9 /* Build configuration list for PBXProject "MasterPassword-Mac-LoginHelper" */; compatibilityVersion = "Xcode 3.2"; @@ -138,7 +138,6 @@ isa = PBXResourcesBuildPhase; buildActionMask = 2147483647; files = ( - DAD9B5CF176299B9001835F9 /* InfoPlist.strings in Resources */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -150,23 +149,11 @@ buildActionMask = 2147483647; files = ( DAD9B5D1176299B9001835F9 /* main.m in Sources */, - DAD9B5D8176299B9001835F9 /* MPLoginAppDelegate.m in Sources */, ); runOnlyForDeploymentPostprocessing = 0; }; /* End PBXSourcesBuildPhase section */ -/* Begin PBXVariantGroup section */ - DAD9B5CD176299B9001835F9 /* InfoPlist.strings */ = { - isa = PBXVariantGroup; - children = ( - DAD9B5CE176299B9001835F9 /* en */, - ); - name = InfoPlist.strings; - sourceTree = ""; - }; -/* End PBXVariantGroup section */ - /* Begin XCBuildConfiguration section */ DA3B845A1916AC5100246EEA /* AppStore-Mac */ = { isa = XCBuildConfiguration; @@ -219,12 +206,8 @@ isa = XCBuildConfiguration; buildSettings = { CODE_SIGN_ENTITLEMENTS = "MasterPassword-Mac-LoginHelper/MasterPassword-Mac-LoginHelper.entitlements"; - CODE_SIGN_IDENTITY = "3rd Party Mac Developer Application: Maarten Billemont (HL3Q45LX9N)"; + CODE_SIGN_IDENTITY = "3rd Party Mac Developer Application"; COMBINE_HIDPI_IMAGES = YES; - FRAMEWORK_SEARCH_PATHS = ( - "$(inherited)", - /Users/lhunath/Documents/workspace/lyndir/MasterPassword/External/Mac, - ); INFOPLIST_FILE = "$(SRCROOT)/MasterPassword-Mac-LoginHelper/MasterPassword-Mac-LoginHelper-Info.plist"; }; name = "AppStore-Mac"; @@ -334,12 +317,8 @@ isa = XCBuildConfiguration; buildSettings = { CODE_SIGN_ENTITLEMENTS = "MasterPassword-Mac-LoginHelper/MasterPassword-Mac-LoginHelper.entitlements"; - CODE_SIGN_IDENTITY = "Mac Developer: Maarten Billemont (DWGU95U4ZD)"; + CODE_SIGN_IDENTITY = "Mac Developer"; COMBINE_HIDPI_IMAGES = YES; - FRAMEWORK_SEARCH_PATHS = ( - "$(inherited)", - /Users/lhunath/Documents/workspace/lyndir/MasterPassword/External/Mac, - ); INFOPLIST_FILE = "$(SRCROOT)/MasterPassword-Mac-LoginHelper/MasterPassword-Mac-LoginHelper-Info.plist"; }; name = "Debug-Mac"; @@ -348,12 +327,8 @@ isa = XCBuildConfiguration; buildSettings = { CODE_SIGN_ENTITLEMENTS = "MasterPassword-Mac-LoginHelper/MasterPassword-Mac-LoginHelper.entitlements"; - CODE_SIGN_IDENTITY = "Mac Developer: Maarten Billemont (DWGU95U4ZD)"; + CODE_SIGN_IDENTITY = "Developer ID Application: Maarten Billemont (HL3Q45LX9N)"; COMBINE_HIDPI_IMAGES = YES; - FRAMEWORK_SEARCH_PATHS = ( - "$(inherited)", - /Users/lhunath/Documents/workspace/lyndir/MasterPassword/External/Mac, - ); INFOPLIST_FILE = "$(SRCROOT)/MasterPassword-Mac-LoginHelper/MasterPassword-Mac-LoginHelper-Info.plist"; }; name = "AdHoc-Mac"; diff --git a/MasterPassword/ObjC/Mac/MasterPassword-Mac-LoginHelper/MasterPassword-Mac-LoginHelper/MPLoginAppDelegate.h b/MasterPassword/ObjC/Mac/MasterPassword-Mac-LoginHelper/MasterPassword-Mac-LoginHelper/MPLoginAppDelegate.h deleted file mode 100644 index cdf169f1..00000000 --- a/MasterPassword/ObjC/Mac/MasterPassword-Mac-LoginHelper/MasterPassword-Mac-LoginHelper/MPLoginAppDelegate.h +++ /dev/null @@ -1,13 +0,0 @@ -// -// MPAppDelegate.h -// MasterPassword-Mac-LoginHelper -// -// Created by Maarten Billemont on 2013-06-07. -// Copyright (c) 2013 Maarten Billemont. All rights reserved. -// - -#import - -@interface MPLoginAppDelegate : NSObject - -@end diff --git a/MasterPassword/ObjC/Mac/MasterPassword-Mac-LoginHelper/MasterPassword-Mac-LoginHelper/MPLoginAppDelegate.m b/MasterPassword/ObjC/Mac/MasterPassword-Mac-LoginHelper/MasterPassword-Mac-LoginHelper/MPLoginAppDelegate.m deleted file mode 100644 index 4807eb23..00000000 --- a/MasterPassword/ObjC/Mac/MasterPassword-Mac-LoginHelper/MasterPassword-Mac-LoginHelper/MPLoginAppDelegate.m +++ /dev/null @@ -1,39 +0,0 @@ -// -// MPAppDelegate.m -// MasterPassword-Mac-LoginHelper -// -// Created by Maarten Billemont on 2013-06-07. -// Copyright (c) 2013 Maarten Billemont. All rights reserved. -// - -#import "MPLoginAppDelegate.h" - -@implementation MPLoginAppDelegate - -- (void)applicationDidFinishLaunching:(NSNotification *)aNotification { - - NSLog(@"LoginHelper did start"); - for (NSRunningApplication *app in [[NSWorkspace sharedWorkspace] runningApplications]) - if ([[app bundleIdentifier] isEqualToString:@"com.lyndir.lhunath.MasterPassword.Mac"]) { - NSLog(@"Already running."); - [NSApp terminate:nil]; - return; - } - - NSString *path = [[NSBundle mainBundle] bundlePath]; - NSLog(@"Path: %@", path); - NSArray *p = [path pathComponents]; - NSLog(@"PathComponents: %@", p); - NSMutableArray *pathComponents = [NSMutableArray arrayWithArray:p]; - [pathComponents removeLastObject]; - [pathComponents removeLastObject]; - [pathComponents removeLastObject]; - [pathComponents addObject:@"MacOS"]; - [pathComponents addObject:@"MasterPassword"]; - NSLog(@"PathComponents modified: %@", pathComponents); - NSString *newPath = [NSString pathWithComponents:pathComponents]; - NSLog(@"newPath: %@", newPath); - NSLog(@"launchApplication: %@", @([[NSWorkspace sharedWorkspace] launchApplication:newPath])); -} - -@end diff --git a/MasterPassword/ObjC/Mac/MasterPassword-Mac-LoginHelper/MasterPassword-Mac-LoginHelper/MasterPassword-Mac-LoginHelper.entitlements b/MasterPassword/ObjC/Mac/MasterPassword-Mac-LoginHelper/MasterPassword-Mac-LoginHelper/MasterPassword-Mac-LoginHelper.entitlements index 852fa1a4..52f1eefd 100644 --- a/MasterPassword/ObjC/Mac/MasterPassword-Mac-LoginHelper/MasterPassword-Mac-LoginHelper/MasterPassword-Mac-LoginHelper.entitlements +++ b/MasterPassword/ObjC/Mac/MasterPassword-Mac-LoginHelper/MasterPassword-Mac-LoginHelper/MasterPassword-Mac-LoginHelper.entitlements @@ -4,5 +4,9 @@ com.apple.security.app-sandbox + com.apple.security.application-groups + + HL3Q45LX9N.com.lyndir.lhunath.MasterPassword.Mac + diff --git a/MasterPassword/ObjC/Mac/MasterPassword-Mac-LoginHelper/MasterPassword-Mac-LoginHelper/en.lproj/InfoPlist.strings b/MasterPassword/ObjC/Mac/MasterPassword-Mac-LoginHelper/MasterPassword-Mac-LoginHelper/en.lproj/InfoPlist.strings deleted file mode 100644 index 477b28ff..00000000 --- a/MasterPassword/ObjC/Mac/MasterPassword-Mac-LoginHelper/MasterPassword-Mac-LoginHelper/en.lproj/InfoPlist.strings +++ /dev/null @@ -1,2 +0,0 @@ -/* Localized versions of Info.plist keys */ - diff --git a/MasterPassword/ObjC/Mac/MasterPassword-Mac-LoginHelper/MasterPassword-Mac-LoginHelper/main.m b/MasterPassword/ObjC/Mac/MasterPassword-Mac-LoginHelper/MasterPassword-Mac-LoginHelper/main.m index 835a0fd8..f0902132 100644 --- a/MasterPassword/ObjC/Mac/MasterPassword-Mac-LoginHelper/MasterPassword-Mac-LoginHelper/main.m +++ b/MasterPassword/ObjC/Mac/MasterPassword-Mac-LoginHelper/MasterPassword-Mac-LoginHelper/main.m @@ -8,7 +8,21 @@ #import -int main(int argc, char *argv[]) -{ - return NSApplicationMain(argc, (const char **)argv); +int main(int argc, char *argv[]) { + + NSURL *bundleURL = [[[[[[NSBundle mainBundle] bundleURL] + URLByDeletingLastPathComponent] URLByDeletingLastPathComponent] + URLByDeletingLastPathComponent] URLByDeletingLastPathComponent]; + + NSError *error = nil; + NSRunningApplication *application = [[NSWorkspace sharedWorkspace] + launchApplicationAtURL:bundleURL options:NSWorkspaceLaunchWithoutActivation + configuration:nil error:&error]; + + if (!application || error) { + NSLog( @"Error launching main app: %@", [error debugDescription] ); + return (int)error.code?: 1; + } + + return 0; } diff --git a/MasterPassword/ObjC/Mac/MasterPassword-Mac.xcodeproj/project.pbxproj b/MasterPassword/ObjC/Mac/MasterPassword-Mac.xcodeproj/project.pbxproj index a7847f18..262ad00b 100644 --- a/MasterPassword/ObjC/Mac/MasterPassword-Mac.xcodeproj/project.pbxproj +++ b/MasterPassword/ObjC/Mac/MasterPassword-Mac.xcodeproj/project.pbxproj @@ -1868,6 +1868,7 @@ ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; CLANG_ENABLE_OBJC_ARC = YES; CODE_SIGN_ENTITLEMENTS = MasterPassword.entitlements; + CODE_SIGN_IDENTITY = "Mac Developer"; COMBINE_HIDPI_IMAGES = YES; FRAMEWORK_SEARCH_PATHS = ( "$(inherited)", @@ -1887,6 +1888,7 @@ ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; CLANG_ENABLE_OBJC_ARC = YES; CODE_SIGN_ENTITLEMENTS = MasterPassword.entitlements; + CODE_SIGN_IDENTITY = "Mac Developer"; COMBINE_HIDPI_IMAGES = YES; FRAMEWORK_SEARCH_PATHS = ( "$(inherited)", @@ -1984,6 +1986,7 @@ ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; CLANG_ENABLE_OBJC_ARC = YES; CODE_SIGN_ENTITLEMENTS = MasterPassword.entitlements; + CODE_SIGN_IDENTITY = "3rd Party Mac Developer Application"; COMBINE_HIDPI_IMAGES = YES; FRAMEWORK_SEARCH_PATHS = ( "$(inherited)", diff --git a/MasterPassword/ObjC/Mac/MasterPassword.entitlements b/MasterPassword/ObjC/Mac/MasterPassword.entitlements index 4965233b..3bce57e2 100644 --- a/MasterPassword/ObjC/Mac/MasterPassword.entitlements +++ b/MasterPassword/ObjC/Mac/MasterPassword.entitlements @@ -11,5 +11,9 @@ HL3Q45LX9N.com.lyndir.lhunath.MasterPassword.shared com.apple.security.app-sandbox + com.apple.security.application-groups + + HL3Q45LX9N.com.lyndir.lhunath.MasterPassword.Mac +