Use a new approach to implement launch at login.

This commit is contained in:
Charlie Qiu
2017-01-12 23:44:29 +08:00
parent 29c6bf8c3a
commit f137d51cb2
8 changed files with 1178 additions and 68 deletions

View File

@ -36,6 +36,8 @@
9B3FFF4C1D09D8F70019A709 /* install_helper.sh in Resources */ = {isa = PBXBuildFile; fileRef = 9B3FFF4B1D09D8F70019A709 /* install_helper.sh */; };
9B3FFF4F1D09D9D50019A709 /* ProxyConfHelper.m in Sources */ = {isa = PBXBuildFile; fileRef = 9B3FFF4E1D09D9D50019A709 /* ProxyConfHelper.m */; };
9B3FFF541D09E2D10019A709 /* proxy_conf_helper in Resources */ = {isa = PBXBuildFile; fileRef = 9B3FFF441D09CD3B0019A709 /* proxy_conf_helper */; };
9B6BF9521E27B23F0061B9A7 /* LaunchHelper.app in CopyFiles */ = {isa = PBXBuildFile; fileRef = 9B6BF9501E27B1F20061B9A7 /* LaunchHelper.app */; settings = {ATTRIBUTES = (RemoveHeadersOnCopy, ); }; };
9B6BF9541E27B2570061B9A7 /* ServiceManagement.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 9B6BF9531E27B2570061B9A7 /* ServiceManagement.framework */; };
9B9CBCA61E25E1DB00FC61AA /* KcptunProfile.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9B9CBCA51E25E1DB00FC61AA /* KcptunProfile.swift */; };
9B9CBCA81E26312E00FC61AA /* install_kcptun.sh in Resources */ = {isa = PBXBuildFile; fileRef = 9B9CBCA71E26310E00FC61AA /* install_kcptun.sh */; };
9B9CBCAA1E2633CB00FC61AA /* kcptun_client in Resources */ = {isa = PBXBuildFile; fileRef = 9B9CBCA91E2633CB00FC61AA /* kcptun_client */; };
@ -87,6 +89,13 @@
remoteGlobalIDString = 9B3FFF431D09CD3B0019A709;
remoteInfo = proxy_conf_helper;
};
9B6BF94F1E27B1F20061B9A7 /* PBXContainerItemProxy */ = {
isa = PBXContainerItemProxy;
containerPortal = 9B6BF94B1E27B1F10061B9A7 /* LaunchHelper.xcodeproj */;
proxyType = 2;
remoteGlobalIDString = 9B6BF93B1E27B1F10061B9A7;
remoteInfo = LaunchHelper;
};
/* End PBXContainerItemProxy section */
/* Begin PBXCopyFilesBuildPhase section */
@ -99,6 +108,16 @@
);
runOnlyForDeploymentPostprocessing = 1;
};
9B6BF9511E27B2250061B9A7 /* CopyFiles */ = {
isa = PBXCopyFilesBuildPhase;
buildActionMask = 2147483647;
dstPath = Contents/Library/LoginItems;
dstSubfolderSpec = 1;
files = (
9B6BF9521E27B23F0061B9A7 /* LaunchHelper.app in CopyFiles */,
);
runOnlyForDeploymentPostprocessing = 0;
};
/* End PBXCopyFilesBuildPhase section */
/* Begin PBXFileReference section */
@ -156,6 +175,8 @@
9B3FFF4E1D09D9D50019A709 /* ProxyConfHelper.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = ProxyConfHelper.m; sourceTree = "<group>"; };
9B3FFF501D09DAEA0019A709 /* proxy_conf_helper_version.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = proxy_conf_helper_version.h; sourceTree = "<group>"; };
9B3FFF511D09DBA20019A709 /* ShadowsocksX-NG-Bridging-Header.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = "ShadowsocksX-NG-Bridging-Header.h"; sourceTree = "<group>"; };
9B6BF94B1E27B1F10061B9A7 /* LaunchHelper.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = LaunchHelper.xcodeproj; path = LaunchHelper/LaunchHelper.xcodeproj; sourceTree = "<group>"; };
9B6BF9531E27B2570061B9A7 /* ServiceManagement.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = ServiceManagement.framework; path = System/Library/Frameworks/ServiceManagement.framework; sourceTree = SDKROOT; };
9B9CBCA51E25E1DB00FC61AA /* KcptunProfile.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = KcptunProfile.swift; sourceTree = "<group>"; };
9B9CBCA71E26310E00FC61AA /* install_kcptun.sh */ = {isa = PBXFileReference; lastKnownFileType = text.script.sh; path = install_kcptun.sh; sourceTree = "<group>"; };
9B9CBCA91E2633CB00FC61AA /* kcptun_client */ = {isa = PBXFileReference; lastKnownFileType = "compiled.mach-o.executable"; path = kcptun_client; sourceTree = "<group>"; };
@ -203,6 +224,7 @@
isa = PBXFrameworksBuildPhase;
buildActionMask = 2147483647;
files = (
9B6BF9541E27B2570061B9A7 /* ServiceManagement.framework in Frameworks */,
9B3FFF3E1D08D9910019A709 /* SystemConfiguration.framework in Frameworks */,
258E511BA910B0521B24DAB8 /* Pods_ShadowsocksX_NG.framework in Frameworks */,
);
@ -280,6 +302,7 @@
9B0BFFDC1D0460A70040E62B = {
isa = PBXGroup;
children = (
9B6BF94B1E27B1F10061B9A7 /* LaunchHelper.xcodeproj */,
9B172A601D0ADA5B00B87B9A /* genstrings.py */,
9B0BFFE71D0460A70040E62B /* ShadowsocksX-NG */,
9B0BFFF71D0460A70040E62B /* ShadowsocksX-NGTests */,
@ -370,9 +393,18 @@
path = proxy_conf_helper;
sourceTree = "<group>";
};
9B6BF94C1E27B1F10061B9A7 /* Products */ = {
isa = PBXGroup;
children = (
9B6BF9501E27B1F20061B9A7 /* LaunchHelper.app */,
);
name = Products;
sourceTree = "<group>";
};
D3CE66CC039F651F28057DDB /* Frameworks */ = {
isa = PBXGroup;
children = (
9B6BF9531E27B2570061B9A7 /* ServiceManagement.framework */,
9B3FFF3D1D08D9910019A709 /* SystemConfiguration.framework */,
9B3FFF3B1D08D93B0019A709 /* WebKit.framework */,
283ED1A8E9B711AC65670031 /* Pods_ShadowsocksX_NG.framework */,
@ -396,6 +428,7 @@
9B0BFFE31D0460A70040E62B /* Resources */,
5E160625E3EC80E27DA7EF05 /* [CP] Embed Pods Frameworks */,
3E819BD46B855EDB116A3C70 /* [CP] Copy Pods Resources */,
9B6BF9511E27B2250061B9A7 /* CopyFiles */,
);
buildRules = (
);
@ -483,6 +516,12 @@
mainGroup = 9B0BFFDC1D0460A70040E62B;
productRefGroup = 9B0BFFE61D0460A70040E62B /* Products */;
projectDirPath = "";
projectReferences = (
{
ProductGroup = 9B6BF94C1E27B1F10061B9A7 /* Products */;
ProjectRef = 9B6BF94B1E27B1F10061B9A7 /* LaunchHelper.xcodeproj */;
},
);
projectRoot = "";
targets = (
9B0BFFE41D0460A70040E62B /* ShadowsocksX-NG */,
@ -492,6 +531,16 @@
};
/* End PBXProject section */
/* Begin PBXReferenceProxy section */
9B6BF9501E27B1F20061B9A7 /* LaunchHelper.app */ = {
isa = PBXReferenceProxy;
fileType = wrapper.application;
path = LaunchHelper.app;
remoteRef = 9B6BF94F1E27B1F20061B9A7 /* PBXContainerItemProxy */;
sourceTree = BUILT_PRODUCTS_DIR;
};
/* End PBXReferenceProxy section */
/* Begin PBXResourcesBuildPhase section */
9B0BFFE31D0460A70040E62B /* Resources */ = {
isa = PBXResourcesBuildPhase;