Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP
tree: 70ac2c85c3
Fetching contributors…

Cannot retrieve contributors at this time

executable file 854 lines (837 sloc) 63.314 kb
// !$*UTF8*$!
{
archiveVersion = 1;
classes = {
};
objectVersion = 45;
objects = {
/* Begin PBXAggregateTarget section */
CB9368250F85D84E00EF284E /* Distribution */ = {
isa = PBXAggregateTarget;
buildConfigurationList = CB93682C0F85D88C00EF284E /* Build configuration list for PBXAggregateTarget "Distribution" */;
buildPhases = (
CB9368240F85D84E00EF284E /* ShellScript */,
);
dependencies = (
CB9368290F85D86500EF284E /* PBXTargetDependency */,
);
name = Distribution;
productName = "Sparkle Distribution";
};
/* End PBXAggregateTarget section */
/* Begin PBXBuildFile section */
1DDD58160DA1D0A300B32029 /* MainMenu.xib in Resources */ = {isa = PBXBuildFile; fileRef = 1DDD58140DA1D0A300B32029 /* MainMenu.xib */; };
8D11072B0486CEB800E47090 /* InfoPlist.strings in Resources */ = {isa = PBXBuildFile; fileRef = 089C165CFE840E0CC02AAC07 /* InfoPlist.strings */; };
8D11072D0486CEB800E47090 /* main.m in Sources */ = {isa = PBXBuildFile; fileRef = 29B97316FDCFA39411CA2CEA /* main.m */; settings = {ATTRIBUTES = (); }; };
8D11072F0486CEB800E47090 /* Cocoa.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1058C7A1FEA54F0111CA2CBB /* Cocoa.framework */; };
CB1E7A6E0F9AEA9B00D158BC /* ERRORS in Resources */ = {isa = PBXBuildFile; fileRef = CB1E7A6D0F9AEA9B00D158BC /* ERRORS */; };
CB1ED4480F56686400EFECEE /* org.eyebeam.SelfControl in Copy Helper Tools */ = {isa = PBXBuildFile; fileRef = CBA2AFD20F39EC12005AFEBE /* org.eyebeam.SelfControl */; };
CB40A8680FBC7DE700167727 /* SelfControlBlocklist.icns in Resources */ = {isa = PBXBuildFile; fileRef = CB40A8670FBC7DE700167727 /* SelfControlBlocklist.icns */; };
CB4C58D60F3F8F2A00B5D7CB /* SelfControlIcon.icns in Resources */ = {isa = PBXBuildFile; fileRef = CB4C58D50F3F8F2A00B5D7CB /* SelfControlIcon.icns */; };
CB4C58DA0F3F90B000B5D7CB /* Credits.rtf in Resources */ = {isa = PBXBuildFile; fileRef = CB4C58D90F3F90B000B5D7CB /* Credits.rtf */; };
CB529BBF0F32B7ED00564FB8 /* AppController.m in Sources */ = {isa = PBXBuildFile; fileRef = CB529BBE0F32B7ED00564FB8 /* AppController.m */; };
CB54D44C0F93E33300AA22E9 /* Security.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = CB9E901D0F397FFA006DE6E4 /* Security.framework */; };
CB587E500F50FE8800C66A09 /* SystemConfiguration.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = CB587E4F0F50FE8800C66A09 /* SystemConfiguration.framework */; };
CB5A306E0F92E582005CCA3E /* SelfControlUtilities.m in Sources */ = {isa = PBXBuildFile; fileRef = CBC3C0C10F86DDA10055C0B0 /* SelfControlUtilities.m */; };
CB5B40440F3528E100EFBF4A /* DomainList.xib in Resources */ = {isa = PBXBuildFile; fileRef = CB5B40420F3528E100EFBF4A /* DomainList.xib */; };
CB90BF830F49F430006D202D /* HostImporter.m in Sources */ = {isa = PBXBuildFile; fileRef = CB90BF820F49F430006D202D /* HostImporter.m */; };
CB93654E0F85802400EF284E /* Sparkle.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = CB93654D0F85802400EF284E /* Sparkle.framework */; };
CB93655C0F85806A00EF284E /* Sparkle.framework in Copy Frameworks */ = {isa = PBXBuildFile; fileRef = CB93654D0F85802400EF284E /* Sparkle.framework */; };
CB9365620F8581B000EF284E /* dsa_pub.pem in Resources */ = {isa = PBXBuildFile; fileRef = CB9365610F8581B000EF284E /* dsa_pub.pem */; };
CB9365780F85846200EF284E /* SelfControlAppcast.xml in Resources */ = {isa = PBXBuildFile; fileRef = CB9365770F85846200EF284E /* SelfControlAppcast.xml */; };
CB9366E80F85BEF100EF284E /* NSRemoveTemplate.jpg in Resources */ = {isa = PBXBuildFile; fileRef = CB9366E60F85BEF100EF284E /* NSRemoveTemplate.jpg */; };
CB9366E90F85BEF100EF284E /* NSAddTemplate.jpg in Resources */ = {isa = PBXBuildFile; fileRef = CB9366E70F85BEF100EF284E /* NSAddTemplate.jpg */; };
CB9366EB0F85BF0700EF284E /* iLifeControls.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = CB9366EA0F85BF0700EF284E /* iLifeControls.framework */; };
CB9366FF0F85BF1D00EF284E /* iLifeControls.framework in Copy Frameworks */ = {isa = PBXBuildFile; fileRef = CB9366EA0F85BF0700EF284E /* iLifeControls.framework */; };
CB93674F0F85C2C100EF284E /* NSCharacterSet+NewlineAddition.m in Sources */ = {isa = PBXBuildFile; fileRef = CB93674E0F85C2C100EF284E /* NSCharacterSet+NewlineAddition.m */; };
CBA2AFD90F39EC46005AFEBE /* HelperMain.m in Sources */ = {isa = PBXBuildFile; fileRef = CBA2AFD80F39EC46005AFEBE /* HelperMain.m */; };
CBA2E75B0F41388800571571 /* IPFirewall.m in Sources */ = {isa = PBXBuildFile; fileRef = CBA2E75A0F41388800571571 /* IPFirewall.m */; };
CBB0AE2A0FA74566006229B3 /* HostFileBlocker.m in Sources */ = {isa = PBXBuildFile; fileRef = CBB0AE290FA74566006229B3 /* HostFileBlocker.m */; };
CBB3FD7A0F53834B00244132 /* Security.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = CB9E901D0F397FFA006DE6E4 /* Security.framework */; };
CBB7DEEA0F53313F00ABF3EA /* DomainListWindowController.m in Sources */ = {isa = PBXBuildFile; fileRef = CBB637220F3E296000EBD135 /* DomainListWindowController.m */; };
CBBCA14B0F54E1B300C75324 /* org.eyebeam.SelfControl.plist in Resources */ = {isa = PBXBuildFile; fileRef = CB4295C20F53EF8C008E10CA /* org.eyebeam.SelfControl.plist */; };
CBC2F8580F4672FE00CF2A42 /* LaunchctlHelper.m in Sources */ = {isa = PBXBuildFile; fileRef = CBC2F8570F4672FE00CF2A42 /* LaunchctlHelper.m */; };
CBC3C0C20F86DDA10055C0B0 /* SelfControlUtilities.m in Sources */ = {isa = PBXBuildFile; fileRef = CBC3C0C10F86DDA10055C0B0 /* SelfControlUtilities.m */; };
CBC3C17F0F870D480055C0B0 /* TimerWindow.xib in Resources */ = {isa = PBXBuildFile; fileRef = CBC3C17E0F870D480055C0B0 /* TimerWindow.xib */; };
CBC3C19E0F8713370055C0B0 /* TigerTimerWindow.xib in Resources */ = {isa = PBXBuildFile; fileRef = CBC3C19D0F8713370055C0B0 /* TigerTimerWindow.xib */; };
CBD266B011ED7D9C00042CD8 /* HelperCommon.m in Sources */ = {isa = PBXBuildFile; fileRef = CBD266AE11ED7D9C00042CD8 /* HelperCommon.m */; };
CBD266B111ED7D9C00042CD8 /* HelperCommon.m in Sources */ = {isa = PBXBuildFile; fileRef = CBD266AE11ED7D9C00042CD8 /* HelperCommon.m */; };
CBD2672011ED882700042CD8 /* CheckupMain.m in Sources */ = {isa = PBXBuildFile; fileRef = CBD2671F11ED882700042CD8 /* CheckupMain.m */; };
CBD2676911ED924700042CD8 /* Security.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = CB9E901D0F397FFA006DE6E4 /* Security.framework */; };
CBD2676A11ED925700042CD8 /* HostFileBlocker.m in Sources */ = {isa = PBXBuildFile; fileRef = CBB0AE290FA74566006229B3 /* HostFileBlocker.m */; };
CBD2676B11ED925700042CD8 /* IPFirewall.m in Sources */ = {isa = PBXBuildFile; fileRef = CBA2E75A0F41388800571571 /* IPFirewall.m */; };
CBD2676C11ED926300042CD8 /* LaunchctlHelper.m in Sources */ = {isa = PBXBuildFile; fileRef = CBC2F8570F4672FE00CF2A42 /* LaunchctlHelper.m */; };
CBD2676D11ED926600042CD8 /* SelfControlUtilities.m in Sources */ = {isa = PBXBuildFile; fileRef = CBC3C0C10F86DDA10055C0B0 /* SelfControlUtilities.m */; };
CBD2677011ED92DE00042CD8 /* CoreFoundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = CB9E90190F397FF6006DE6E4 /* CoreFoundation.framework */; };
CBD2677111ED92DF00042CD8 /* CoreFoundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = CB9E90190F397FF6006DE6E4 /* CoreFoundation.framework */; };
CBD2677211ED92EE00042CD8 /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 29B97325FDCFA39411CA2CEA /* Foundation.framework */; };
CBD2677311ED92EF00042CD8 /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 29B97325FDCFA39411CA2CEA /* Foundation.framework */; };
CBD2677411ED92F700042CD8 /* Cocoa.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1058C7A1FEA54F0111CA2CBB /* Cocoa.framework */; };
CBD2677511ED92F800042CD8 /* Cocoa.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1058C7A1FEA54F0111CA2CBB /* Cocoa.framework */; };
CBD2677811ED932D00042CD8 /* scheckup in Copy Helper Tools */ = {isa = PBXBuildFile; fileRef = CB5E20BF0FAE0CDC006DBFC8 /* scheckup */; };
CBE4401B0F4BE0670062A1FE /* ThunderbirdPreferenceParser.m in Sources */ = {isa = PBXBuildFile; fileRef = CBE4401A0F4BE0670062A1FE /* ThunderbirdPreferenceParser.m */; };
CBE5C40B0F4D4531003DB900 /* ButtonWithPopupMenu.m in Sources */ = {isa = PBXBuildFile; fileRef = CBE5C40A0F4D4531003DB900 /* ButtonWithPopupMenu.m */; };
CBEE50C10F48C21F00F5DF1C /* TimerWindowController.m in Sources */ = {isa = PBXBuildFile; fileRef = CBEE50C00F48C21F00F5DF1C /* TimerWindowController.m */; };
/* End PBXBuildFile section */
/* Begin PBXContainerItemProxy section */
CB9368280F85D86500EF284E /* PBXContainerItemProxy */ = {
isa = PBXContainerItemProxy;
containerPortal = 29B97313FDCFA39411CA2CEA /* Project object */;
proxyType = 1;
remoteGlobalIDString = 8D1107260486CEB800E47090;
remoteInfo = SelfControl;
};
CBD2676711ED921A00042CD8 /* PBXContainerItemProxy */ = {
isa = PBXContainerItemProxy;
containerPortal = 29B97313FDCFA39411CA2CEA /* Project object */;
proxyType = 1;
remoteGlobalIDString = CB5E20BE0FAE0CDC006DBFC8;
remoteInfo = "SelfControl-checkup";
};
CBEF43CF0F7BB7F6009A9FDF /* PBXContainerItemProxy */ = {
isa = PBXContainerItemProxy;
containerPortal = 29B97313FDCFA39411CA2CEA /* Project object */;
proxyType = 1;
remoteGlobalIDString = CBA2AFD10F39EC12005AFEBE;
remoteInfo = org.eyebeam.SelfControl;
};
/* End PBXContainerItemProxy section */
/* Begin PBXCopyFilesBuildPhase section */
CB2359D90F4541AB0030F59C /* Copy Helper Tools */ = {
isa = PBXCopyFilesBuildPhase;
buildActionMask = 2147483647;
dstPath = "";
dstSubfolderSpec = 6;
files = (
CB1ED4480F56686400EFECEE /* org.eyebeam.SelfControl in Copy Helper Tools */,
CBD2677811ED932D00042CD8 /* scheckup in Copy Helper Tools */,
);
name = "Copy Helper Tools";
runOnlyForDeploymentPostprocessing = 0;
};
CB93655B0F85805300EF284E /* Copy Frameworks */ = {
isa = PBXCopyFilesBuildPhase;
buildActionMask = 2147483647;
dstPath = "";
dstSubfolderSpec = 10;
files = (
CB9366FF0F85BF1D00EF284E /* iLifeControls.framework in Copy Frameworks */,
CB93655C0F85806A00EF284E /* Sparkle.framework in Copy Frameworks */,
);
name = "Copy Frameworks";
runOnlyForDeploymentPostprocessing = 0;
};
/* End PBXCopyFilesBuildPhase section */
/* Begin PBXFileReference section */
089C165DFE840E0CC02AAC07 /* English */ = {isa = PBXFileReference; fileEncoding = 10; lastKnownFileType = text.plist.strings; name = English; path = English.lproj/InfoPlist.strings; sourceTree = "<group>"; };
1058C7A1FEA54F0111CA2CBB /* Cocoa.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Cocoa.framework; path = /System/Library/Frameworks/Cocoa.framework; sourceTree = "<absolute>"; };
1DDD58150DA1D0A300B32029 /* English */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = English; path = English.lproj/MainMenu.xib; sourceTree = "<group>"; };
29B97316FDCFA39411CA2CEA /* main.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = main.m; sourceTree = "<group>"; };
29B97324FDCFA39411CA2CEA /* AppKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = AppKit.framework; path = /System/Library/Frameworks/AppKit.framework; sourceTree = "<absolute>"; };
29B97325FDCFA39411CA2CEA /* Foundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Foundation.framework; path = /System/Library/Frameworks/Foundation.framework; sourceTree = "<absolute>"; };
32CA4F630368D1EE00C91783 /* SelfControl_Prefix.pch */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SelfControl_Prefix.pch; sourceTree = "<group>"; };
8D1107310486CEB800E47090 /* Info.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = "<group>"; };
8D1107320486CEB800E47090 /* SelfControl.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = SelfControl.app; sourceTree = BUILT_PRODUCTS_DIR; };
CB1E7A6D0F9AEA9B00D158BC /* ERRORS */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = ERRORS; sourceTree = "<group>"; };
CB40A8670FBC7DE700167727 /* SelfControlBlocklist.icns */ = {isa = PBXFileReference; lastKnownFileType = image.icns; path = SelfControlBlocklist.icns; sourceTree = "<group>"; };
CB42939A0F53A819008E10CA /* COPYING */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = COPYING; sourceTree = "<group>"; };
CB4295C20F53EF8C008E10CA /* org.eyebeam.SelfControl.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; path = org.eyebeam.SelfControl.plist; sourceTree = "<group>"; };
CB4C58D50F3F8F2A00B5D7CB /* SelfControlIcon.icns */ = {isa = PBXFileReference; lastKnownFileType = image.icns; path = SelfControlIcon.icns; sourceTree = "<group>"; };
CB4C58D90F3F90B000B5D7CB /* Credits.rtf */ = {isa = PBXFileReference; lastKnownFileType = text.rtf; path = Credits.rtf; sourceTree = "<group>"; };
CB529BBD0F32B7ED00564FB8 /* AppController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AppController.h; sourceTree = "<group>"; };
CB529BBE0F32B7ED00564FB8 /* AppController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = AppController.m; sourceTree = "<group>"; };
CB587E4F0F50FE8800C66A09 /* SystemConfiguration.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = SystemConfiguration.framework; path = /System/Library/Frameworks/SystemConfiguration.framework; sourceTree = "<absolute>"; };
CB5B40430F3528E100EFBF4A /* English */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = English; path = English.lproj/DomainList.xib; sourceTree = "<group>"; };
CB5E20BF0FAE0CDC006DBFC8 /* scheckup */ = {isa = PBXFileReference; explicitFileType = "compiled.mach-o.executable"; includeInIndex = 0; path = scheckup; sourceTree = BUILT_PRODUCTS_DIR; };
CB90BF810F49F430006D202D /* HostImporter.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = HostImporter.h; sourceTree = "<group>"; };
CB90BF820F49F430006D202D /* HostImporter.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = HostImporter.m; sourceTree = "<group>"; };
CB93654D0F85802400EF284E /* Sparkle.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; path = Sparkle.framework; sourceTree = "<group>"; };
CB9365610F8581B000EF284E /* dsa_pub.pem */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = dsa_pub.pem; sourceTree = "<group>"; };
CB9365770F85846200EF284E /* SelfControlAppcast.xml */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xml; path = SelfControlAppcast.xml; sourceTree = "<group>"; };
CB9366E60F85BEF100EF284E /* NSRemoveTemplate.jpg */ = {isa = PBXFileReference; lastKnownFileType = image.jpeg; path = NSRemoveTemplate.jpg; sourceTree = "<group>"; };
CB9366E70F85BEF100EF284E /* NSAddTemplate.jpg */ = {isa = PBXFileReference; lastKnownFileType = image.jpeg; path = NSAddTemplate.jpg; sourceTree = "<group>"; };
CB9366EA0F85BF0700EF284E /* iLifeControls.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; path = iLifeControls.framework; sourceTree = "<group>"; };
CB93674D0F85C2C100EF284E /* NSCharacterSet+NewlineAddition.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = "NSCharacterSet+NewlineAddition.h"; sourceTree = "<group>"; };
CB93674E0F85C2C100EF284E /* NSCharacterSet+NewlineAddition.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = "NSCharacterSet+NewlineAddition.m"; sourceTree = "<group>"; };
CB9368390F85DA1D00EF284E /* releasenotes.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html; path = releasenotes.html; sourceTree = "<group>"; };
CB9E90190F397FF6006DE6E4 /* CoreFoundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CoreFoundation.framework; path = System/Library/Frameworks/CoreFoundation.framework; sourceTree = SDKROOT; };
CB9E901D0F397FFA006DE6E4 /* Security.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Security.framework; path = System/Library/Frameworks/Security.framework; sourceTree = SDKROOT; };
CBA2AFD20F39EC12005AFEBE /* org.eyebeam.SelfControl */ = {isa = PBXFileReference; explicitFileType = "compiled.mach-o.executable"; includeInIndex = 0; path = org.eyebeam.SelfControl; sourceTree = BUILT_PRODUCTS_DIR; };
CBA2AFD70F39EC46005AFEBE /* HelperMain.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = HelperMain.h; sourceTree = "<group>"; };
CBA2AFD80F39EC46005AFEBE /* HelperMain.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = HelperMain.m; sourceTree = "<group>"; };
CBA2E7590F41388800571571 /* IPFirewall.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = IPFirewall.h; sourceTree = "<group>"; };
CBA2E75A0F41388800571571 /* IPFirewall.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = IPFirewall.m; sourceTree = "<group>"; };
CBB0AE280FA74566006229B3 /* HostFileBlocker.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = HostFileBlocker.h; sourceTree = "<group>"; };
CBB0AE290FA74566006229B3 /* HostFileBlocker.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = HostFileBlocker.m; sourceTree = "<group>"; };
CBB637210F3E296000EBD135 /* DomainListWindowController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = DomainListWindowController.h; sourceTree = "<group>"; };
CBB637220F3E296000EBD135 /* DomainListWindowController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = DomainListWindowController.m; sourceTree = "<group>"; };
CBC2F8570F4672FE00CF2A42 /* LaunchctlHelper.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = LaunchctlHelper.m; sourceTree = "<group>"; };
CBC2F8650F4674E300CF2A42 /* LaunchctlHelper.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = LaunchctlHelper.h; sourceTree = "<group>"; };
CBC3C0C00F86DDA10055C0B0 /* SelfControlUtilities.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SelfControlUtilities.h; sourceTree = "<group>"; };
CBC3C0C10F86DDA10055C0B0 /* SelfControlUtilities.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = SelfControlUtilities.m; sourceTree = "<group>"; };
CBC3C17E0F870D480055C0B0 /* TimerWindow.xib */ = {isa = PBXFileReference; lastKnownFileType = file.xib; path = TimerWindow.xib; sourceTree = "<group>"; };
CBC3C19D0F8713370055C0B0 /* TigerTimerWindow.xib */ = {isa = PBXFileReference; lastKnownFileType = file.xib; path = TigerTimerWindow.xib; sourceTree = "<group>"; };
CBD266AD11ED7D9C00042CD8 /* HelperCommon.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = HelperCommon.h; sourceTree = "<group>"; };
CBD266AE11ED7D9C00042CD8 /* HelperCommon.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = HelperCommon.m; sourceTree = "<group>"; };
CBD266E111ED84F700042CD8 /* SelfControlCommon.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SelfControlCommon.h; sourceTree = "<group>"; };
CBD2671E11ED882700042CD8 /* CheckupMain.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CheckupMain.h; sourceTree = "<group>"; };
CBD2671F11ED882700042CD8 /* CheckupMain.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = CheckupMain.m; sourceTree = "<group>"; };
CBE440190F4BE0670062A1FE /* ThunderbirdPreferenceParser.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ThunderbirdPreferenceParser.h; sourceTree = "<group>"; };
CBE4401A0F4BE0670062A1FE /* ThunderbirdPreferenceParser.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = ThunderbirdPreferenceParser.m; sourceTree = "<group>"; };
CBE5C4090F4D4531003DB900 /* ButtonWithPopupMenu.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ButtonWithPopupMenu.h; sourceTree = "<group>"; };
CBE5C40A0F4D4531003DB900 /* ButtonWithPopupMenu.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = ButtonWithPopupMenu.m; sourceTree = "<group>"; };
CBEE50BF0F48C21F00F5DF1C /* TimerWindowController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = TimerWindowController.h; sourceTree = "<group>"; };
CBEE50C00F48C21F00F5DF1C /* TimerWindowController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = TimerWindowController.m; sourceTree = "<group>"; };
CBF2893F10AD3A6700A0102F /* appcast_automation.rb */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.script.ruby; path = appcast_automation.rb; sourceTree = "<group>"; };
/* End PBXFileReference section */
/* Begin PBXFrameworksBuildPhase section */
8D11072E0486CEB800E47090 /* Frameworks */ = {
isa = PBXFrameworksBuildPhase;
buildActionMask = 2147483647;
files = (
8D11072F0486CEB800E47090 /* Cocoa.framework in Frameworks */,
CB587E500F50FE8800C66A09 /* SystemConfiguration.framework in Frameworks */,
CBB3FD7A0F53834B00244132 /* Security.framework in Frameworks */,
CB93654E0F85802400EF284E /* Sparkle.framework in Frameworks */,
CB9366EB0F85BF0700EF284E /* iLifeControls.framework in Frameworks */,
);
runOnlyForDeploymentPostprocessing = 0;
};
CB54D4490F93E32B00AA22E9 /* Frameworks */ = {
isa = PBXFrameworksBuildPhase;
buildActionMask = 2147483647;
files = (
CB54D44C0F93E33300AA22E9 /* Security.framework in Frameworks */,
CBD2677011ED92DE00042CD8 /* CoreFoundation.framework in Frameworks */,
CBD2677311ED92EF00042CD8 /* Foundation.framework in Frameworks */,
CBD2677511ED92F800042CD8 /* Cocoa.framework in Frameworks */,
);
runOnlyForDeploymentPostprocessing = 0;
};
CB5E20BD0FAE0CDC006DBFC8 /* Frameworks */ = {
isa = PBXFrameworksBuildPhase;
buildActionMask = 2147483647;
files = (
CBD2676911ED924700042CD8 /* Security.framework in Frameworks */,
CBD2677111ED92DF00042CD8 /* CoreFoundation.framework in Frameworks */,
CBD2677211ED92EE00042CD8 /* Foundation.framework in Frameworks */,
CBD2677411ED92F700042CD8 /* Cocoa.framework in Frameworks */,
);
runOnlyForDeploymentPostprocessing = 0;
};
/* End PBXFrameworksBuildPhase section */
/* Begin PBXGroup section */
1058C7A0FEA54F0111CA2CBB /* Linked Frameworks */ = {
isa = PBXGroup;
children = (
CB9366EA0F85BF0700EF284E /* iLifeControls.framework */,
CB93654D0F85802400EF284E /* Sparkle.framework */,
1058C7A1FEA54F0111CA2CBB /* Cocoa.framework */,
CB587E4F0F50FE8800C66A09 /* SystemConfiguration.framework */,
CB9E901D0F397FFA006DE6E4 /* Security.framework */,
);
name = "Linked Frameworks";
sourceTree = "<group>";
};
1058C7A2FEA54F0111CA2CBB /* Other Frameworks */ = {
isa = PBXGroup;
children = (
29B97324FDCFA39411CA2CEA /* AppKit.framework */,
CB9E90190F397FF6006DE6E4 /* CoreFoundation.framework */,
29B97325FDCFA39411CA2CEA /* Foundation.framework */,
);
name = "Other Frameworks";
sourceTree = "<group>";
};
19C28FACFE9D520D11CA2CBB /* Products */ = {
isa = PBXGroup;
children = (
8D1107320486CEB800E47090 /* SelfControl.app */,
CBA2AFD20F39EC12005AFEBE /* org.eyebeam.SelfControl */,
CB5E20BF0FAE0CDC006DBFC8 /* scheckup */,
);
name = Products;
sourceTree = "<group>";
};
29B97314FDCFA39411CA2CEA /* SelfControl */ = {
isa = PBXGroup;
children = (
CB1E7A6D0F9AEA9B00D158BC /* ERRORS */,
CB4294DF0F53D865008E10CA /* Classes */,
29B97323FDCFA39411CA2CEA /* Frameworks */,
CB4294F10F53D95D008E10CA /* Interfaces */,
29B97315FDCFA39411CA2CEA /* Other Sources */,
19C28FACFE9D520D11CA2CBB /* Products */,
29B97317FDCFA39411CA2CEA /* Resources */,
CB42939A0F53A819008E10CA /* COPYING */,
CB9368390F85DA1D00EF284E /* releasenotes.html */,
CB9365770F85846200EF284E /* SelfControlAppcast.xml */,
CBF2893F10AD3A6700A0102F /* appcast_automation.rb */,
);
name = SelfControl;
sourceTree = "<group>";
};
29B97315FDCFA39411CA2CEA /* Other Sources */ = {
isa = PBXGroup;
children = (
32CA4F630368D1EE00C91783 /* SelfControl_Prefix.pch */,
29B97316FDCFA39411CA2CEA /* main.m */,
);
name = "Other Sources";
sourceTree = "<group>";
};
29B97317FDCFA39411CA2CEA /* Resources */ = {
isa = PBXGroup;
children = (
CB40A8670FBC7DE700167727 /* SelfControlBlocklist.icns */,
CB9366E60F85BEF100EF284E /* NSRemoveTemplate.jpg */,
CB9366E70F85BEF100EF284E /* NSAddTemplate.jpg */,
CB9365610F8581B000EF284E /* dsa_pub.pem */,
CB4295C20F53EF8C008E10CA /* org.eyebeam.SelfControl.plist */,
CB4C58D90F3F90B000B5D7CB /* Credits.rtf */,
8D1107310486CEB800E47090 /* Info.plist */,
089C165CFE840E0CC02AAC07 /* InfoPlist.strings */,
CB4C58D50F3F8F2A00B5D7CB /* SelfControlIcon.icns */,
);
name = Resources;
sourceTree = "<group>";
};
29B97323FDCFA39411CA2CEA /* Frameworks */ = {
isa = PBXGroup;
children = (
1058C7A0FEA54F0111CA2CBB /* Linked Frameworks */,
1058C7A2FEA54F0111CA2CBB /* Other Frameworks */,
);
name = Frameworks;
sourceTree = "<group>";
};
CB4294DF0F53D865008E10CA /* Classes */ = {
isa = PBXGroup;
children = (
CBD266E111ED84F700042CD8 /* SelfControlCommon.h */,
CBB0AE280FA74566006229B3 /* HostFileBlocker.h */,
CBB0AE290FA74566006229B3 /* HostFileBlocker.m */,
CBE5C4090F4D4531003DB900 /* ButtonWithPopupMenu.h */,
CBE5C40A0F4D4531003DB900 /* ButtonWithPopupMenu.m */,
CB93674E0F85C2C100EF284E /* NSCharacterSet+NewlineAddition.m */,
CB93674D0F85C2C100EF284E /* NSCharacterSet+NewlineAddition.h */,
CB529BBD0F32B7ED00564FB8 /* AppController.h */,
CB529BBE0F32B7ED00564FB8 /* AppController.m */,
CBB637210F3E296000EBD135 /* DomainListWindowController.h */,
CBB637220F3E296000EBD135 /* DomainListWindowController.m */,
CBD266C611ED82DB00042CD8 /* Helper Tools */,
CBA2E7590F41388800571571 /* IPFirewall.h */,
CBA2E75A0F41388800571571 /* IPFirewall.m */,
CBE440190F4BE0670062A1FE /* ThunderbirdPreferenceParser.h */,
CBE4401A0F4BE0670062A1FE /* ThunderbirdPreferenceParser.m */,
CB90BF810F49F430006D202D /* HostImporter.h */,
CB90BF820F49F430006D202D /* HostImporter.m */,
CBEE50BF0F48C21F00F5DF1C /* TimerWindowController.h */,
CBEE50C00F48C21F00F5DF1C /* TimerWindowController.m */,
CBC2F8650F4674E300CF2A42 /* LaunchctlHelper.h */,
CBC2F8570F4672FE00CF2A42 /* LaunchctlHelper.m */,
CBC3C0C00F86DDA10055C0B0 /* SelfControlUtilities.h */,
CBC3C0C10F86DDA10055C0B0 /* SelfControlUtilities.m */,
);
name = Classes;
sourceTree = "<group>";
};
CB4294F10F53D95D008E10CA /* Interfaces */ = {
isa = PBXGroup;
children = (
CB5B40420F3528E100EFBF4A /* DomainList.xib */,
1DDD58140DA1D0A300B32029 /* MainMenu.xib */,
CBC3C17E0F870D480055C0B0 /* TimerWindow.xib */,
CBC3C19D0F8713370055C0B0 /* TigerTimerWindow.xib */,
);
name = Interfaces;
sourceTree = "<group>";
};
CBD266C611ED82DB00042CD8 /* Helper Tools */ = {
isa = PBXGroup;
children = (
CBA2AFD70F39EC46005AFEBE /* HelperMain.h */,
CBA2AFD80F39EC46005AFEBE /* HelperMain.m */,
CBD266AD11ED7D9C00042CD8 /* HelperCommon.h */,
CBD266AE11ED7D9C00042CD8 /* HelperCommon.m */,
CBD2671E11ED882700042CD8 /* CheckupMain.h */,
CBD2671F11ED882700042CD8 /* CheckupMain.m */,
);
name = "Helper Tools";
sourceTree = "<group>";
};
/* End PBXGroup section */
/* Begin PBXNativeTarget section */
8D1107260486CEB800E47090 /* SelfControl */ = {
isa = PBXNativeTarget;
buildConfigurationList = C01FCF4A08A954540054247B /* Build configuration list for PBXNativeTarget "SelfControl" */;
buildPhases = (
8D1107290486CEB800E47090 /* Resources */,
8D11072C0486CEB800E47090 /* Sources */,
8D11072E0486CEB800E47090 /* Frameworks */,
CB2359D90F4541AB0030F59C /* Copy Helper Tools */,
CB93655B0F85805300EF284E /* Copy Frameworks */,
CBF2893C10AD3A3300A0102F /* Automate Appcast Build */,
);
buildRules = (
);
dependencies = (
CBEF43D00F7BB7F6009A9FDF /* PBXTargetDependency */,
CBD2676811ED921A00042CD8 /* PBXTargetDependency */,
);
name = SelfControl;
productInstallPath = "$(HOME)/Applications";
productName = SelfControl;
productReference = 8D1107320486CEB800E47090 /* SelfControl.app */;
productType = "com.apple.product-type.application";
};
CB5E20BE0FAE0CDC006DBFC8 /* SelfControl-checkup */ = {
isa = PBXNativeTarget;
buildConfigurationList = CB5E20C50FAE0D01006DBFC8 /* Build configuration list for PBXNativeTarget "SelfControl-checkup" */;
buildPhases = (
CB5E20BC0FAE0CDC006DBFC8 /* Sources */,
CB5E20BD0FAE0CDC006DBFC8 /* Frameworks */,
);
buildRules = (
);
dependencies = (
);
name = "SelfControl-checkup";
productName = scheckup;
productReference = CB5E20BF0FAE0CDC006DBFC8 /* scheckup */;
productType = "com.apple.product-type.tool";
};
CBA2AFD10F39EC12005AFEBE /* org.eyebeam.SelfControl */ = {
isa = PBXNativeTarget;
buildConfigurationList = CBA2AFD60F39EC33005AFEBE /* Build configuration list for PBXNativeTarget "org.eyebeam.SelfControl" */;
buildPhases = (
CBA2AFCF0F39EC12005AFEBE /* Sources */,
CB54D4490F93E32B00AA22E9 /* Frameworks */,
);
buildRules = (
);
dependencies = (
);
name = org.eyebeam.SelfControl;
productName = "selfcontrol-helper";
productReference = CBA2AFD20F39EC12005AFEBE /* org.eyebeam.SelfControl */;
productType = "com.apple.product-type.tool";
};
/* End PBXNativeTarget section */
/* Begin PBXProject section */
29B97313FDCFA39411CA2CEA /* Project object */ = {
isa = PBXProject;
buildConfigurationList = C01FCF4E08A954540054247B /* Build configuration list for PBXProject "SelfControl" */;
compatibilityVersion = "Xcode 3.1";
developmentRegion = English;
hasScannedForEncodings = 1;
knownRegions = (
en,
);
mainGroup = 29B97314FDCFA39411CA2CEA /* SelfControl */;
projectDirPath = "";
projectRoot = "";
targets = (
8D1107260486CEB800E47090 /* SelfControl */,
CBA2AFD10F39EC12005AFEBE /* org.eyebeam.SelfControl */,
CB9368250F85D84E00EF284E /* Distribution */,
CB5E20BE0FAE0CDC006DBFC8 /* SelfControl-checkup */,
);
};
/* End PBXProject section */
/* Begin PBXResourcesBuildPhase section */
8D1107290486CEB800E47090 /* Resources */ = {
isa = PBXResourcesBuildPhase;
buildActionMask = 2147483647;
files = (
CBBCA14B0F54E1B300C75324 /* org.eyebeam.SelfControl.plist in Resources */,
8D11072B0486CEB800E47090 /* InfoPlist.strings in Resources */,
1DDD58160DA1D0A300B32029 /* MainMenu.xib in Resources */,
CB5B40440F3528E100EFBF4A /* DomainList.xib in Resources */,
CB4C58D60F3F8F2A00B5D7CB /* SelfControlIcon.icns in Resources */,
CB4C58DA0F3F90B000B5D7CB /* Credits.rtf in Resources */,
CB9365620F8581B000EF284E /* dsa_pub.pem in Resources */,
CB9365780F85846200EF284E /* SelfControlAppcast.xml in Resources */,
CB9366E80F85BEF100EF284E /* NSRemoveTemplate.jpg in Resources */,
CB9366E90F85BEF100EF284E /* NSAddTemplate.jpg in Resources */,
CBC3C17F0F870D480055C0B0 /* TimerWindow.xib in Resources */,
CBC3C19E0F8713370055C0B0 /* TigerTimerWindow.xib in Resources */,
CB1E7A6E0F9AEA9B00D158BC /* ERRORS in Resources */,
CB40A8680FBC7DE700167727 /* SelfControlBlocklist.icns in Resources */,
);
runOnlyForDeploymentPostprocessing = 0;
};
/* End PBXResourcesBuildPhase section */
/* Begin PBXShellScriptBuildPhase section */
CB9368240F85D84E00EF284E /* ShellScript */ = {
isa = PBXShellScriptBuildPhase;
buildActionMask = 2147483647;
files = (
);
inputPaths = (
);
outputPaths = (
);
runOnlyForDeploymentPostprocessing = 0;
shellPath = /bin/bash;
shellScript = "#!/bin/bash\n\nset -o errexit\n\n[ $BUILD_STYLE = Release ] || { echo Distribution target requires \"'Release'\" build style; false; }\n\nVERSION=$(defaults read \"$BUILT_PRODUCTS_DIR/$PROJECT_NAME.app/Contents/Info\" CFBundleVersion)\nDOWNLOAD_BASE_URL=\"http://cloud.github.com/downloads/slambert/selfcontrol\"\nRELEASENOTES_URL=\"http://cloud.github.com/downloads/slambert/selfcontrol/releasenotes.html#version-$VERSION\"\n\nARCHIVE_FILENAME=\"$PROJECT_NAME-$VERSION.zip\"\nDOWNLOAD_URL=\"$DOWNLOAD_BASE_URL/$ARCHIVE_FILENAME\"\nKEYCHAIN_PRIVKEY_NAME=\"Sparkle Private Key 1\"\n\nWD=$PWD\ncd \"$BUILT_PRODUCTS_DIR\"\nrm -f \"$PROJECT_NAME\"*.zip\nzip -qr \"$ARCHIVE_FILENAME\" \"$PROJECT_NAME.app\"\n\nSIZE=$(stat -f %z \"$ARCHIVE_FILENAME\")\nPUBDATE=$(date +\"%a, %d %b %G %T %z\")\nSIGNATURE=$(\n\topenssl dgst -sha1 -binary < \"$ARCHIVE_FILENAME\" \\\n\t| openssl dgst -dss1 -sign <(security find-generic-password -g -s \"$KEYCHAIN_PRIVKEY_NAME\" 2>&1 1>/dev/null | perl -pe '($_) = /\"(.+)\"/; s/\\\\012/\\n/g') \\\n\t| openssl enc -base64\n)\n\n[ $SIGNATURE ] || { echo Unable to load signing private key with name \"'$KEYCHAIN_PRIVKEY_NAME'\" from keychain; false; }\n\ncat <<EOF\n\t\t<item>\n\t\t\t<title>Version $VERSION</title>\n\t\t\t<sparkle:releaseNotesLink>$RELEASENOTES_URL</sparkle:releaseNotesLink>\n\t\t\t<pubDate>$PUBDATE</pubDate>\n\t\t\t<enclosure\n\t\t\t\turl=\"$DOWNLOAD_URL\"\n\t\t\t\tsparkle:version=\"$VERSION\"\n\t\t\t\ttype=\"application/octet-stream\"\n\t\t\t\tlength=\"$SIZE\"\n\t\t\t\tsparkle:dsaSignature=\"$SIGNATURE\"\n\t\t\t/>\n\t\t</item>\nEOF\n\necho $SIGNATURE >> /Users/charlie/log.log\necho $SIZE >> /Users/charlie/log.log\necho $DOWNLOAD_URL >> /Users/charlie/log.log\necho $VERSION >> /Users/charlie/log.log\n\necho scp \"'$HOME/svn/my-cool-app/build/Release/$ARCHIVE_FILENAME'\" www.example.com:download/\necho scp \"'$WD/appcast.xml'\" www.example.com:web/software/my-cool-app/appcast.xml";
};
CBF2893C10AD3A3300A0102F /* Automate Appcast Build */ = {
isa = PBXShellScriptBuildPhase;
buildActionMask = 2147483647;
files = (
);
inputPaths = (
);
name = "Automate Appcast Build";
outputPaths = (
);
runOnlyForDeploymentPostprocessing = 0;
shellPath = /usr/bin/ruby;
shellScript = "#!/usr/bin/env ruby -w\n\n#################################################################################\n# #\n# appcast_automation.rb #\n# #\n# author: Craig Williams #\n# created: 2009-01-09 #\n# #\n#################################################################################\n# #\n# This program is free software: you can redistribute it and/or modify #\n# it under the terms of the GNU General Public License as published by #\n# the Free Software Foundation, either version 3 of the License, or #\n# (at your option) any later version. #\n# #\n# This program is distributed in the hope that it will be useful, #\n# but WITHOUT ANY WARRANTY; without even the implied warranty of #\n# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the #\n# GNU General Public License for more details. #\n# #\n# You should have received a copy of the GNU General Public License #\n# along with this program. If not, see <http://www.gnu.org/licenses/>. #\n# #\n#################################################################################\n\n=begin\n INTRO:\n In his article, Marc uses a bash script to automate the process of signing your \n Sparkle enabled app and explains how to put your private and public keys in your \n keychain. I wrote a Ruby version that extends this functionality to \n include a few more options…\n\n IMPORTANT: You will need to read Marc's article first before moving forward. \n\n Here is a quick list of added features:\n \n \t1. config.yaml file for configuration information\n \t2. build_now option - when set to 'NO' will not run during Release style build\n \t3. Creates project release folder if it does not exist\n \t4. Creates sub-folders based on version number\n \t5. Creates css file\n \t6. Creates xml file containing the '<item>' info generated by the script\n \t7. Creates an html template file\n \t8. Copies the newly created archive to the project folder\n \n\n The project release folder is not the 'Release' folder Xcode creates. \n This is a folder that contains this and future Sparkle release builds. \n See 'appcast_basefolder' below.\n \n INSTRUCTIONS: \n \n Config YAML file\n A YAML file is easily editable and is a good place for us to set up our \n configuration information. It also enables us not to have to change the \n script once we have it the way we want it. \n\n Create a 'config.yaml' file and place it in your projects 'Release' folder\n and include the following making the necessary changes.\n ---\n build_now: 'YES'\n download_base_url: 'http://www.your_website.com/app_folder/'\n appcast_basefolder: '/users/user_name/desktop/app_name/'\n appcast_xml_name: 'appcast.xml'\n keychain_privkey_name: 'Sparkle Private Key'\n css_file_name: 'rnotes.css'\n\n IMPORTANT: If you change the variable names here you also \n need to change them in the script.\n \n VARIABLE EXPLANATION\n\n build_now: \n Will only include this script in the build process if this is set to 'YES'\n The script automatically checks that the build style is 'Release'\n\n download_base_url: \n Your website url where you will place your updated project\n\n appcast_basefolder: \n The base file is created for you and a project folder inside that with\n the name of your project and version number. \n \teg - ProjectName \n \t\t - ProjectName 1.0\n \t\t\t - appcast.xml (contains the '<item>' info)\n \t\t\t - 1.0.html\n \t\t\t - rnotes.css\n \t\t\t - ProjectName 1.0.zip\n \t\t - ProjectName 1.1\n \t\t\t - appcast.xml (contains the '<item>' info)\n \t\t\t - 1.1.html\n \t\t\t - rnotes.css\n \t\t\t - ProjectName 1.1.zip\n \n \n The following files are created for you if they do not already exist.\n appcast_xml_name:\n css_file_name:\n version_number.html\n\n Your archived project file is also copied to the project folder\n AppName 1.1.zip\n\n appcast_xml_name:\n This file holds the results of the script. What is between the '' tags that\n you will copy into your complete appcast.xml file.\n Name to your liking.\n\n keychain_privkey_name:\n You should understand this after reading Marc's article.\n Name to your liking.\n\n css_file_name:\n This name will be used to create your css file and the link in the xml file. \n If you change this after these are created make sure also change the xml file \n or if you created the css file first use that name here.\n\n The css is at the bottom of the script and is in 'flat' form. One liners.\n When written to file it is expanded to standard format for easy editing.\n\n Once your config.yaml file is created and placed in your projects 'Release' folder, \n add this script as a 'Run Script' build phase. Set the bash to /usr/bin/ruby \n and you are finished!\n\n If you have questions, ideas or bug reports please post them at:\n http://allancraig.net/blog/?p=65\n \n=end\n\nclass AppCast\n require 'yaml'\n require 'tmpdir'\n require 'fileutils'\n \n MESSAGE_HEADER = 'RUN SCRIPT DURING BUILD MESSAGE'\n \n def initialize\n @signature = ''\n require_release_build\n instantiate_project_variables\n load_config_file\n \n # the build_now setting in the config.yaml file\n # determines whether you want to perform this script\n # set to 'NO' until you are ready to publish\n exit_if_build_not_set_to_yes\n instantiate_appcast_variables\n end\n \n def main_worker_bee\n create_appcast_folder_and_files\n remove_old_zip_create_new_zip\n file_stats\n create_key\n create_appcast_xml\n copy_archive_to_appcast_path\n end\n \n # Only works for Release builds\n # Exits upon failure\n def require_release_build\n if ENV[\"BUILD_STYLE\"] == 'Debug'\n log_message(\"Distribution target requires 'Release' build style\")\n exit\n end\n end\n \n # Exits if no config.yaml file found.\n def load_config_file\n config_file_path = \"#{@proj_dir}/config.yaml\"\n if !File.exists?(config_file_path)\n log_message(\"No 'config.yaml' file found in project directory.\")\n exit\n end\n @config = YAML.load_file(config_file_path)\n end\n \n def exit_if_build_not_set_to_yes\n if @config['build_now'] != 'YES'\n log_message(\"The 'build_now' setting in 'config.yaml' set to 'NO'\\nIf you are wanting to include this script in\\nthe build process change this setting to 'YES'\")\n exit\n end\n end\n\n def instantiate_project_variables\n @proj_dir = ENV['BUILT_PRODUCTS_DIR']\n @proj_name = ENV['PROJECT_NAME']\n @version = `defaults read \"#{@proj_dir}/#{@proj_name}.app/Contents/Info\" CFBundleVersion`\n @archive_filename = \"#{@proj_name} #{@version.chomp}.zip\"\n @archive_path = \"#{@proj_dir}/#{@archive_filename}\"\n end\n\n def instantiate_appcast_variables\n @appcast_xml_name = @config['appcast_xml_name'].chomp\n @appcast_basefolder = @config['appcast_basefolder'].chomp\n @appcast_proj_folder = \"#{@config['appcast_basefolder']}/#{@proj_name}_#{@version}\".chomp\n @appcast_xml_path = \"#{@appcast_proj_folder}/#{@appcast_xml_name}\"\n @download_base_url = @config['download_base_url']\n @keychain_privkey_name = @config['keychain_privkey_name']\n @css_file_name = @config['css_file_name']\n @releasenotes_url = \"#{@download_base_url}#{@version.chomp}.html\"\n @download_url = \"#{@download_base_url}#{@archive_filename}\"\n end\n\n def remove_old_zip_create_new_zip\n Dir.chdir(@proj_dir)\n `rm -f #{@proj_name}*.zip`\n `zip -qr \"#{@archive_filename}\" \"#{@proj_name}.app\"`\n end\n \n def copy_archive_to_appcast_path\n begin\n FileUtils.cp(@archive_path, @appcast_proj_folder)\n rescue\n log_message(\"There was an error copying the zip file to appcast folder\\nError: #{$!}\")\n end\n end\n \n def file_stats\n @size = File.size(@archive_filename)\n @pubdate = `date +\"%a, %d %b %G %T %z\"`\n end\n \n def create_key\n priv_key_path = \"#{Dir.tmpdir}/priv_key.pem\"\n \n key = `security find-generic-password -g -s \"#{@keychain_privkey_name}\" 2>&1 1>/dev/null | perl -pe '($_) = /\"(.+)\"/'`\n \n if key == ''\n log_message(\"Unable to load signing private key with name '#{@keychain_privkey_name}' from keychain\\nFor file #{@archive_filename}\")\n exit\n end\n\n File.open(priv_key_path, 'w') { |f| f.puts key.split(\"\\\\012\") } \n \n @signature = `openssl dgst -sha1 -binary < '#{@archive_path}' \\\n | openssl dgst -dss1 -sign '#{priv_key_path}' \\\n | openssl enc -base64`\n\n `rm -fP #{priv_key_path}`\n\n log_message(@signature)\n\n if @signature == ''\n log_message(\"Unable to sign file #{@archive_filename}\")\n exit\n end\n end\n \n def create_appcast_xml\n appcast_xml = \n\"<item>\n\t<title>Version #{@version.chomp}</title>\n\t <sparkle:releaseNotesLink>\n\t #{@releasenotes_url.chomp}\n\t </sparkle:releaseNotesLink>\n\t<pubDate>#{@pubdate.chomp}</pubDate>\n\t<enclosure\n\t\turl=\\\"#{@download_url.chomp}\\\"\n\t\tsparkle:version=\\\"#{@version.chomp}\\\"\n\t\ttype=\\\"application/octet-stream\\\"\n\t\tlength=\\\"#{@size}\\\"\n\t\tsparkle:dsaSignature=\\\"#{@signature.chomp}\\\"\n\t/>\n</item>\"\n\n File.open(@appcast_xml_path, 'w') { |f| f.puts appcast_xml }\n end\n \n # Creates the appcast folder if it does not exist\n # or is accidently moved or deleted\n # Creates an html file with generic note template if it does not exist\n # This way the notes file is named correctly as well\n # Creates a css file named from yaml file with default css\n def create_appcast_folder_and_files\n base_folder = @appcast_basefolder\n project_folder = @appcast_proj_folder\n \n notes_file = \"#{project_folder}/#{File.basename(@releasenotes_url.chomp)}\"\n css_file_path = \"#{project_folder}/#{@css_file_name}\"\n \n Dir.mkdir(base_folder) if !File.exists?(base_folder)\n Dir.mkdir(project_folder) if !File.exists?(project_folder)\n \n File.open(notes_file, 'w') { |f| f.puts release_notes_generic_text } if !File.exists?(notes_file)\n File.open(css_file_path, 'w') { |f| f.puts decompressed_css } if !File.exists?(css_file_path)\n end\n \n def log_message(msg)\n puts \"\\n\\n----------------------------------------------\"\n puts MESSAGE_HEADER\n puts msg\n puts \"----------------------------------------------\\n\\n\"\n end\n \n def decompressed_css\n return css_text.gsub(/\\{\\s+/, \"{\\n\\t\").gsub(/;/, \";\\n\\t\").gsub(/^\\s+\\}/, \"}\").gsub(/^\\s+/, \"\\t\")\n end\n \n def release_notes_generic_text\n return \"<html>\n\n \t<head>\n \t\t<meta http-equiv=\\\"content-type\\\" content=\\\"text/html;charset=utf-8\\\">\n \t\t<title>What's new in #{@proj_name}?</title>\n \t\t<meta name=\\\"robots\\\" content=\\\"anchors\\\">\n \t\t<link href=\\\"rnotes.css\\\" type=\\\"text/css\\\" rel=\\\"stylesheet\\\" media=\\\"all\\\">\n \t</head>\n\n \t<body>\n \t\t<br />\n \t\t\t<table class=\\\"dots\\\" width=\\\"100%\\\" border=\\\"0\\\" cellspacing=\\\"0\\\" cellpadding=\\\"0\\\" summary=\\\"Two column table with heading\\\">\n \t\t\t\t<tr>\n \t\t\t\t\t<td class=\\\"blue\\\" colspan=\\\"2\\\">\n \t\t\t\t\t\t<h3>TITLE</h3>\n \t\t\t\t\t</td>\n \t\t\t\t</tr>\n \t\t\t\t<tr>\n \t\t\t\t\t<td valign=\\\"top\\\" width=\\\"150\\\"><img src=\\\"IMAGE_NAME.png\\\" alt=\\\"ALT_TITLE\\\" width=\\\"150\\\" border=\\\"0\\\"></td>\n \t\t\t\t\t<td valign=\\\"top\\\">\n \t\t\t\t\t\t<p>DESCRIPTION</p>\n \t\t\t\t\t</td>\n \t\t\t\t</tr>\n \t\t\t</table>\n \t\t\t<br>\n \t\t\t<table class=\\\"dots\\\" width=\\\"100%\\\" border=\\\"0\\\" cellspacing=\\\"0\\\" cellpadding=\\\"0\\\" summary=\\\"Two column table with heading\\\">\n \t\t\t\t<tr>\n \t\t\t\t\t<td class=\\\"blue\\\" colspan=\\\"2\\\">\n \t\t\t\t\t\t<h3>TITLE</h3>\n \t\t\t\t\t</td>\n \t\t\t\t</tr>\n \t\t\t\t<tr>\n \t\t\t\t\t<td valign=\\\"top\\\" width=\\\"150\\\"><img src=\\\"IMAGE_NAME.png\\\" alt=\\\"ALT_TITLE\\\" width=\\\"150\\\" border=\\\"0\\\"></td>\n \t\t\t\t\t<td valign=\\\"top\\\">\n \t\t\t\t\t\t<p>DESCRIPTION</p>\n \t\t\t\t\t</td>\n \t\t\t\t</tr>\n \t\t\t</table>\n \t\t\t<br>\n \t</body>\n\n </html>\" \n end\n \n # This css will be expanded to a normal, easily editable form when written to file\n def css_text\n return \"body { margin: 2px 12px 12px; }\nh1 h2 h3 p ol ul a a:hover { font-family: \\\"Lucida Grande\\\", Arial, sans-serif; }\nh1 { font-size: 11pt; margin-bottom: 0; }\nh2 { font-size: 9pt; margin-top: 0; margin-bottom: -10px; }\nh3 { font-size: 9pt; font-weight: bold; margin-top: -4px; margin-bottom: -4px; }\np { font-size: 9pt; line-height: 12pt; text-decoration: none; }\nol { font-size: 9pt; line-height: 12pt; list-style-position: outside; margin-top: 12px; margin-bottom: 12px; margin-left: -18px; padding-left: 40px; }\nol li { margin-top: 6px; margin-bottom: 6px; }\nol p { margin-top: 6px; margin-bottom: 6px; }\nul { font-size: 9pt; line-height: 12pt; list-style-type: square; list-style-position: outside; margin-top: 12px; margin-bottom: 12px; margin-left: -24px; padding-left: 40px; }\nul li { margin-top: 6px; margin-bottom: 6px; }\nul p { margin-top: 6px; margin-bottom: 6px; }\na { color: #00f; font-size: 9pt; line-height: 12pt; text-decoration: none; }\na:hover { color: #00f; text-decoration: underline; }\nhr { text-decoration: none; border: solid 1px #bfbfbf; }\ntd { padding: 6px; }\n#banner { background-color: #f2f2f2; background-repeat: no-repeat; padding: -2px 6px 0; position: fixed; top: 0; left: 0; width: 100%; height: 1.2em; float: left; border: solid 1px #bfbfbf; }\n#caticon { margin-top: 3px; margin-bottom: -3px; margin-right: 5px; float: left; }\n#pagetitle { margin-top: 12px; margin-bottom: 0px; margin-left: 40px; width: 88%; border: solid 1px #fff; }\n#mainbox { margin-top: 2349px; padding-right: 6px; }\n#taskbox { background-color: #e6edff; list-style-type: decimal; list-style-position: outside; margin: 12px 0; padding: 2px 12px; border: solid 1px #bfbfbf; }\n#taskbox h2 { margin-top: 8; margin-bottom: -4px; }\n#machelp { position: absolute; top: 2px; left: 10px ; }\n#index { background-color: #f2f2f2; padding-right: 25px; top: 2px; right: 12px; width: auto; float: right; }\n#next { position: absolute; top: 49px; left: 88%; }\n#asindent { margin-left: 22px; font-size: 9pt; font-family: Verdana, Courier, sans-serif; }\n.bread { color: #00f; font-size: 8pt; margin: -9px 0 -6px; }\n.leftborder { color: #00f; font-size: 8pt; margin: -9px 0 -6px; padding-top: 2px; padding-bottom: 3px; padding-left: 8px; border-left: 1px solid #bfbfbf; }\n.mult { margin-top: -8px; }\n.blue { background-color: #e6edff; margin-top: -3px; margin-bottom: -3px; padding-top: -3px; padding-bottom: -3px; }\n.rightfloater { float: right; margin-left: 15px; }\n.rules { border-bottom: 1px dotted #ccc; }\n.dots { border: dotted 1px #ccc; }\n.seealso { margin-top: 4px; margin-bottom: 4px; }\ncode { color: black; font-size: 9pt; font-family: Verdana, Courier, sans-serif; }\"\n end\nend\n \nif __FILE__ == $0\n newAppcast = AppCast.new\n newAppcast.main_worker_bee\n newAppcast.log_message(\"It appears all went well with the build script!\")\nend\n\t \n\t \n\t \n\t \n\t \n\t ";
};
/* End PBXShellScriptBuildPhase section */
/* Begin PBXSourcesBuildPhase section */
8D11072C0486CEB800E47090 /* Sources */ = {
isa = PBXSourcesBuildPhase;
buildActionMask = 2147483647;
files = (
8D11072D0486CEB800E47090 /* main.m in Sources */,
CB529BBF0F32B7ED00564FB8 /* AppController.m in Sources */,
CBEE50C10F48C21F00F5DF1C /* TimerWindowController.m in Sources */,
CB90BF830F49F430006D202D /* HostImporter.m in Sources */,
CBE4401B0F4BE0670062A1FE /* ThunderbirdPreferenceParser.m in Sources */,
CBE5C40B0F4D4531003DB900 /* ButtonWithPopupMenu.m in Sources */,
CBB7DEEA0F53313F00ABF3EA /* DomainListWindowController.m in Sources */,
CB93674F0F85C2C100EF284E /* NSCharacterSet+NewlineAddition.m in Sources */,
CBC3C0C20F86DDA10055C0B0 /* SelfControlUtilities.m in Sources */,
);
runOnlyForDeploymentPostprocessing = 0;
};
CB5E20BC0FAE0CDC006DBFC8 /* Sources */ = {
isa = PBXSourcesBuildPhase;
buildActionMask = 2147483647;
files = (
CBD2676C11ED926300042CD8 /* LaunchctlHelper.m in Sources */,
CBD266B111ED7D9C00042CD8 /* HelperCommon.m in Sources */,
CBD2676D11ED926600042CD8 /* SelfControlUtilities.m in Sources */,
CBD2672011ED882700042CD8 /* CheckupMain.m in Sources */,
CBD2676A11ED925700042CD8 /* HostFileBlocker.m in Sources */,
CBD2676B11ED925700042CD8 /* IPFirewall.m in Sources */,
);
runOnlyForDeploymentPostprocessing = 0;
};
CBA2AFCF0F39EC12005AFEBE /* Sources */ = {
isa = PBXSourcesBuildPhase;
buildActionMask = 2147483647;
files = (
CBA2AFD90F39EC46005AFEBE /* HelperMain.m in Sources */,
CBA2E75B0F41388800571571 /* IPFirewall.m in Sources */,
CBC2F8580F4672FE00CF2A42 /* LaunchctlHelper.m in Sources */,
CB5A306E0F92E582005CCA3E /* SelfControlUtilities.m in Sources */,
CBB0AE2A0FA74566006229B3 /* HostFileBlocker.m in Sources */,
CBD266B011ED7D9C00042CD8 /* HelperCommon.m in Sources */,
);
runOnlyForDeploymentPostprocessing = 0;
};
/* End PBXSourcesBuildPhase section */
/* Begin PBXTargetDependency section */
CB9368290F85D86500EF284E /* PBXTargetDependency */ = {
isa = PBXTargetDependency;
target = 8D1107260486CEB800E47090 /* SelfControl */;
targetProxy = CB9368280F85D86500EF284E /* PBXContainerItemProxy */;
};
CBD2676811ED921A00042CD8 /* PBXTargetDependency */ = {
isa = PBXTargetDependency;
target = CB5E20BE0FAE0CDC006DBFC8 /* SelfControl-checkup */;
targetProxy = CBD2676711ED921A00042CD8 /* PBXContainerItemProxy */;
};
CBEF43D00F7BB7F6009A9FDF /* PBXTargetDependency */ = {
isa = PBXTargetDependency;
target = CBA2AFD10F39EC12005AFEBE /* org.eyebeam.SelfControl */;
targetProxy = CBEF43CF0F7BB7F6009A9FDF /* PBXContainerItemProxy */;
};
/* End PBXTargetDependency section */
/* Begin PBXVariantGroup section */
089C165CFE840E0CC02AAC07 /* InfoPlist.strings */ = {
isa = PBXVariantGroup;
children = (
089C165DFE840E0CC02AAC07 /* English */,
);
name = InfoPlist.strings;
sourceTree = "<group>";
};
1DDD58140DA1D0A300B32029 /* MainMenu.xib */ = {
isa = PBXVariantGroup;
children = (
1DDD58150DA1D0A300B32029 /* English */,
);
name = MainMenu.xib;
sourceTree = "<group>";
};
CB5B40420F3528E100EFBF4A /* DomainList.xib */ = {
isa = PBXVariantGroup;
children = (
CB5B40430F3528E100EFBF4A /* English */,
);
name = DomainList.xib;
sourceTree = "<group>";
};
/* End PBXVariantGroup section */
/* Begin XCBuildConfiguration section */
C01FCF4B08A954540054247B /* Debug */ = {
isa = XCBuildConfiguration;
buildSettings = {
ALWAYS_SEARCH_USER_PATHS = NO;
ARCHS = "$(ARCHS_STANDARD_32_64_BIT)";
COPY_PHASE_STRIP = NO;
FRAMEWORK_SEARCH_PATHS = (
"$(inherited)",
"\"$(SRCROOT)\"",
);
GCC_DYNAMIC_NO_PIC = NO;
GCC_ENABLE_FIX_AND_CONTINUE = YES;
GCC_MODEL_TUNING = G5;
GCC_OPTIMIZATION_LEVEL = 0;
GCC_PRECOMPILE_PREFIX_HEADER = YES;
GCC_PREFIX_HEADER = SelfControl_Prefix.pch;
INFOPLIST_FILE = Info.plist;
INSTALL_PATH = "$(HOME)/Applications";
MACOSX_DEPLOYMENT_TARGET = 10.4;
PRODUCT_NAME = SelfControl;
SDKROOT = macosx;
};
name = Debug;
};
C01FCF4C08A954540054247B /* Release */ = {
isa = XCBuildConfiguration;
buildSettings = {
ALWAYS_SEARCH_USER_PATHS = NO;
ARCHS = "$(ARCHS_STANDARD_32_64_BIT)";
DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym";
FRAMEWORK_SEARCH_PATHS = (
"$(inherited)",
"\"$(SRCROOT)\"",
);
GCC_MODEL_TUNING = G5;
GCC_PRECOMPILE_PREFIX_HEADER = YES;
GCC_PREFIX_HEADER = SelfControl_Prefix.pch;
INFOPLIST_FILE = Info.plist;
INSTALL_PATH = "$(HOME)/Applications";
MACOSX_DEPLOYMENT_TARGET = 10.4;
PRODUCT_NAME = SelfControl;
SDKROOT = macosx;
};
name = Release;
};
C01FCF4F08A954540054247B /* Debug */ = {
isa = XCBuildConfiguration;
buildSettings = {
ARCHS = "$(ARCHS_STANDARD_32_BIT)";
COPY_PHASE_STRIP = NO;
GCC_C_LANGUAGE_STANDARD = c99;
GCC_OPTIMIZATION_LEVEL = s;
GCC_VERSION = 4.0;
GCC_WARN_ABOUT_RETURN_TYPE = YES;
GCC_WARN_UNUSED_VARIABLE = YES;
MACOSX_DEPLOYMENT_TARGET = 10.5;
ONLY_ACTIVE_ARCH = NO;
PREBINDING = YES;
SDKROOT = macosx;
STRIP_INSTALLED_PRODUCT = NO;
STRIP_STYLE = debugging;
};
name = Debug;
};
C01FCF5008A954540054247B /* Release */ = {
isa = XCBuildConfiguration;
buildSettings = {
ARCHS = "$(ARCHS_STANDARD_32_BIT)";
COPY_PHASE_STRIP = NO;
GCC_C_LANGUAGE_STANDARD = c99;
GCC_VERSION = 4.0;
GCC_WARN_ABOUT_RETURN_TYPE = YES;
GCC_WARN_UNUSED_VARIABLE = YES;
MACOSX_DEPLOYMENT_TARGET = 10.5;
ONLY_ACTIVE_ARCH = NO;
PREBINDING = NO;
SDKROOT = macosx;
STRIP_INSTALLED_PRODUCT = NO;
STRIP_STYLE = debugging;
};
name = Release;
};
CB5E20C10FAE0CDD006DBFC8 /* Debug */ = {
isa = XCBuildConfiguration;
buildSettings = {
ALWAYS_SEARCH_USER_PATHS = NO;
ARCHS = "$(ARCHS_STANDARD_32_64_BIT)";
COPY_PHASE_STRIP = NO;
GCC_DYNAMIC_NO_PIC = NO;
GCC_ENABLE_FIX_AND_CONTINUE = YES;
GCC_MODEL_TUNING = G5;
GCC_OPTIMIZATION_LEVEL = 0;
GCC_PRECOMPILE_PREFIX_HEADER = YES;
GCC_PREFIX_HEADER = "$(SYSTEM_LIBRARY_DIR)/Frameworks/Carbon.framework/Headers/Carbon.h";
INSTALL_MODE_FLAG = "u+w,go-w,a+rX,u+s";
INSTALL_OWNER = "$(USER)";
INSTALL_PATH = /usr/local/bin;
OTHER_LDFLAGS = (
"-framework",
Carbon,
);
PREBINDING = NO;
PRODUCT_NAME = scheckup;
};
name = Debug;
};
CB5E20C20FAE0CDD006DBFC8 /* Release */ = {
isa = XCBuildConfiguration;
buildSettings = {
ALWAYS_SEARCH_USER_PATHS = NO;
ARCHS = "$(ARCHS_STANDARD_32_64_BIT)";
COPY_PHASE_STRIP = YES;
DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym";
GCC_ENABLE_FIX_AND_CONTINUE = NO;
GCC_MODEL_TUNING = G5;
GCC_PRECOMPILE_PREFIX_HEADER = YES;
GCC_PREFIX_HEADER = "$(SYSTEM_LIBRARY_DIR)/Frameworks/Carbon.framework/Headers/Carbon.h";
INSTALL_MODE_FLAG = "u+w,go-w,a+rX,u+s";
INSTALL_OWNER = "$(USER)";
INSTALL_PATH = /usr/local/bin;
OTHER_LDFLAGS = (
"-framework",
Carbon,
);
PREBINDING = NO;
PRODUCT_NAME = scheckup;
ZERO_LINK = NO;
};
name = Release;
};
CB9368260F85D84E00EF284E /* Debug */ = {
isa = XCBuildConfiguration;
buildSettings = {
COPY_PHASE_STRIP = NO;
DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym";
GCC_DYNAMIC_NO_PIC = NO;
GCC_OPTIMIZATION_LEVEL = 0;
PREBINDING = "";
PRODUCT_NAME = "Sparkle Distribution";
};
name = Debug;
};
CB9368270F85D84E00EF284E /* Release */ = {
isa = XCBuildConfiguration;
buildSettings = {
COPY_PHASE_STRIP = NO;
DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym";
GCC_ENABLE_FIX_AND_CONTINUE = NO;
PREBINDING = "";
PRODUCT_NAME = "Sparkle Distribution";
ZERO_LINK = NO;
};
name = Release;
};
CBA2AFD40F39EC14005AFEBE /* Debug */ = {
isa = XCBuildConfiguration;
buildSettings = {
ALWAYS_SEARCH_USER_PATHS = NO;
ARCHS = "$(ARCHS_STANDARD_32_64_BIT)";
COPY_PHASE_STRIP = NO;
DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym";
GCC_DYNAMIC_NO_PIC = NO;
GCC_ENABLE_FIX_AND_CONTINUE = YES;
GCC_MODEL_TUNING = G5;
GCC_OPTIMIZATION_LEVEL = 0;
GCC_PRECOMPILE_PREFIX_HEADER = YES;
GCC_PREFIX_HEADER = "$(SYSTEM_LIBRARY_DIR)/Frameworks/AppKit.framework/Headers/AppKit.h";
INSTALL_PATH = /usr/local/bin;
OTHER_LDFLAGS = (
"-framework",
Foundation,
"-framework",
AppKit,
);
PREBINDING = NO;
PRODUCT_NAME = org.eyebeam.SelfControl;
SDKROOT = macosx;
};
name = Debug;
};
CBA2AFD50F39EC14005AFEBE /* Release */ = {
isa = XCBuildConfiguration;
buildSettings = {
ALWAYS_SEARCH_USER_PATHS = NO;
ARCHS = "$(ARCHS_STANDARD_32_64_BIT)";
COPY_PHASE_STRIP = NO;
DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym";
GCC_ENABLE_FIX_AND_CONTINUE = NO;
GCC_MODEL_TUNING = G5;
GCC_PRECOMPILE_PREFIX_HEADER = YES;
GCC_PREFIX_HEADER = "$(SYSTEM_LIBRARY_DIR)/Frameworks/AppKit.framework/Headers/AppKit.h";
INSTALL_PATH = /usr/local/bin;
OTHER_LDFLAGS = (
"-framework",
Foundation,
"-framework",
AppKit,
);
PREBINDING = NO;
PRODUCT_NAME = org.eyebeam.SelfControl;
SDKROOT = macosx;
ZERO_LINK = NO;
};
name = Release;
};
/* End XCBuildConfiguration section */
/* Begin XCConfigurationList section */
C01FCF4A08A954540054247B /* Build configuration list for PBXNativeTarget "SelfControl" */ = {
isa = XCConfigurationList;
buildConfigurations = (
C01FCF4B08A954540054247B /* Debug */,
C01FCF4C08A954540054247B /* Release */,
);
defaultConfigurationIsVisible = 0;
defaultConfigurationName = Release;
};
C01FCF4E08A954540054247B /* Build configuration list for PBXProject "SelfControl" */ = {
isa = XCConfigurationList;
buildConfigurations = (
C01FCF4F08A954540054247B /* Debug */,
C01FCF5008A954540054247B /* Release */,
);
defaultConfigurationIsVisible = 0;
defaultConfigurationName = Release;
};
CB5E20C50FAE0D01006DBFC8 /* Build configuration list for PBXNativeTarget "SelfControl-checkup" */ = {
isa = XCConfigurationList;
buildConfigurations = (
CB5E20C10FAE0CDD006DBFC8 /* Debug */,
CB5E20C20FAE0CDD006DBFC8 /* Release */,
);
defaultConfigurationIsVisible = 0;
defaultConfigurationName = Release;
};
CB93682C0F85D88C00EF284E /* Build configuration list for PBXAggregateTarget "Distribution" */ = {
isa = XCConfigurationList;
buildConfigurations = (
CB9368260F85D84E00EF284E /* Debug */,
CB9368270F85D84E00EF284E /* Release */,
);
defaultConfigurationIsVisible = 0;
defaultConfigurationName = Release;
};
CBA2AFD60F39EC33005AFEBE /* Build configuration list for PBXNativeTarget "org.eyebeam.SelfControl" */ = {
isa = XCConfigurationList;
buildConfigurations = (
CBA2AFD40F39EC14005AFEBE /* Debug */,
CBA2AFD50F39EC14005AFEBE /* Release */,
);
defaultConfigurationIsVisible = 0;
defaultConfigurationName = Release;
};
/* End XCConfigurationList section */
};
rootObject = 29B97313FDCFA39411CA2CEA /* Project object */;
}
Jump to Line
Something went wrong with that request. Please try again.