diff --git a/AltServer/AltServer.entitlements b/AltServer/AltServer.entitlements
new file mode 100644
index 00000000..0c67376e
--- /dev/null
+++ b/AltServer/AltServer.entitlements
@@ -0,0 +1,5 @@
+
+
+
+
+
diff --git a/AltServer/AppDelegate.swift b/AltServer/AppDelegate.swift
new file mode 100644
index 00000000..03e0c9ed
--- /dev/null
+++ b/AltServer/AppDelegate.swift
@@ -0,0 +1,26 @@
+//
+// AppDelegate.swift
+// AltServer
+//
+// Created by Riley Testut on 5/24/19.
+// Copyright © 2019 Riley Testut. All rights reserved.
+//
+
+import Cocoa
+
+@NSApplicationMain
+class AppDelegate: NSObject, NSApplicationDelegate {
+
+
+
+ func applicationDidFinishLaunching(_ aNotification: Notification) {
+ // Insert code here to initialize your application
+ }
+
+ func applicationWillTerminate(_ aNotification: Notification) {
+ // Insert code here to tear down your application
+ }
+
+
+}
+
diff --git a/AltServer/Assets.xcassets/AppIcon.appiconset/Contents.json b/AltServer/Assets.xcassets/AppIcon.appiconset/Contents.json
new file mode 100644
index 00000000..2db2b1c7
--- /dev/null
+++ b/AltServer/Assets.xcassets/AppIcon.appiconset/Contents.json
@@ -0,0 +1,58 @@
+{
+ "images" : [
+ {
+ "idiom" : "mac",
+ "size" : "16x16",
+ "scale" : "1x"
+ },
+ {
+ "idiom" : "mac",
+ "size" : "16x16",
+ "scale" : "2x"
+ },
+ {
+ "idiom" : "mac",
+ "size" : "32x32",
+ "scale" : "1x"
+ },
+ {
+ "idiom" : "mac",
+ "size" : "32x32",
+ "scale" : "2x"
+ },
+ {
+ "idiom" : "mac",
+ "size" : "128x128",
+ "scale" : "1x"
+ },
+ {
+ "idiom" : "mac",
+ "size" : "128x128",
+ "scale" : "2x"
+ },
+ {
+ "idiom" : "mac",
+ "size" : "256x256",
+ "scale" : "1x"
+ },
+ {
+ "idiom" : "mac",
+ "size" : "256x256",
+ "scale" : "2x"
+ },
+ {
+ "idiom" : "mac",
+ "size" : "512x512",
+ "scale" : "1x"
+ },
+ {
+ "idiom" : "mac",
+ "size" : "512x512",
+ "scale" : "2x"
+ }
+ ],
+ "info" : {
+ "version" : 1,
+ "author" : "xcode"
+ }
+}
\ No newline at end of file
diff --git a/AltServer/Assets.xcassets/Contents.json b/AltServer/Assets.xcassets/Contents.json
new file mode 100644
index 00000000..da4a164c
--- /dev/null
+++ b/AltServer/Assets.xcassets/Contents.json
@@ -0,0 +1,6 @@
+{
+ "info" : {
+ "version" : 1,
+ "author" : "xcode"
+ }
+}
\ No newline at end of file
diff --git a/AltServer/Base.lproj/Main.storyboard b/AltServer/Base.lproj/Main.storyboard
new file mode 100644
index 00000000..36da48a6
--- /dev/null
+++ b/AltServer/Base.lproj/Main.storyboard
@@ -0,0 +1,717 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/AltServer/Info.plist b/AltServer/Info.plist
new file mode 100644
index 00000000..80297304
--- /dev/null
+++ b/AltServer/Info.plist
@@ -0,0 +1,32 @@
+
+
+
+
+ CFBundleDevelopmentRegion
+ $(DEVELOPMENT_LANGUAGE)
+ CFBundleExecutable
+ $(EXECUTABLE_NAME)
+ CFBundleIconFile
+
+ CFBundleIdentifier
+ $(PRODUCT_BUNDLE_IDENTIFIER)
+ CFBundleInfoDictionaryVersion
+ 6.0
+ CFBundleName
+ $(PRODUCT_NAME)
+ CFBundlePackageType
+ APPL
+ CFBundleShortVersionString
+ 1.0
+ CFBundleVersion
+ 1
+ LSMinimumSystemVersion
+ $(MACOSX_DEPLOYMENT_TARGET)
+ NSHumanReadableCopyright
+ Copyright © 2019 Riley Testut. All rights reserved.
+ NSMainStoryboardFile
+ Main
+ NSPrincipalClass
+ NSApplication
+
+
diff --git a/AltServer/ViewController.swift b/AltServer/ViewController.swift
new file mode 100644
index 00000000..9416ce7d
--- /dev/null
+++ b/AltServer/ViewController.swift
@@ -0,0 +1,27 @@
+//
+// ViewController.swift
+// AltServer
+//
+// Created by Riley Testut on 5/24/19.
+// Copyright © 2019 Riley Testut. All rights reserved.
+//
+
+import Cocoa
+
+class ViewController: NSViewController {
+
+ override func viewDidLoad() {
+ super.viewDidLoad()
+
+ // Do any additional setup after loading the view.
+ }
+
+ override var representedObject: Any? {
+ didSet {
+ // Update the view, if already loaded.
+ }
+ }
+
+
+}
+
diff --git a/AltStore.xcodeproj/project.pbxproj b/AltStore.xcodeproj/project.pbxproj
index 56ab1320..9340f1a1 100644
--- a/AltStore.xcodeproj/project.pbxproj
+++ b/AltStore.xcodeproj/project.pbxproj
@@ -7,6 +7,10 @@
objects = {
/* Begin PBXBuildFile section */
+ BF458690229872EA00BD7491 /* AppDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = BF45868F229872EA00BD7491 /* AppDelegate.swift */; };
+ BF458692229872EA00BD7491 /* ViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = BF458691229872EA00BD7491 /* ViewController.swift */; };
+ BF458694229872EA00BD7491 /* Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = BF458693229872EA00BD7491 /* Assets.xcassets */; };
+ BF458697229872EA00BD7491 /* Main.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = BF458695229872EA00BD7491 /* Main.storyboard */; };
BF5AB3A82285FE7500DC914B /* AltSign.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = BF5AB3A72285FE6C00DC914B /* AltSign.framework */; };
BF5AB3A92285FE7500DC914B /* AltSign.framework in Embed Frameworks */ = {isa = PBXBuildFile; fileRef = BF5AB3A72285FE6C00DC914B /* AltSign.framework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; };
BFB11692229322E400BB457C /* DatabaseManager.swift in Sources */ = {isa = PBXBuildFile; fileRef = BFB11691229322E400BB457C /* DatabaseManager.swift */; };
@@ -47,6 +51,13 @@
/* End PBXCopyFilesBuildPhase section */
/* Begin PBXFileReference section */
+ BF45868D229872EA00BD7491 /* AltServer.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = AltServer.app; sourceTree = BUILT_PRODUCTS_DIR; };
+ BF45868F229872EA00BD7491 /* AppDelegate.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AppDelegate.swift; sourceTree = ""; };
+ BF458691229872EA00BD7491 /* ViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ViewController.swift; sourceTree = ""; };
+ BF458693229872EA00BD7491 /* Assets.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = Assets.xcassets; sourceTree = ""; };
+ BF458696229872EA00BD7491 /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = Base; path = Base.lproj/Main.storyboard; sourceTree = ""; };
+ BF458698229872EA00BD7491 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; };
+ BF458699229872EA00BD7491 /* AltServer.entitlements */ = {isa = PBXFileReference; lastKnownFileType = text.plist.entitlements; path = AltServer.entitlements; sourceTree = ""; };
BF5AB3A72285FE6C00DC914B /* AltSign.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; path = AltSign.framework; sourceTree = BUILT_PRODUCTS_DIR; };
BFB11691229322E400BB457C /* DatabaseManager.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = DatabaseManager.swift; sourceTree = ""; };
BFB1169A2293274D00BB457C /* JSONDecoder+ManagedObjectContext.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = "JSONDecoder+ManagedObjectContext.swift"; sourceTree = ""; };
@@ -84,6 +95,19 @@
/* End PBXFrameworksBuildPhase section */
/* Begin PBXGroup section */
+ BF45868E229872EA00BD7491 /* AltServer */ = {
+ isa = PBXGroup;
+ children = (
+ BF45868F229872EA00BD7491 /* AppDelegate.swift */,
+ BF458691229872EA00BD7491 /* ViewController.swift */,
+ BF458693229872EA00BD7491 /* Assets.xcassets */,
+ BF458695229872EA00BD7491 /* Main.storyboard */,
+ BF458698229872EA00BD7491 /* Info.plist */,
+ BF458699229872EA00BD7491 /* AltServer.entitlements */,
+ );
+ path = AltServer;
+ sourceTree = "";
+ };
BFB1169E22933DDC00BB457C /* Updates */ = {
isa = PBXGroup;
children = (
@@ -104,6 +128,7 @@
isa = PBXGroup;
children = (
BFD2476C2284B9A500981D42 /* AltStore */,
+ BF45868E229872EA00BD7491 /* AltServer */,
BFD247852284BB3300981D42 /* Frameworks */,
BFD2476B2284B9A500981D42 /* Products */,
);
@@ -113,6 +138,7 @@
isa = PBXGroup;
children = (
BFD2476A2284B9A500981D42 /* AltStore.app */,
+ BF45868D229872EA00BD7491 /* AltServer.app */,
);
name = Products;
sourceTree = "";
@@ -203,6 +229,23 @@
/* End PBXGroup section */
/* Begin PBXNativeTarget section */
+ BF45868C229872EA00BD7491 /* AltServer */ = {
+ isa = PBXNativeTarget;
+ buildConfigurationList = BF45869A229872EA00BD7491 /* Build configuration list for PBXNativeTarget "AltServer" */;
+ buildPhases = (
+ BF458689229872EA00BD7491 /* Sources */,
+ BF45868A229872EA00BD7491 /* Frameworks */,
+ BF45868B229872EA00BD7491 /* Resources */,
+ );
+ buildRules = (
+ );
+ dependencies = (
+ );
+ name = AltServer;
+ productName = AltServer;
+ productReference = BF45868D229872EA00BD7491 /* AltServer.app */;
+ productType = "com.apple.product-type.application";
+ };
BFD247692284B9A500981D42 /* AltStore */ = {
isa = PBXNativeTarget;
buildConfigurationList = BFD2477E2284B9A700981D42 /* Build configuration list for PBXNativeTarget "AltStore" */;
@@ -231,6 +274,14 @@
LastUpgradeCheck = 1020;
ORGANIZATIONNAME = "Riley Testut";
TargetAttributes = {
+ BF45868C229872EA00BD7491 = {
+ CreatedOnToolsVersion = 10.2.1;
+ SystemCapabilities = {
+ com.apple.Sandbox = {
+ enabled = 0;
+ };
+ };
+ };
BFD247692284B9A500981D42 = {
CreatedOnToolsVersion = 10.2.1;
};
@@ -250,11 +301,21 @@
projectRoot = "";
targets = (
BFD247692284B9A500981D42 /* AltStore */,
+ BF45868C229872EA00BD7491 /* AltServer */,
);
};
/* End PBXProject section */
/* Begin PBXResourcesBuildPhase section */
+ BF45868B229872EA00BD7491 /* Resources */ = {
+ isa = PBXResourcesBuildPhase;
+ buildActionMask = 2147483647;
+ files = (
+ BF458694229872EA00BD7491 /* Assets.xcassets in Resources */,
+ BF458697229872EA00BD7491 /* Main.storyboard in Resources */,
+ );
+ runOnlyForDeploymentPostprocessing = 0;
+ };
BFD247682284B9A500981D42 /* Resources */ = {
isa = PBXResourcesBuildPhase;
buildActionMask = 2147483647;
@@ -269,6 +330,15 @@
/* End PBXResourcesBuildPhase section */
/* Begin PBXSourcesBuildPhase section */
+ BF458689229872EA00BD7491 /* Sources */ = {
+ isa = PBXSourcesBuildPhase;
+ buildActionMask = 2147483647;
+ files = (
+ BF458692229872EA00BD7491 /* ViewController.swift in Sources */,
+ BF458690229872EA00BD7491 /* AppDelegate.swift in Sources */,
+ );
+ runOnlyForDeploymentPostprocessing = 0;
+ };
BFD247662284B9A500981D42 /* Sources */ = {
isa = PBXSourcesBuildPhase;
buildActionMask = 2147483647;
@@ -293,6 +363,14 @@
/* End PBXSourcesBuildPhase section */
/* Begin PBXVariantGroup section */
+ BF458695229872EA00BD7491 /* Main.storyboard */ = {
+ isa = PBXVariantGroup;
+ children = (
+ BF458696229872EA00BD7491 /* Base */,
+ );
+ name = Main.storyboard;
+ sourceTree = "";
+ };
BFD247732284B9A500981D42 /* Main.storyboard */ = {
isa = PBXVariantGroup;
children = (
@@ -312,6 +390,48 @@
/* End PBXVariantGroup section */
/* Begin XCBuildConfiguration section */
+ BF45869B229872EA00BD7491 /* Debug */ = {
+ isa = XCBuildConfiguration;
+ buildSettings = {
+ ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
+ CODE_SIGN_IDENTITY = "Mac Developer";
+ CODE_SIGN_STYLE = Automatic;
+ COMBINE_HIDPI_IMAGES = YES;
+ DEVELOPMENT_TEAM = 6XVY5G3U44;
+ INFOPLIST_FILE = AltServer/Info.plist;
+ LD_RUNPATH_SEARCH_PATHS = (
+ "$(inherited)",
+ "@executable_path/../Frameworks",
+ );
+ MACOSX_DEPLOYMENT_TARGET = 10.14;
+ PRODUCT_BUNDLE_IDENTIFIER = com.rileytestut.AltServer;
+ PRODUCT_NAME = "$(TARGET_NAME)";
+ SDKROOT = macosx;
+ SWIFT_VERSION = 5.0;
+ };
+ name = Debug;
+ };
+ BF45869C229872EA00BD7491 /* Release */ = {
+ isa = XCBuildConfiguration;
+ buildSettings = {
+ ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
+ CODE_SIGN_IDENTITY = "Mac Developer";
+ CODE_SIGN_STYLE = Automatic;
+ COMBINE_HIDPI_IMAGES = YES;
+ DEVELOPMENT_TEAM = 6XVY5G3U44;
+ INFOPLIST_FILE = AltServer/Info.plist;
+ LD_RUNPATH_SEARCH_PATHS = (
+ "$(inherited)",
+ "@executable_path/../Frameworks",
+ );
+ MACOSX_DEPLOYMENT_TARGET = 10.14;
+ PRODUCT_BUNDLE_IDENTIFIER = com.rileytestut.AltServer;
+ PRODUCT_NAME = "$(TARGET_NAME)";
+ SDKROOT = macosx;
+ SWIFT_VERSION = 5.0;
+ };
+ name = Release;
+ };
BFD2477C2284B9A700981D42 /* Debug */ = {
isa = XCBuildConfiguration;
buildSettings = {
@@ -467,6 +587,15 @@
/* End XCBuildConfiguration section */
/* Begin XCConfigurationList section */
+ BF45869A229872EA00BD7491 /* Build configuration list for PBXNativeTarget "AltServer" */ = {
+ isa = XCConfigurationList;
+ buildConfigurations = (
+ BF45869B229872EA00BD7491 /* Debug */,
+ BF45869C229872EA00BD7491 /* Release */,
+ );
+ defaultConfigurationIsVisible = 0;
+ defaultConfigurationName = Release;
+ };
BFD247652284B9A500981D42 /* Build configuration list for PBXProject "AltStore" */ = {
isa = XCConfigurationList;
buildConfigurations = (