Skip to content

Commit 751281d

Browse files
[fix] Disable Amethyst on iOS 26.
We're still researching ways around Apple's JIT limitations.
1 parent e3c0cfb commit 751281d

3 files changed

Lines changed: 15 additions & 3 deletions

File tree

Natives/LauncherNewsViewController.m

Lines changed: 13 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -47,25 +47,35 @@ - (void)viewDidLoad
4747

4848
if(!isJailbroken && getPrefBool(@"warnings.limited_ram_warn") && (roundf(NSProcessInfo.processInfo.physicalMemory / 0x1000000) < 3900)) {
4949
// "This device has a limited amount of memory available."
50-
[self showWarningAlert:@"limited_ram" hasPreference:YES];
50+
[self showWarningAlert:@"limited_ram" hasPreference:YES exitWhenCompleted:NO];
51+
}
52+
53+
if (@available(iOS 26.0, *)) {
54+
[self showWarningAlert:@"ios19_jitdead" hasPreference:NO exitWhenCompleted:YES];
5155
}
5256

5357
self.navigationItem.leftBarButtonItem = self.splitViewController.displayModeButtonItem;
5458
self.navigationItem.rightBarButtonItem = [sidebarViewController drawAccountButton];
5559
self.navigationItem.leftItemsSupplementBackButton = true;
5660
}
5761

58-
-(void)showWarningAlert:(NSString *)key hasPreference:(BOOL)isPreferenced {
62+
-(void)showWarningAlert:(NSString *)key hasPreference:(BOOL)isPreferenced exitWhenCompleted:(BOOL)shouldExit {
5963
UIAlertController *warning = [UIAlertController
6064
alertControllerWithTitle:localize([NSString stringWithFormat:@"login.warn.title.%@", key], nil)
61-
message:localize([NSString stringWithFormat:@"login.warn.title.%@", key], nil)
65+
message:localize([NSString stringWithFormat:@"login.warn.message.%@", key], nil)
6266
preferredStyle:UIAlertControllerStyleAlert];
6367

6468
UIAlertAction *action;
6569
if(isPreferenced) {
6670
action = [UIAlertAction actionWithTitle:localize(@"OK", nil) style:UIAlertActionStyleDestructive handler:^(UIAlertAction * action) {
6771
setPrefBool([NSString stringWithFormat:@"warnings.%@_warn", key], NO);
6872
}];
73+
} else if(shouldExit) {
74+
action = [UIAlertAction actionWithTitle:localize(@"OK", nil) style:UIAlertActionStyleDestructive handler:^(UIAlertAction * action) {
75+
[UIApplication.sharedApplication performSelector:@selector(suspend)];
76+
usleep(100*1000);
77+
exit(0);
78+
}];
6979
} else {
7080
action = [UIAlertAction actionWithTitle:localize(@"OK", nil) style:UIAlertActionStyleCancel handler:nil];
7181
}

Natives/resources/Assets.car

-2.07 KB
Binary file not shown.

Natives/resources/en.lproj/Localizable.strings

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -106,6 +106,8 @@
106106
"login.warn.message.legacy_ios" = "To run the next major release, this device needs to be running iOS 14 or later.";
107107
"login.warn.title.limited_ram" = "This device has a limited amount of memory available.";
108108
"login.warn.message.limited_ram" = "We recommend leaving auto RAM enabled to prevent instability and performance issues.";
109+
"login.warn.title.ios19_jitdead" = "Amethyst is not supported on iOS 26 or later.";
110+
"login.warn.message.ios19_jitdead" = "Due to changes in iOS that inhibit the ability to enable JIT, Amethyst cannot work in its current state and requires heavy research to find a new path forward.\n\nPressing OK will close the app.";
109111

110112
"login.warn.title.demomode" = "Your account is Demo";
111113
"login.warn.message.demomode" = "As a replacement to offline and local mode, demo mode will allow you to sign into a Microsoft account that does not own the game and play the Java Edition trial, introduced in 1.3.1 and newer versions. Older versions contain the full game, as the official launcher does not place these restrictions. See our website to learn more about this transition from offline mode.";

0 commit comments

Comments
 (0)