remove xattrs when copying to /Applications to avoid issues w/ 'App Translocation'
when no consumer process is found, still alert user that camera started main app now launched via hardcoded path (again to avoid issues w/ 'App Translocation' minor code cleanup
This commit is contained in:
parent
2eddae193d
commit
e492e9996a
|
@ -23,7 +23,6 @@
|
||||||
7D17C5011D658DB90066232A /* ErrorWindowController.xib in Resources */ = {isa = PBXBuildFile; fileRef = 7D17C4F81D658DB90066232A /* ErrorWindowController.xib */; };
|
7D17C5011D658DB90066232A /* ErrorWindowController.xib in Resources */ = {isa = PBXBuildFile; fileRef = 7D17C4F81D658DB90066232A /* ErrorWindowController.xib */; };
|
||||||
7D17C5041D658DEC0066232A /* MainMenu.xib in Resources */ = {isa = PBXBuildFile; fileRef = 7D17C5021D658DEC0066232A /* MainMenu.xib */; };
|
7D17C5041D658DEC0066232A /* MainMenu.xib in Resources */ = {isa = PBXBuildFile; fileRef = 7D17C5021D658DEC0066232A /* MainMenu.xib */; };
|
||||||
7D6245831D87C3D700870565 /* Images.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 7D6245821D87C3D700870565 /* Images.xcassets */; };
|
7D6245831D87C3D700870565 /* Images.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 7D6245821D87C3D700870565 /* Images.xcassets */; };
|
||||||
7D9A7DEB1D8BC4E40091C1AF /* OverSight.app in Resources */ = {isa = PBXBuildFile; fileRef = 7D9A7DEA1D8BC4E40091C1AF /* OverSight.app */; };
|
|
||||||
/* End PBXBuildFile section */
|
/* End PBXBuildFile section */
|
||||||
|
|
||||||
/* Begin PBXFileReference section */
|
/* Begin PBXFileReference section */
|
||||||
|
@ -55,7 +54,6 @@
|
||||||
7D24C8651D2CDEA7009932EE /* OverSight_Installer.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = OverSight_Installer.app; sourceTree = BUILT_PRODUCTS_DIR; };
|
7D24C8651D2CDEA7009932EE /* OverSight_Installer.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = OverSight_Installer.app; sourceTree = BUILT_PRODUCTS_DIR; };
|
||||||
7D6245821D87C3D700870565 /* Images.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; name = Images.xcassets; path = Images/Images.xcassets; sourceTree = "<group>"; };
|
7D6245821D87C3D700870565 /* Images.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; name = Images.xcassets; path = Images/Images.xcassets; sourceTree = "<group>"; };
|
||||||
7D9A7DE91D8A8BDA0091C1AF /* main.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = main.h; path = Installer/main.h; sourceTree = SOURCE_ROOT; };
|
7D9A7DE91D8A8BDA0091C1AF /* main.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = main.h; path = Installer/main.h; sourceTree = SOURCE_ROOT; };
|
||||||
7D9A7DEA1D8BC4E40091C1AF /* OverSight.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; name = OverSight.app; path = "/Users/patrickw/objective-see/OverSight/DerivedData/OverSight/Build/Products/Debug/OverSight.app"; sourceTree = "<absolute>"; };
|
|
||||||
/* End PBXFileReference section */
|
/* End PBXFileReference section */
|
||||||
|
|
||||||
/* Begin PBXFrameworksBuildPhase section */
|
/* Begin PBXFrameworksBuildPhase section */
|
||||||
|
@ -100,7 +98,6 @@
|
||||||
7D24C85C1D2CDEA7009932EE = {
|
7D24C85C1D2CDEA7009932EE = {
|
||||||
isa = PBXGroup;
|
isa = PBXGroup;
|
||||||
children = (
|
children = (
|
||||||
7D9A7DEA1D8BC4E40091C1AF /* OverSight.app */,
|
|
||||||
7D17C4D71D658D9F0066232A /* Shared */,
|
7D17C4D71D658D9F0066232A /* Shared */,
|
||||||
7D24C8671D2CDEA7009932EE /* Source */,
|
7D24C8671D2CDEA7009932EE /* Source */,
|
||||||
7D24C8661D2CDEA7009932EE /* Products */,
|
7D24C8661D2CDEA7009932EE /* Products */,
|
||||||
|
@ -172,7 +169,7 @@
|
||||||
7D24C85D1D2CDEA7009932EE /* Project object */ = {
|
7D24C85D1D2CDEA7009932EE /* Project object */ = {
|
||||||
isa = PBXProject;
|
isa = PBXProject;
|
||||||
attributes = {
|
attributes = {
|
||||||
LastUpgradeCheck = 0730;
|
LastUpgradeCheck = 0800;
|
||||||
ORGANIZATIONNAME = "Objective-See";
|
ORGANIZATIONNAME = "Objective-See";
|
||||||
TargetAttributes = {
|
TargetAttributes = {
|
||||||
7D24C8641D2CDEA7009932EE = {
|
7D24C8641D2CDEA7009932EE = {
|
||||||
|
@ -204,7 +201,6 @@
|
||||||
isa = PBXResourcesBuildPhase;
|
isa = PBXResourcesBuildPhase;
|
||||||
buildActionMask = 2147483647;
|
buildActionMask = 2147483647;
|
||||||
files = (
|
files = (
|
||||||
7D9A7DEB1D8BC4E40091C1AF /* OverSight.app in Resources */,
|
|
||||||
7D6245831D87C3D700870565 /* Images.xcassets in Resources */,
|
7D6245831D87C3D700870565 /* Images.xcassets in Resources */,
|
||||||
7D17C4E91D658D9F0066232A /* overSight.png in Resources */,
|
7D17C4E91D658D9F0066232A /* overSight.png in Resources */,
|
||||||
7D17C5011D658DB90066232A /* ErrorWindowController.xib in Resources */,
|
7D17C5011D658DB90066232A /* ErrorWindowController.xib in Resources */,
|
||||||
|
@ -229,7 +225,7 @@
|
||||||
);
|
);
|
||||||
runOnlyForDeploymentPostprocessing = 0;
|
runOnlyForDeploymentPostprocessing = 0;
|
||||||
shellPath = /bin/sh;
|
shellPath = /bin/sh;
|
||||||
shellScript = "#cp -R -f $BUILT_PRODUCTS_DIR/WhatsYourSign.appex $BUILT_PRODUCTS_DIR/$CONTENTS_FOLDER_PATH/Resources/WhatsYourSign.appex\n\n#for achiving\n# ->first build finder sync in release mode (don't archive it)\n# then archive (this) installer app\n#cp -R -f ~/objective-see/WhatsYourSign/DerivedData/WhatsYourSign/Build/Products/Release/WhatsYourSign.appex ~/objective-see/WhatsYourSign/DerivedData/WhatsYourSign/Build/Intermediates/ArchiveIntermediates/WhatsYourSign/BuildProductsPath/Release/WhatsYourSign.app/Contents/Resources/WhatsYourSign.appex\n";
|
shellScript = "#for normal builds\n# ->just copy in app\ncp -R -f $BUILT_PRODUCTS_DIR/OverSight.app $BUILT_PRODUCTS_DIR/$CONTENTS_FOLDER_PATH/Resources/\n\n#for achiving\n# ->first build finder sync in release mode (don't archive it)\n# then archive (this) installer app\n#cp -R -f ~/objective-see/WhatsYourSign/DerivedData/WhatsYourSign/Build/Products/Release/WhatsYourSign.app ~/objective-see/WhatsYourSign/DerivedData/WhatsYourSign/Build/Intermediates/ArchiveIntermediates/Installer/BuildProductsPath/Release/WhatsYourSign_Installer.app/Contents/Resources/\n";
|
||||||
};
|
};
|
||||||
/* End PBXShellScriptBuildPhase section */
|
/* End PBXShellScriptBuildPhase section */
|
||||||
|
|
||||||
|
@ -278,8 +274,10 @@
|
||||||
CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR;
|
CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR;
|
||||||
CLANG_WARN_EMPTY_BODY = YES;
|
CLANG_WARN_EMPTY_BODY = YES;
|
||||||
CLANG_WARN_ENUM_CONVERSION = YES;
|
CLANG_WARN_ENUM_CONVERSION = YES;
|
||||||
|
CLANG_WARN_INFINITE_RECURSION = YES;
|
||||||
CLANG_WARN_INT_CONVERSION = YES;
|
CLANG_WARN_INT_CONVERSION = YES;
|
||||||
CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR;
|
CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR;
|
||||||
|
CLANG_WARN_SUSPICIOUS_MOVE = YES;
|
||||||
CLANG_WARN_UNREACHABLE_CODE = YES;
|
CLANG_WARN_UNREACHABLE_CODE = YES;
|
||||||
CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
|
CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
|
||||||
CODE_SIGN_IDENTITY = "-";
|
CODE_SIGN_IDENTITY = "-";
|
||||||
|
@ -322,8 +320,10 @@
|
||||||
CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR;
|
CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR;
|
||||||
CLANG_WARN_EMPTY_BODY = YES;
|
CLANG_WARN_EMPTY_BODY = YES;
|
||||||
CLANG_WARN_ENUM_CONVERSION = YES;
|
CLANG_WARN_ENUM_CONVERSION = YES;
|
||||||
|
CLANG_WARN_INFINITE_RECURSION = YES;
|
||||||
CLANG_WARN_INT_CONVERSION = YES;
|
CLANG_WARN_INT_CONVERSION = YES;
|
||||||
CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR;
|
CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR;
|
||||||
|
CLANG_WARN_SUSPICIOUS_MOVE = YES;
|
||||||
CLANG_WARN_UNREACHABLE_CODE = YES;
|
CLANG_WARN_UNREACHABLE_CODE = YES;
|
||||||
CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
|
CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
|
||||||
CODE_SIGN_IDENTITY = "-";
|
CODE_SIGN_IDENTITY = "-";
|
||||||
|
@ -351,6 +351,7 @@
|
||||||
ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
|
ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
|
||||||
CODE_SIGN_IDENTITY = "Developer ID Application: Objective-See, LLC (VBG97UB4TA)";
|
CODE_SIGN_IDENTITY = "Developer ID Application: Objective-See, LLC (VBG97UB4TA)";
|
||||||
COMBINE_HIDPI_IMAGES = YES;
|
COMBINE_HIDPI_IMAGES = YES;
|
||||||
|
DEVELOPMENT_TEAM = VBG97UB4TA;
|
||||||
GCC_PREPROCESSOR_DEFINITIONS = (
|
GCC_PREPROCESSOR_DEFINITIONS = (
|
||||||
"IS_INSTALLER_APP=1",
|
"IS_INSTALLER_APP=1",
|
||||||
"DEBUG=1",
|
"DEBUG=1",
|
||||||
|
@ -372,6 +373,7 @@
|
||||||
ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
|
ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
|
||||||
CODE_SIGN_IDENTITY = "Developer ID Application: Objective-See, LLC (VBG97UB4TA)";
|
CODE_SIGN_IDENTITY = "Developer ID Application: Objective-See, LLC (VBG97UB4TA)";
|
||||||
COMBINE_HIDPI_IMAGES = YES;
|
COMBINE_HIDPI_IMAGES = YES;
|
||||||
|
DEVELOPMENT_TEAM = VBG97UB4TA;
|
||||||
GCC_PREPROCESSOR_DEFINITIONS = "IS_INSTALLER_APP=1";
|
GCC_PREPROCESSOR_DEFINITIONS = "IS_INSTALLER_APP=1";
|
||||||
GCC_WARN_ABOUT_DEPRECATED_FUNCTIONS = NO;
|
GCC_WARN_ABOUT_DEPRECATED_FUNCTIONS = NO;
|
||||||
INFOPLIST_FILE = Installer/Info.plist;
|
INFOPLIST_FILE = Installer/Info.plist;
|
||||||
|
|
|
@ -135,6 +135,4 @@ bail:
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
- (IBAction)startLoginItem:(id)sender {
|
|
||||||
}
|
|
||||||
@end
|
@end
|
||||||
|
|
|
@ -156,6 +156,10 @@ bail:
|
||||||
//dbg msg
|
//dbg msg
|
||||||
logMsg(LOG_DEBUG, [NSString stringWithFormat:@"copied %@ -> %@", appPathSrc, appPathDest]);
|
logMsg(LOG_DEBUG, [NSString stringWithFormat:@"copied %@ -> %@", appPathSrc, appPathDest]);
|
||||||
|
|
||||||
|
//remove xattrs
|
||||||
|
// ->otherwise app translocation causes issues
|
||||||
|
execTask(XATTR, @[@"-cr", appPathDest]);
|
||||||
|
|
||||||
//init path to XPC service
|
//init path to XPC service
|
||||||
xpcServicePath = [appPathDest stringByAppendingPathComponent:@"Contents/Library/LoginItems/OverSight Helper.app/Contents/XPCServices/OverSightXPC.xpc"];
|
xpcServicePath = [appPathDest stringByAppendingPathComponent:@"Contents/Library/LoginItems/OverSight Helper.app/Contents/XPCServices/OverSightXPC.xpc"];
|
||||||
|
|
||||||
|
|
|
@ -456,26 +456,6 @@ bail:
|
||||||
// ->ask for video procs from XPC
|
// ->ask for video procs from XPC
|
||||||
if(YES == self.videoActive)
|
if(YES == self.videoActive)
|
||||||
{
|
{
|
||||||
/*
|
|
||||||
|
|
||||||
//TODO remove
|
|
||||||
logMsg(LOG_DEBUG, @"launching video recorder!");
|
|
||||||
|
|
||||||
//task
|
|
||||||
NSTask* task = nil;
|
|
||||||
|
|
||||||
//alloc task
|
|
||||||
task = [[NSTask alloc] init];
|
|
||||||
|
|
||||||
//set path
|
|
||||||
[task setLaunchPath:@"/Users/patrickw/Downloads/videosnap-master/release/videosnap/usr/local/bin/videosnap"];
|
|
||||||
[task setArguments:@[@"-t", @"30"]];
|
|
||||||
[task launch];
|
|
||||||
|
|
||||||
*/
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
//dbg msg
|
//dbg msg
|
||||||
logMsg(LOG_DEBUG, @"video is active, so querying XPC to get video process(s)");
|
logMsg(LOG_DEBUG, @"video is active, so querying XPC to get video process(s)");
|
||||||
|
|
||||||
|
@ -505,6 +485,17 @@ bail:
|
||||||
[self generateNotification:event];
|
[self generateNotification:event];
|
||||||
}
|
}
|
||||||
|
|
||||||
|
//if no consumer process was found
|
||||||
|
// ->still alert user that webcam was activated, but without details/ability to block
|
||||||
|
if(0 == videoProcesses.count)
|
||||||
|
{
|
||||||
|
//set pid
|
||||||
|
event[EVENT_PROCESS_ID] = @0;
|
||||||
|
|
||||||
|
//generate notification
|
||||||
|
[self generateNotification:event];
|
||||||
|
}
|
||||||
|
|
||||||
//signal sema
|
//signal sema
|
||||||
dispatch_semaphore_signal(waitSema);
|
dispatch_semaphore_signal(waitSema);
|
||||||
|
|
||||||
|
@ -810,9 +801,10 @@ bail:
|
||||||
details = ((AVCaptureDevice*)event[EVENT_DEVICE]).localizedName;
|
details = ((AVCaptureDevice*)event[EVENT_DEVICE]).localizedName;
|
||||||
|
|
||||||
//customize buttons
|
//customize buttons
|
||||||
// ->for mic or inactive events, just say 'ok'
|
// ->for mic, inactive events, or when consumer proc couldn't be ID'd, just say 'ok'
|
||||||
if( (YES == [event[EVENT_DEVICE] isKindOfClass:NSClassFromString(@"AVCaptureHALDevice")]) ||
|
if( (YES == [event[EVENT_DEVICE] isKindOfClass:NSClassFromString(@"AVCaptureHALDevice")]) ||
|
||||||
(YES == [DEVICE_INACTIVE isEqual:event[EVENT_DEVICE_STATUS]]) )
|
(YES == [DEVICE_INACTIVE isEqual:event[EVENT_DEVICE_STATUS]]) ||
|
||||||
|
(0 == [event[EVENT_PROCESS_ID] intValue]) )
|
||||||
{
|
{
|
||||||
//set other button title
|
//set other button title
|
||||||
notification.otherButtonTitle = @"ok";
|
notification.otherButtonTitle = @"ok";
|
||||||
|
@ -822,7 +814,7 @@ bail:
|
||||||
}
|
}
|
||||||
|
|
||||||
//customize buttons
|
//customize buttons
|
||||||
// ->for activatated video; allow/block
|
// ->for activated video; allow/block
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
//get process name
|
//get process name
|
||||||
|
@ -919,6 +911,43 @@ bail:
|
||||||
//process id
|
//process id
|
||||||
NSNumber* processID = nil;
|
NSNumber* processID = nil;
|
||||||
|
|
||||||
|
//preferences
|
||||||
|
NSDictionary* preferences = nil;
|
||||||
|
|
||||||
|
//log msg
|
||||||
|
NSMutableString* sysLogMsg = nil;
|
||||||
|
|
||||||
|
//always (manually) load preferences
|
||||||
|
preferences = [NSDictionary dictionaryWithContentsOfFile:[APP_PREFERENCES stringByExpandingTildeInPath]];
|
||||||
|
|
||||||
|
//alloc log msg
|
||||||
|
sysLogMsg = [NSMutableString string];
|
||||||
|
|
||||||
|
//log event?
|
||||||
|
// ->but only allow/blocks (i.e. webcam activations)
|
||||||
|
if( (YES == [preferences[PREF_LOG_ACTIVITY] boolValue]) &&
|
||||||
|
(YES == [notification.actionButtonTitle isEqualToString:@"block"]) )
|
||||||
|
{
|
||||||
|
//init msg
|
||||||
|
[sysLogMsg appendString:@"OVERSIGHT: "];
|
||||||
|
|
||||||
|
//user clicked 'block'
|
||||||
|
if(notification.activationType == NSUserNotificationActivationTypeActionButtonClicked)
|
||||||
|
{
|
||||||
|
//add
|
||||||
|
[sysLogMsg appendFormat:@"user clicked 'block' for %@", notification.userInfo];
|
||||||
|
}
|
||||||
|
//user clicked 'allow'
|
||||||
|
else
|
||||||
|
{
|
||||||
|
//add
|
||||||
|
[sysLogMsg appendFormat:@"user clicked 'allow' for %@", notification.userInfo];
|
||||||
|
}
|
||||||
|
|
||||||
|
//write it out to syslog
|
||||||
|
syslog(LOG_ERR, "%s\n", sysLogMsg.UTF8String);
|
||||||
|
}
|
||||||
|
|
||||||
//dbg msg
|
//dbg msg
|
||||||
logMsg(LOG_DEBUG, [NSString stringWithFormat:@"use responded to notification: %@", notification]);
|
logMsg(LOG_DEBUG, [NSString stringWithFormat:@"use responded to notification: %@", notification]);
|
||||||
|
|
||||||
|
|
|
@ -65,7 +65,7 @@
|
||||||
logMsg(LOG_DEBUG, @"checking for update");
|
logMsg(LOG_DEBUG, @"checking for update");
|
||||||
|
|
||||||
//check
|
//check
|
||||||
[self isThereAndUpdate];
|
[self isThereAnUpdate];
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -98,7 +98,7 @@
|
||||||
}
|
}
|
||||||
|
|
||||||
//check for an update
|
//check for an update
|
||||||
-(void)isThereAndUpdate
|
-(void)isThereAnUpdate
|
||||||
{
|
{
|
||||||
//version string
|
//version string
|
||||||
NSMutableString* versionString = nil;
|
NSMutableString* versionString = nil;
|
||||||
|
|
|
@ -6,7 +6,7 @@
|
||||||
// Copyright (c) 2015 Objective-See. All rights reserved.
|
// Copyright (c) 2015 Objective-See. All rights reserved.
|
||||||
//
|
//
|
||||||
|
|
||||||
|
#import "Consts.h"
|
||||||
#import "Logging.h"
|
#import "Logging.h"
|
||||||
#import "AppDelegate.h"
|
#import "AppDelegate.h"
|
||||||
#import "StatusBarMenu.h"
|
#import "StatusBarMenu.h"
|
||||||
|
@ -233,29 +233,11 @@
|
||||||
// ->launch main application which will show prefs
|
// ->launch main application which will show prefs
|
||||||
-(void)preferences:(id)sender
|
-(void)preferences:(id)sender
|
||||||
{
|
{
|
||||||
//path components
|
|
||||||
NSArray* pathComponents = nil;
|
|
||||||
|
|
||||||
//path to main app
|
|
||||||
NSString* mainApp = nil;
|
|
||||||
|
|
||||||
//init path components
|
|
||||||
pathComponents = [[[NSBundle mainBundle] bundlePath] pathComponents];
|
|
||||||
if(pathComponents.count <= 4)
|
|
||||||
{
|
|
||||||
//bail
|
|
||||||
goto bail;
|
|
||||||
}
|
|
||||||
|
|
||||||
//init path to main app
|
|
||||||
// ->basically trim off last 4 path components
|
|
||||||
mainApp = [NSString pathWithComponents:[pathComponents subarrayWithRange:NSMakeRange(0, [pathComponents count] - 4)]];
|
|
||||||
|
|
||||||
//dbg msg
|
//dbg msg
|
||||||
logMsg(LOG_DEBUG, [NSString stringWithFormat:@"launching main app; %@", mainApp]);
|
logMsg(LOG_DEBUG, @"launching main app (from /Applications)");
|
||||||
|
|
||||||
//launch main app
|
//launch main app
|
||||||
[[NSWorkspace sharedWorkspace] launchApplication:mainApp];
|
[[NSWorkspace sharedWorkspace] launchApplication:[APPS_FOLDER stringByAppendingPathComponent:APP_NAME]];
|
||||||
|
|
||||||
//bail
|
//bail
|
||||||
bail:
|
bail:
|
||||||
|
|
|
@ -58,7 +58,7 @@
|
||||||
-(IBAction)check4Update:(id)sender;
|
-(IBAction)check4Update:(id)sender;
|
||||||
|
|
||||||
//check for an update
|
//check for an update
|
||||||
-(void)isThereAndUpdate;
|
-(void)isThereAnUpdate;
|
||||||
|
|
||||||
//start the login item
|
//start the login item
|
||||||
-(IBAction)startLoginItem:(id)sender;
|
-(IBAction)startLoginItem:(id)sender;
|
||||||
|
|
|
@ -199,13 +199,13 @@ bail:
|
||||||
[self.spinner startAnimation:self];
|
[self.spinner startAnimation:self];
|
||||||
|
|
||||||
//check for update
|
//check for update
|
||||||
[self isThereAndUpdate];
|
[self isThereAnUpdate];
|
||||||
|
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
//check for an update
|
//check for an update
|
||||||
-(void)isThereAndUpdate
|
-(void)isThereAnUpdate
|
||||||
{
|
{
|
||||||
//version string
|
//version string
|
||||||
NSMutableString* versionString = nil;
|
NSMutableString* versionString = nil;
|
||||||
|
|
|
@ -17,6 +17,7 @@
|
||||||
7D17CFE41D811B4E0017B475 /* Utilities.m in Sources */ = {isa = PBXBuildFile; fileRef = 7D17C5381D659E580066232A /* Utilities.m */; };
|
7D17CFE41D811B4E0017B475 /* Utilities.m in Sources */ = {isa = PBXBuildFile; fileRef = 7D17C5381D659E580066232A /* Utilities.m */; };
|
||||||
7D17CFE51D8133840017B475 /* AVMonitor.m in Sources */ = {isa = PBXBuildFile; fileRef = 7D17CFE11D81121E0017B475 /* AVMonitor.m */; };
|
7D17CFE51D8133840017B475 /* AVMonitor.m in Sources */ = {isa = PBXBuildFile; fileRef = 7D17CFE11D81121E0017B475 /* AVMonitor.m */; };
|
||||||
7D17D0101D8136C60017B475 /* OverSightXPC.xpc in Embed XPC Services */ = {isa = PBXBuildFile; fileRef = 7DC9C8121D641A350017D143 /* OverSightXPC.xpc */; settings = {ATTRIBUTES = (RemoveHeadersOnCopy, ); }; };
|
7D17D0101D8136C60017B475 /* OverSightXPC.xpc in Embed XPC Services */ = {isa = PBXBuildFile; fileRef = 7DC9C8121D641A350017D143 /* OverSightXPC.xpc */; settings = {ATTRIBUTES = (RemoveHeadersOnCopy, ); }; };
|
||||||
|
7D3B524C1D9B3A74006568D9 /* libbsm.tbd in Frameworks */ = {isa = PBXBuildFile; fileRef = 7D9A7DED1D8CACE30091C1AF /* libbsm.tbd */; };
|
||||||
7D62457C1D84FB8900870565 /* Enumerator.m in Sources */ = {isa = PBXBuildFile; fileRef = 7D62457B1D84FB8900870565 /* Enumerator.m */; };
|
7D62457C1D84FB8900870565 /* Enumerator.m in Sources */ = {isa = PBXBuildFile; fileRef = 7D62457B1D84FB8900870565 /* Enumerator.m */; };
|
||||||
7D6245801D85348E00870565 /* Utilities.m in Sources */ = {isa = PBXBuildFile; fileRef = 7D62457F1D85348E00870565 /* Utilities.m */; };
|
7D6245801D85348E00870565 /* Utilities.m in Sources */ = {isa = PBXBuildFile; fileRef = 7D62457F1D85348E00870565 /* Utilities.m */; };
|
||||||
7D6245851D87C43900870565 /* Images.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 7D6245841D87C43900870565 /* Images.xcassets */; };
|
7D6245851D87C43900870565 /* Images.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 7D6245841D87C43900870565 /* Images.xcassets */; };
|
||||||
|
@ -32,7 +33,6 @@
|
||||||
7D6245951D87E14800870565 /* MainMenu.xib in Resources */ = {isa = PBXBuildFile; fileRef = 8B5755CD19DA3F9300799E6B /* MainMenu.xib */; };
|
7D6245951D87E14800870565 /* MainMenu.xib in Resources */ = {isa = PBXBuildFile; fileRef = 8B5755CD19DA3F9300799E6B /* MainMenu.xib */; };
|
||||||
7D9A7DE81D893E4F0091C1AF /* InfoWindow.xib in Resources */ = {isa = PBXBuildFile; fileRef = 7D62458C1D87D38400870565 /* InfoWindow.xib */; };
|
7D9A7DE81D893E4F0091C1AF /* InfoWindow.xib in Resources */ = {isa = PBXBuildFile; fileRef = 7D62458C1D87D38400870565 /* InfoWindow.xib */; };
|
||||||
7D9A7DEC1D8BE1E00091C1AF /* Exception.m in Sources */ = {isa = PBXBuildFile; fileRef = 7D17C5311D659E580066232A /* Exception.m */; };
|
7D9A7DEC1D8BE1E00091C1AF /* Exception.m in Sources */ = {isa = PBXBuildFile; fileRef = 7D17C5311D659E580066232A /* Exception.m */; };
|
||||||
7D9A7DEE1D8CACE30091C1AF /* libbsm.tbd in Frameworks */ = {isa = PBXBuildFile; fileRef = 7D9A7DED1D8CACE30091C1AF /* libbsm.tbd */; };
|
|
||||||
7D9A7DF21D8F2C900091C1AF /* Images.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 7D6245841D87C43900870565 /* Images.xcassets */; };
|
7D9A7DF21D8F2C900091C1AF /* Images.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 7D6245841D87C43900870565 /* Images.xcassets */; };
|
||||||
7DAF4B7F1D657192000DA31A /* StatusBarMenu.m in Sources */ = {isa = PBXBuildFile; fileRef = 7DAF4B7D1D656FD3000DA31A /* StatusBarMenu.m */; };
|
7DAF4B7F1D657192000DA31A /* StatusBarMenu.m in Sources */ = {isa = PBXBuildFile; fileRef = 7DAF4B7D1D656FD3000DA31A /* StatusBarMenu.m */; };
|
||||||
7DC9C8171D641A350017D143 /* OverSightXPC.m in Sources */ = {isa = PBXBuildFile; fileRef = 7DC9C8161D641A350017D143 /* OverSightXPC.m */; };
|
7DC9C8171D641A350017D143 /* OverSightXPC.m in Sources */ = {isa = PBXBuildFile; fileRef = 7DC9C8161D641A350017D143 /* OverSightXPC.m */; };
|
||||||
|
@ -143,7 +143,7 @@
|
||||||
isa = PBXFrameworksBuildPhase;
|
isa = PBXFrameworksBuildPhase;
|
||||||
buildActionMask = 2147483647;
|
buildActionMask = 2147483647;
|
||||||
files = (
|
files = (
|
||||||
7D9A7DEE1D8CACE30091C1AF /* libbsm.tbd in Frameworks */,
|
7D3B524C1D9B3A74006568D9 /* libbsm.tbd in Frameworks */,
|
||||||
);
|
);
|
||||||
runOnlyForDeploymentPostprocessing = 0;
|
runOnlyForDeploymentPostprocessing = 0;
|
||||||
};
|
};
|
||||||
|
@ -361,7 +361,7 @@
|
||||||
8B57559319DA3E9500799E6B /* Project object */ = {
|
8B57559319DA3E9500799E6B /* Project object */ = {
|
||||||
isa = PBXProject;
|
isa = PBXProject;
|
||||||
attributes = {
|
attributes = {
|
||||||
LastUpgradeCheck = 0730;
|
LastUpgradeCheck = 0800;
|
||||||
ORGANIZATIONNAME = "Cory Bohon";
|
ORGANIZATIONNAME = "Cory Bohon";
|
||||||
TargetAttributes = {
|
TargetAttributes = {
|
||||||
7DC9C8111D641A350017D143 = {
|
7DC9C8111D641A350017D143 = {
|
||||||
|
@ -528,7 +528,7 @@
|
||||||
ENABLE_TESTABILITY = YES;
|
ENABLE_TESTABILITY = YES;
|
||||||
GCC_NO_COMMON_BLOCKS = YES;
|
GCC_NO_COMMON_BLOCKS = YES;
|
||||||
INFOPLIST_FILE = OverSightXPC/Info.plist;
|
INFOPLIST_FILE = OverSightXPC/Info.plist;
|
||||||
MACOSX_DEPLOYMENT_TARGET = 10.11;
|
MACOSX_DEPLOYMENT_TARGET = 10.10;
|
||||||
PRODUCT_BUNDLE_IDENTIFIER = "com.objective-see.OverSightXPC";
|
PRODUCT_BUNDLE_IDENTIFIER = "com.objective-see.OverSightXPC";
|
||||||
PRODUCT_NAME = "$(TARGET_NAME)";
|
PRODUCT_NAME = "$(TARGET_NAME)";
|
||||||
SKIP_INSTALL = YES;
|
SKIP_INSTALL = YES;
|
||||||
|
@ -545,7 +545,7 @@
|
||||||
COPY_PHASE_STRIP = NO;
|
COPY_PHASE_STRIP = NO;
|
||||||
GCC_NO_COMMON_BLOCKS = YES;
|
GCC_NO_COMMON_BLOCKS = YES;
|
||||||
INFOPLIST_FILE = OverSightXPC/Info.plist;
|
INFOPLIST_FILE = OverSightXPC/Info.plist;
|
||||||
MACOSX_DEPLOYMENT_TARGET = 10.11;
|
MACOSX_DEPLOYMENT_TARGET = 10.10;
|
||||||
PRODUCT_BUNDLE_IDENTIFIER = "com.objective-see.OverSightXPC";
|
PRODUCT_BUNDLE_IDENTIFIER = "com.objective-see.OverSightXPC";
|
||||||
PRODUCT_NAME = "$(TARGET_NAME)";
|
PRODUCT_NAME = "$(TARGET_NAME)";
|
||||||
SKIP_INSTALL = YES;
|
SKIP_INSTALL = YES;
|
||||||
|
@ -565,8 +565,10 @@
|
||||||
CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR;
|
CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR;
|
||||||
CLANG_WARN_EMPTY_BODY = YES;
|
CLANG_WARN_EMPTY_BODY = YES;
|
||||||
CLANG_WARN_ENUM_CONVERSION = YES;
|
CLANG_WARN_ENUM_CONVERSION = YES;
|
||||||
|
CLANG_WARN_INFINITE_RECURSION = YES;
|
||||||
CLANG_WARN_INT_CONVERSION = YES;
|
CLANG_WARN_INT_CONVERSION = YES;
|
||||||
CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR;
|
CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR;
|
||||||
|
CLANG_WARN_SUSPICIOUS_MOVE = YES;
|
||||||
CLANG_WARN_UNREACHABLE_CODE = YES;
|
CLANG_WARN_UNREACHABLE_CODE = YES;
|
||||||
CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
|
CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
|
||||||
CODE_SIGN_IDENTITY = "Developer ID Application: Objective-See, LLC (VBG97UB4TA)";
|
CODE_SIGN_IDENTITY = "Developer ID Application: Objective-See, LLC (VBG97UB4TA)";
|
||||||
|
@ -574,6 +576,7 @@
|
||||||
ENABLE_STRICT_OBJC_MSGSEND = YES;
|
ENABLE_STRICT_OBJC_MSGSEND = YES;
|
||||||
GCC_C_LANGUAGE_STANDARD = gnu99;
|
GCC_C_LANGUAGE_STANDARD = gnu99;
|
||||||
GCC_DYNAMIC_NO_PIC = NO;
|
GCC_DYNAMIC_NO_PIC = NO;
|
||||||
|
GCC_NO_COMMON_BLOCKS = YES;
|
||||||
GCC_OPTIMIZATION_LEVEL = 0;
|
GCC_OPTIMIZATION_LEVEL = 0;
|
||||||
GCC_PREPROCESSOR_DEFINITIONS = (
|
GCC_PREPROCESSOR_DEFINITIONS = (
|
||||||
"DEBUG=1",
|
"DEBUG=1",
|
||||||
|
@ -587,7 +590,7 @@
|
||||||
GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;
|
GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;
|
||||||
GCC_WARN_UNUSED_FUNCTION = YES;
|
GCC_WARN_UNUSED_FUNCTION = YES;
|
||||||
GCC_WARN_UNUSED_VARIABLE = YES;
|
GCC_WARN_UNUSED_VARIABLE = YES;
|
||||||
MACOSX_DEPLOYMENT_TARGET = 10.9;
|
MACOSX_DEPLOYMENT_TARGET = 10.10;
|
||||||
MTL_ENABLE_DEBUG_INFO = YES;
|
MTL_ENABLE_DEBUG_INFO = YES;
|
||||||
ONLY_ACTIVE_ARCH = YES;
|
ONLY_ACTIVE_ARCH = YES;
|
||||||
SDKROOT = macosx;
|
SDKROOT = macosx;
|
||||||
|
@ -607,8 +610,10 @@
|
||||||
CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR;
|
CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR;
|
||||||
CLANG_WARN_EMPTY_BODY = YES;
|
CLANG_WARN_EMPTY_BODY = YES;
|
||||||
CLANG_WARN_ENUM_CONVERSION = YES;
|
CLANG_WARN_ENUM_CONVERSION = YES;
|
||||||
|
CLANG_WARN_INFINITE_RECURSION = YES;
|
||||||
CLANG_WARN_INT_CONVERSION = YES;
|
CLANG_WARN_INT_CONVERSION = YES;
|
||||||
CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR;
|
CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR;
|
||||||
|
CLANG_WARN_SUSPICIOUS_MOVE = YES;
|
||||||
CLANG_WARN_UNREACHABLE_CODE = YES;
|
CLANG_WARN_UNREACHABLE_CODE = YES;
|
||||||
CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
|
CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
|
||||||
CODE_SIGN_IDENTITY = "Developer ID Application: Objective-See, LLC (VBG97UB4TA)";
|
CODE_SIGN_IDENTITY = "Developer ID Application: Objective-See, LLC (VBG97UB4TA)";
|
||||||
|
@ -617,6 +622,7 @@
|
||||||
ENABLE_NS_ASSERTIONS = NO;
|
ENABLE_NS_ASSERTIONS = NO;
|
||||||
ENABLE_STRICT_OBJC_MSGSEND = YES;
|
ENABLE_STRICT_OBJC_MSGSEND = YES;
|
||||||
GCC_C_LANGUAGE_STANDARD = gnu99;
|
GCC_C_LANGUAGE_STANDARD = gnu99;
|
||||||
|
GCC_NO_COMMON_BLOCKS = YES;
|
||||||
GCC_WARN_64_TO_32_BIT_CONVERSION = YES;
|
GCC_WARN_64_TO_32_BIT_CONVERSION = YES;
|
||||||
GCC_WARN_ABOUT_DEPRECATED_FUNCTIONS = NO;
|
GCC_WARN_ABOUT_DEPRECATED_FUNCTIONS = NO;
|
||||||
GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR;
|
GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR;
|
||||||
|
@ -624,7 +630,7 @@
|
||||||
GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;
|
GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;
|
||||||
GCC_WARN_UNUSED_FUNCTION = YES;
|
GCC_WARN_UNUSED_FUNCTION = YES;
|
||||||
GCC_WARN_UNUSED_VARIABLE = YES;
|
GCC_WARN_UNUSED_VARIABLE = YES;
|
||||||
MACOSX_DEPLOYMENT_TARGET = 10.9;
|
MACOSX_DEPLOYMENT_TARGET = 10.10;
|
||||||
MTL_ENABLE_DEBUG_INFO = NO;
|
MTL_ENABLE_DEBUG_INFO = NO;
|
||||||
SDKROOT = macosx;
|
SDKROOT = macosx;
|
||||||
};
|
};
|
||||||
|
|
|
@ -1,101 +0,0 @@
|
||||||
<?xml version="1.0" encoding="UTF-8"?>
|
|
||||||
<Scheme
|
|
||||||
LastUpgradeVersion = "0730"
|
|
||||||
version = "1.3">
|
|
||||||
<BuildAction
|
|
||||||
parallelizeBuildables = "YES"
|
|
||||||
buildImplicitDependencies = "YES">
|
|
||||||
<BuildActionEntries>
|
|
||||||
<BuildActionEntry
|
|
||||||
buildForTesting = "YES"
|
|
||||||
buildForRunning = "YES"
|
|
||||||
buildForProfiling = "YES"
|
|
||||||
buildForArchiving = "YES"
|
|
||||||
buildForAnalyzing = "YES">
|
|
||||||
<BuildableReference
|
|
||||||
BuildableIdentifier = "primary"
|
|
||||||
BlueprintIdentifier = "8B5755C119DA3F9300799E6B"
|
|
||||||
BuildableName = "OverSight Helper.app"
|
|
||||||
BlueprintName = "OverSight Helper"
|
|
||||||
ReferencedContainer = "container:OverSight.xcodeproj">
|
|
||||||
</BuildableReference>
|
|
||||||
</BuildActionEntry>
|
|
||||||
</BuildActionEntries>
|
|
||||||
</BuildAction>
|
|
||||||
<TestAction
|
|
||||||
buildConfiguration = "Debug"
|
|
||||||
selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB"
|
|
||||||
selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB"
|
|
||||||
shouldUseLaunchSchemeArgsEnv = "YES">
|
|
||||||
<Testables>
|
|
||||||
<TestableReference
|
|
||||||
skipped = "NO">
|
|
||||||
<BuildableReference
|
|
||||||
BuildableIdentifier = "primary"
|
|
||||||
BlueprintIdentifier = "8B5755D319DA3F9300799E6B"
|
|
||||||
BuildableName = "Test Application HelperTests.xctest"
|
|
||||||
BlueprintName = "Test Application HelperTests"
|
|
||||||
ReferencedContainer = "container:OverSight.xcodeproj">
|
|
||||||
</BuildableReference>
|
|
||||||
</TestableReference>
|
|
||||||
</Testables>
|
|
||||||
<MacroExpansion>
|
|
||||||
<BuildableReference
|
|
||||||
BuildableIdentifier = "primary"
|
|
||||||
BlueprintIdentifier = "8B5755C119DA3F9300799E6B"
|
|
||||||
BuildableName = "OverSight Helper.app"
|
|
||||||
BlueprintName = "OverSight Helper"
|
|
||||||
ReferencedContainer = "container:OverSight.xcodeproj">
|
|
||||||
</BuildableReference>
|
|
||||||
</MacroExpansion>
|
|
||||||
<AdditionalOptions>
|
|
||||||
</AdditionalOptions>
|
|
||||||
</TestAction>
|
|
||||||
<LaunchAction
|
|
||||||
buildConfiguration = "Debug"
|
|
||||||
selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB"
|
|
||||||
selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB"
|
|
||||||
launchStyle = "0"
|
|
||||||
useCustomWorkingDirectory = "NO"
|
|
||||||
ignoresPersistentStateOnLaunch = "NO"
|
|
||||||
debugDocumentVersioning = "YES"
|
|
||||||
debugServiceExtension = "internal"
|
|
||||||
allowLocationSimulation = "YES">
|
|
||||||
<BuildableProductRunnable
|
|
||||||
runnableDebuggingMode = "0">
|
|
||||||
<BuildableReference
|
|
||||||
BuildableIdentifier = "primary"
|
|
||||||
BlueprintIdentifier = "8B5755C119DA3F9300799E6B"
|
|
||||||
BuildableName = "OverSight Helper.app"
|
|
||||||
BlueprintName = "OverSight Helper"
|
|
||||||
ReferencedContainer = "container:OverSight.xcodeproj">
|
|
||||||
</BuildableReference>
|
|
||||||
</BuildableProductRunnable>
|
|
||||||
<AdditionalOptions>
|
|
||||||
</AdditionalOptions>
|
|
||||||
</LaunchAction>
|
|
||||||
<ProfileAction
|
|
||||||
buildConfiguration = "Release"
|
|
||||||
shouldUseLaunchSchemeArgsEnv = "YES"
|
|
||||||
savedToolIdentifier = ""
|
|
||||||
useCustomWorkingDirectory = "NO"
|
|
||||||
debugDocumentVersioning = "YES">
|
|
||||||
<BuildableProductRunnable
|
|
||||||
runnableDebuggingMode = "0">
|
|
||||||
<BuildableReference
|
|
||||||
BuildableIdentifier = "primary"
|
|
||||||
BlueprintIdentifier = "8B5755C119DA3F9300799E6B"
|
|
||||||
BuildableName = "OverSight Helper.app"
|
|
||||||
BlueprintName = "OverSight Helper"
|
|
||||||
ReferencedContainer = "container:OverSight.xcodeproj">
|
|
||||||
</BuildableReference>
|
|
||||||
</BuildableProductRunnable>
|
|
||||||
</ProfileAction>
|
|
||||||
<AnalyzeAction
|
|
||||||
buildConfiguration = "Debug">
|
|
||||||
</AnalyzeAction>
|
|
||||||
<ArchiveAction
|
|
||||||
buildConfiguration = "Release"
|
|
||||||
revealArchiveInOrganizer = "YES">
|
|
||||||
</ArchiveAction>
|
|
||||||
</Scheme>
|
|
|
@ -84,7 +84,12 @@
|
||||||
//path to pkill
|
//path to pkill
|
||||||
#define PKILL @"/usr/bin/pkill"
|
#define PKILL @"/usr/bin/pkill"
|
||||||
|
|
||||||
|
//path to xattr
|
||||||
|
#define XATTR @"/usr/bin/xattr"
|
||||||
|
|
||||||
//path to facetime
|
//path to facetime
|
||||||
#define FACE_TIME @"/Applications/FaceTime.app/Contents/MacOS/FaceTime"
|
#define FACE_TIME @"/Applications/FaceTime.app/Contents/MacOS/FaceTime"
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|
Loading…
Reference in New Issue