diff --git a/AltBackup/AltBackup.entitlements b/AltBackup/AltBackup.entitlements
index 099f1e39b..283dc1568 100644
--- a/AltBackup/AltBackup.entitlements
+++ b/AltBackup/AltBackup.entitlements
@@ -4,7 +4,7 @@
com.apple.security.application-groups
- group.com.rileytestut.AltStore
+ group.com.megarushing.AltStore
diff --git a/AltStore.xcodeproj/project.pbxproj b/AltStore.xcodeproj/project.pbxproj
index 9c46e39cc..43401b2bf 100644
--- a/AltStore.xcodeproj/project.pbxproj
+++ b/AltStore.xcodeproj/project.pbxproj
@@ -7,6 +7,7 @@
objects = {
/* Begin PBXBuildFile section */
+ 03CE1438263720CF002B8F1D /* SelectTeamViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 03CE1437263720CF002B8F1D /* SelectTeamViewController.swift */; };
0E33F94B8D78AB969FD309A3 /* Pods_AltStoreCore.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = A08F67C18350C7990753F03F /* Pods_AltStoreCore.framework */; };
2A77E3D272F3D92436FAC272 /* Pods_AltStore.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = C9EEAA842DA87A88A870053B /* Pods_AltStore.framework */; };
A8BCEBEAC0620CF80A2FD26D /* Pods_AltServer.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = FC3822AB1C4CF1D4CDF7445D /* Pods_AltServer.framework */; };
@@ -443,6 +444,7 @@
/* End PBXCopyFilesBuildPhase section */
/* Begin PBXFileReference section */
+ 03CE1437263720CF002B8F1D /* SelectTeamViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SelectTeamViewController.swift; sourceTree = ""; };
11611D46F8A7C8B928E8156B /* Pods-AltServer.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-AltServer.debug.xcconfig"; path = "Target Support Files/Pods-AltServer/Pods-AltServer.debug.xcconfig"; sourceTree = ""; };
589BA531D903B28F292063E5 /* Pods-AltServer.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-AltServer.release.xcconfig"; path = "Target Support Files/Pods-AltServer/Pods-AltServer.release.xcconfig"; sourceTree = ""; };
A08F67C18350C7990753F03F /* Pods_AltStoreCore.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_AltStoreCore.framework; sourceTree = BUILT_PRODUCTS_DIR; };
@@ -1611,6 +1613,7 @@
BFE6325922A83BEB00F30809 /* Authentication.storyboard */,
BFF0B6932321CB85007A79E1 /* AuthenticationViewController.swift */,
BFF0B6972322CAB8007A79E1 /* InstructionsViewController.swift */,
+ 03CE1437263720CF002B8F1D /* SelectTeamViewController.swift */,
BF6F439123644C6E00A0B879 /* RefreshAltStoreViewController.swift */,
);
path = Authentication;
@@ -2483,6 +2486,7 @@
BF8F69C222E659F700049BA1 /* AppContentViewController.swift in Sources */,
BF08858522DE7EC800DE9F1E /* UpdateCollectionViewCell.swift in Sources */,
BFB39B5C252BC10E00D1BE50 /* Managed.swift in Sources */,
+ 03CE1438263720CF002B8F1D /* SelectTeamViewController.swift in Sources */,
BF770E5822BC3D0F002A40FE /* RefreshGroup.swift in Sources */,
BF18B0F122E25DF9005C4CF5 /* ToastView.swift in Sources */,
BF3D649F22E7B24C00E9056B /* CollapsingTextView.swift in Sources */,
@@ -2694,7 +2698,7 @@
CODE_SIGN_STYLE = Automatic;
COMBINE_HIDPI_IMAGES = YES;
CURRENT_PROJECT_VERSION = 49;
- DEVELOPMENT_TEAM = 6XVY5G3U44;
+ DEVELOPMENT_TEAM = JL5AWEB2E6;
ENABLE_HARDENED_RUNTIME = YES;
FRAMEWORK_SEARCH_PATHS = (
"$(inherited)",
@@ -2727,7 +2731,7 @@
);
MACOSX_DEPLOYMENT_TARGET = 10.14.4;
MARKETING_VERSION = 1.5b3;
- PRODUCT_BUNDLE_IDENTIFIER = com.rileytestut.AltServer;
+ PRODUCT_BUNDLE_IDENTIFIER = com.megarushing.AltServer;
PRODUCT_NAME = "$(TARGET_NAME)";
SDKROOT = macosx;
SWIFT_OBJC_BRIDGING_HEADER = "AltServer/AltServer-Bridging-Header.h";
@@ -2747,7 +2751,7 @@
CODE_SIGN_STYLE = Automatic;
COMBINE_HIDPI_IMAGES = YES;
CURRENT_PROJECT_VERSION = 49;
- DEVELOPMENT_TEAM = 6XVY5G3U44;
+ DEVELOPMENT_TEAM = JL5AWEB2E6;
ENABLE_HARDENED_RUNTIME = YES;
FRAMEWORK_SEARCH_PATHS = (
"$(inherited)",
@@ -2780,7 +2784,7 @@
);
MACOSX_DEPLOYMENT_TARGET = 10.14.4;
MARKETING_VERSION = 1.5b3;
- PRODUCT_BUNDLE_IDENTIFIER = com.rileytestut.AltServer;
+ PRODUCT_BUNDLE_IDENTIFIER = com.megarushing.AltServer;
PRODUCT_NAME = "$(TARGET_NAME)";
SDKROOT = macosx;
SWIFT_OBJC_BRIDGING_HEADER = "AltServer/AltServer-Bridging-Header.h";
@@ -2869,14 +2873,14 @@
CODE_SIGN_ENTITLEMENTS = AltBackup/AltBackup.entitlements;
CODE_SIGN_STYLE = Automatic;
DEBUG_INFORMATION_FORMAT = dwarf;
- DEVELOPMENT_TEAM = 6XVY5G3U44;
+ DEVELOPMENT_TEAM = JL5AWEB2E6;
INFOPLIST_FILE = AltBackup/Info.plist;
IPHONEOS_DEPLOYMENT_TARGET = 12.2;
LD_RUNPATH_SEARCH_PATHS = (
"$(inherited)",
"@executable_path/Frameworks",
);
- PRODUCT_BUNDLE_IDENTIFIER = com.rileytestut.AltBackup;
+ PRODUCT_BUNDLE_IDENTIFIER = com.megarushing.AltBackup;
PRODUCT_NAME = "$(TARGET_NAME)";
SWIFT_VERSION = 5.0;
TARGETED_DEVICE_FAMILY = "1,2";
@@ -2889,14 +2893,14 @@
CLANG_WARN_DOCUMENTATION_COMMENTS = YES;
CODE_SIGN_ENTITLEMENTS = AltBackup/AltBackup.entitlements;
CODE_SIGN_STYLE = Automatic;
- DEVELOPMENT_TEAM = 6XVY5G3U44;
+ DEVELOPMENT_TEAM = JL5AWEB2E6;
INFOPLIST_FILE = AltBackup/Info.plist;
IPHONEOS_DEPLOYMENT_TARGET = 12.2;
LD_RUNPATH_SEARCH_PATHS = (
"$(inherited)",
"@executable_path/Frameworks",
);
- PRODUCT_BUNDLE_IDENTIFIER = com.rileytestut.AltBackup;
+ PRODUCT_BUNDLE_IDENTIFIER = com.megarushing.AltBackup;
PRODUCT_NAME = "$(TARGET_NAME)";
SWIFT_VERSION = 5.0;
TARGETED_DEVICE_FAMILY = "1,2";
@@ -2924,7 +2928,7 @@
);
MACOSX_DEPLOYMENT_TARGET = 10.14;
MARKETING_VERSION = 1.3;
- PRODUCT_BUNDLE_IDENTIFIER = com.rileytestut.AltPlugin;
+ PRODUCT_BUNDLE_IDENTIFIER = com.megarushing.AltPlugin;
PRODUCT_NAME = "$(TARGET_NAME)";
SDKROOT = macosx;
SKIP_INSTALL = NO;
@@ -2955,7 +2959,7 @@
);
MACOSX_DEPLOYMENT_TARGET = 10.14;
MARKETING_VERSION = 1.3;
- PRODUCT_BUNDLE_IDENTIFIER = com.rileytestut.AltPlugin;
+ PRODUCT_BUNDLE_IDENTIFIER = com.megarushing.AltPlugin;
PRODUCT_NAME = "$(TARGET_NAME)";
SDKROOT = macosx;
SKIP_INSTALL = NO;
@@ -2976,7 +2980,7 @@
CURRENT_PROJECT_VERSION = 1;
DEBUG_INFORMATION_FORMAT = dwarf;
DEFINES_MODULE = YES;
- DEVELOPMENT_TEAM = 6XVY5G3U44;
+ DEVELOPMENT_TEAM = JL5AWEB2E6;
DYLIB_COMPATIBILITY_VERSION = 1;
DYLIB_CURRENT_VERSION = 1;
DYLIB_INSTALL_NAME_BASE = "@rpath";
@@ -2988,7 +2992,7 @@
"@executable_path/Frameworks",
"@loader_path/Frameworks",
);
- PRODUCT_BUNDLE_IDENTIFIER = com.rileytestut.AltStoreCore;
+ PRODUCT_BUNDLE_IDENTIFIER = com.megarushing.AltStoreCore;
PRODUCT_NAME = "$(TARGET_NAME:c99extidentifier)";
SKIP_INSTALL = YES;
SWIFT_VERSION = 5.0;
@@ -3009,7 +3013,7 @@
CODE_SIGN_STYLE = Automatic;
CURRENT_PROJECT_VERSION = 1;
DEFINES_MODULE = YES;
- DEVELOPMENT_TEAM = 6XVY5G3U44;
+ DEVELOPMENT_TEAM = JL5AWEB2E6;
DYLIB_COMPATIBILITY_VERSION = 1;
DYLIB_CURRENT_VERSION = 1;
DYLIB_INSTALL_NAME_BASE = "@rpath";
@@ -3021,7 +3025,7 @@
"@executable_path/Frameworks",
"@loader_path/Frameworks",
);
- PRODUCT_BUNDLE_IDENTIFIER = com.rileytestut.AltStoreCore;
+ PRODUCT_BUNDLE_IDENTIFIER = com.megarushing.AltStoreCore;
PRODUCT_NAME = "$(TARGET_NAME:c99extidentifier)";
SKIP_INSTALL = YES;
SWIFT_VERSION = 5.0;
@@ -3043,7 +3047,7 @@
CODE_SIGN_IDENTITY = "iPhone Developer";
CODE_SIGN_STYLE = Automatic;
DEBUG_INFORMATION_FORMAT = dwarf;
- DEVELOPMENT_TEAM = 6XVY5G3U44;
+ DEVELOPMENT_TEAM = JL5AWEB2E6;
FRAMEWORK_SEARCH_PATHS = (
"$(inherited)",
"$(PROJECT_DIR)/Dependencies/AltSign/Dependencies/OpenSSL/Frameworks/iossimulator",
@@ -3056,7 +3060,7 @@
"@executable_path/Frameworks",
"@executable_path/../../Frameworks",
);
- PRODUCT_BUNDLE_IDENTIFIER = com.rileytestut.AltStore.AltWidget;
+ PRODUCT_BUNDLE_IDENTIFIER = com.megarushing.AltStore.AltWidget;
PRODUCT_NAME = "$(TARGET_NAME)";
SKIP_INSTALL = YES;
SWIFT_OPTIMIZATION_LEVEL = "-Onone";
@@ -3076,7 +3080,7 @@
CODE_SIGN_ENTITLEMENTS = AltWidget/AltWidgetExtension.entitlements;
CODE_SIGN_IDENTITY = "iPhone Developer";
CODE_SIGN_STYLE = Automatic;
- DEVELOPMENT_TEAM = 6XVY5G3U44;
+ DEVELOPMENT_TEAM = JL5AWEB2E6;
FRAMEWORK_SEARCH_PATHS = (
"$(inherited)",
"$(PROJECT_DIR)/Dependencies/AltSign/Dependencies/OpenSSL/Frameworks/iossimulator",
@@ -3089,7 +3093,7 @@
"@executable_path/Frameworks",
"@executable_path/../../Frameworks",
);
- PRODUCT_BUNDLE_IDENTIFIER = com.rileytestut.AltStore.AltWidget;
+ PRODUCT_BUNDLE_IDENTIFIER = com.megarushing.AltStore.AltWidget;
PRODUCT_NAME = "$(TARGET_NAME)";
SKIP_INSTALL = YES;
SWIFT_VERSION = 5.0;
@@ -3235,15 +3239,15 @@
CODE_SIGN_ENTITLEMENTS = AltStore/AltStore.entitlements;
CODE_SIGN_IDENTITY = "iPhone Developer";
CODE_SIGN_STYLE = Automatic;
- DEVELOPMENT_TEAM = 6XVY5G3U44;
+ DEVELOPMENT_TEAM = JL5AWEB2E6;
INFOPLIST_FILE = AltStore/Info.plist;
IPHONEOS_DEPLOYMENT_TARGET = 12.2;
LD_RUNPATH_SEARCH_PATHS = (
"$(inherited)",
"@executable_path/Frameworks",
);
- MARKETING_VERSION = 1.4.5b;
- PRODUCT_BUNDLE_IDENTIFIER = com.rileytestut.AltStore;
+ MARKETING_VERSION = 1.4.5;
+ PRODUCT_BUNDLE_IDENTIFIER = com.megarushing.AltStore;
PRODUCT_NAME = "$(TARGET_NAME)";
PROVISIONING_PROFILE_SPECIFIER = "";
SWIFT_OBJC_BRIDGING_HEADER = "AltStore/AltStore-Bridging-Header.h";
@@ -3263,15 +3267,15 @@
CODE_SIGN_ENTITLEMENTS = AltStore/AltStore.entitlements;
CODE_SIGN_IDENTITY = "iPhone Developer";
CODE_SIGN_STYLE = Automatic;
- DEVELOPMENT_TEAM = 6XVY5G3U44;
+ DEVELOPMENT_TEAM = JL5AWEB2E6;
INFOPLIST_FILE = AltStore/Info.plist;
IPHONEOS_DEPLOYMENT_TARGET = 12.2;
LD_RUNPATH_SEARCH_PATHS = (
"$(inherited)",
"@executable_path/Frameworks",
);
- MARKETING_VERSION = 1.4.5b;
- PRODUCT_BUNDLE_IDENTIFIER = com.rileytestut.AltStore;
+ MARKETING_VERSION = 1.4.5;
+ PRODUCT_BUNDLE_IDENTIFIER = com.megarushing.AltStore;
PRODUCT_NAME = "$(TARGET_NAME)";
PROVISIONING_PROFILE_SPECIFIER = "";
SWIFT_OBJC_BRIDGING_HEADER = "AltStore/AltStore-Bridging-Header.h";
@@ -3291,7 +3295,7 @@
CODE_SIGN_STYLE = Automatic;
COMBINE_HIDPI_IMAGES = YES;
DEBUG_INFORMATION_FORMAT = dwarf;
- DEVELOPMENT_TEAM = 6XVY5G3U44;
+ DEVELOPMENT_TEAM = JL5AWEB2E6;
ENABLE_HARDENED_RUNTIME = YES;
INFOPLIST_FILE = AltXPC/Info.plist;
LD_RUNPATH_SEARCH_PATHS = (
@@ -3300,7 +3304,7 @@
"@loader_path/Frameworks",
);
MACOSX_DEPLOYMENT_TARGET = 10.14.4;
- PRODUCT_BUNDLE_IDENTIFIER = com.rileytestut.AltXPC;
+ PRODUCT_BUNDLE_IDENTIFIER = com.megarushing.AltXPC;
PRODUCT_NAME = "$(TARGET_NAME)";
SDKROOT = macosx;
SKIP_INSTALL = YES;
@@ -3320,7 +3324,7 @@
CODE_SIGN_IDENTITY = "Mac Developer";
CODE_SIGN_STYLE = Automatic;
COMBINE_HIDPI_IMAGES = YES;
- DEVELOPMENT_TEAM = 6XVY5G3U44;
+ DEVELOPMENT_TEAM = JL5AWEB2E6;
ENABLE_HARDENED_RUNTIME = YES;
INFOPLIST_FILE = AltXPC/Info.plist;
LD_RUNPATH_SEARCH_PATHS = (
@@ -3329,7 +3333,7 @@
"@loader_path/Frameworks",
);
MACOSX_DEPLOYMENT_TARGET = 10.14.4;
- PRODUCT_BUNDLE_IDENTIFIER = com.rileytestut.AltXPC;
+ PRODUCT_BUNDLE_IDENTIFIER = com.megarushing.AltXPC;
PRODUCT_NAME = "$(TARGET_NAME)";
SDKROOT = macosx;
SKIP_INSTALL = YES;
diff --git a/AltStore/AltStore.entitlements b/AltStore/AltStore.entitlements
index 9f0dbc010..878edad3c 100644
--- a/AltStore/AltStore.entitlements
+++ b/AltStore/AltStore.entitlements
@@ -8,7 +8,7 @@
com.apple.security.application-groups
- group.com.rileytestut.AltStore
+ group.com.megarushing.AltStore
diff --git a/AltStore/Authentication/Authentication.storyboard b/AltStore/Authentication/Authentication.storyboard
index 685a725e7..5ba9ba64d 100644
--- a/AltStore/Authentication/Authentication.storyboard
+++ b/AltStore/Authentication/Authentication.storyboard
@@ -1,9 +1,9 @@
-
+
-
+
@@ -57,13 +57,13 @@
-
diff --git a/AltStore/Authentication/SelectTeamViewController.swift b/AltStore/Authentication/SelectTeamViewController.swift
new file mode 100644
index 000000000..822dc945e
--- /dev/null
+++ b/AltStore/Authentication/SelectTeamViewController.swift
@@ -0,0 +1,61 @@
+//
+// SelectTeamViewController.swift
+// AltStore
+//
+// Created by Megarushing on 4/26/21.
+// Copyright © 2021 Riley Testut. All rights reserved.
+//
+
+import UIKit
+import SafariServices
+import MessageUI
+import Intents
+import IntentsUI
+
+import AltSign
+
+class SelectTeamViewController: UITableViewController
+{
+ public var teams: [ALTTeam]?
+ public var completionHandler: ((Result) -> Void)?
+
+ private var prototypeHeaderFooterView: SettingsHeaderFooterView!
+
+ override var preferredStatusBarStyle: UIStatusBarStyle {
+ return .lightContent
+ }
+
+ override func numberOfSections(in tableView: UITableView) -> Int {
+ return 1
+ }
+
+ override func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
+ return teams?.count ?? 0
+ }
+
+ override func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) {
+ return self.completionHandler!(.success((self.teams?[indexPath.row])!))
+ }
+
+ override func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
+ let cell = tableView.dequeueReusableCell(withIdentifier: "TeamCell", for: indexPath) as! InsetGroupTableViewCell
+
+ cell.textLabel?.text = self.teams?[indexPath.row].name
+ cell.detailTextLabel?.text = self.teams?[indexPath.row].type.localizedDescription
+ if indexPath.row == 0
+ {
+ cell.style = InsetGroupTableViewCell.Style.top
+ } else if indexPath.row == self.tableView(self.tableView, numberOfRowsInSection: indexPath.section) - 1 {
+ cell.style = InsetGroupTableViewCell.Style.bottom
+ } else {
+ cell.style = InsetGroupTableViewCell.Style.middle
+ }
+
+ return cell
+ }
+
+ override func tableView(_ tableView: UITableView, titleForHeaderInSection section: Int) -> String? {
+ "Teams"
+ }
+
+}
diff --git a/AltStore/Info.plist b/AltStore/Info.plist
index 8c6049851..42ad95b9e 100644
--- a/AltStore/Info.plist
+++ b/AltStore/Info.plist
@@ -7,7 +7,7 @@
group.com.rileytestut.AltStore
ALTDeviceID
- 00008030-001948590202802E
+ 00008030-00020D812EE3802E
ALTServerID
1AAAB6FD-E8CE-4B70-8F26-4073215C03B0
CFBundleDevelopmentRegion
diff --git a/AltStore/Operations/AuthenticationOperation.swift b/AltStore/Operations/AuthenticationOperation.swift
index d0055950f..0d89a392c 100644
--- a/AltStore/Operations/AuthenticationOperation.swift
+++ b/AltStore/Operations/AuthenticationOperation.swift
@@ -15,6 +15,7 @@ import AltSign
enum AuthenticationError: LocalizedError
{
+ case teamSelectorError
case noTeam
case noCertificate
@@ -23,6 +24,7 @@ enum AuthenticationError: LocalizedError
var errorDescription: String? {
switch self {
+ case .teamSelectorError: return NSLocalizedString("Error presenting team selector view.", comment: "")
case .noTeam: return NSLocalizedString("Developer team could not be found.", comment: "")
case .noCertificate: return NSLocalizedString("Developer certificate could not be found.", comment: "")
case .missingPrivateKey: return NSLocalizedString("The certificate's private key could not be found.", comment: "")
@@ -432,21 +434,24 @@ private extension AuthenticationOperation
{
func selectTeam(from teams: [ALTTeam])
{
- if let team = teams.first(where: { $0.type == .individual })
- {
- return completionHandler(.success(team))
- }
- else if let team = teams.first(where: { $0.type == .free })
- {
- return completionHandler(.success(team))
- }
- else if let team = teams.first
- {
- return completionHandler(.success(team))
- }
- else
- {
- return completionHandler(.failure(AuthenticationError.noTeam))
+ if teams.count <= 1 {
+ if let team = teams.first {
+ return completionHandler(.success(team))
+ } else {
+ return completionHandler(.failure(AuthenticationError.noTeam))
+ }
+ } else {
+ DispatchQueue.main.async {
+ let selectTeamViewController = self.storyboard.instantiateViewController(withIdentifier: "selectTeamViewController") as! SelectTeamViewController
+
+ selectTeamViewController.teams = teams
+ selectTeamViewController.completionHandler = completionHandler
+
+ if !self.present(selectTeamViewController)
+ {
+ return completionHandler(.failure(AuthenticationError.noTeam))
+ }
+ }
}
}
diff --git a/AltStore/Settings/Settings.storyboard b/AltStore/Settings/Settings.storyboard
index 111f772b6..87e5b3420 100644
--- a/AltStore/Settings/Settings.storyboard
+++ b/AltStore/Settings/Settings.storyboard
@@ -1,9 +1,9 @@
-
+
-
+
@@ -20,7 +20,7 @@