pymobiledevice3 update to 2.31.0 breaks enabling JIT
After the new release of pymobiledevice3 (Version 2.31.0), JIT is now failing with error:
The process 'altjit' failed with code 1. Could not connect to device <udid>. The process 'python3' returned unexpected output. Error: No such command 'start-quic-tunnel'.
It seems pymobiledevice3 no longer supports the start-quic-tunnel command and now requires start-tunnel instead.
A workaround is to downgrade pymobiledevice3 to Version 2.30.0 by executing python3 -m pip install pymobiledevice3==2.30.0.
EDIT: Also, when downgrading pymobiledevice3, you'll also need to downgrade pip package construct to version 2.10.69 by executing python3 -m pip install construct==2.10.69. This fixes the stream.tell() issues.
EDIT 2: The CommandLineTools version of Python needs to be explicitly called when downgrading pymobiledevice3 and construct. This can be done by executing:
/Library/Developer/CommandLineTools/usr/bin/python3 -m pip install pymobiledevice3==2.30.0 construct==2.10.69
EDIT 3: DolphiniOS users: Use the beta version of DolphiniOS (4.0.0b1 or greater) from AltStore to fix the random crashing issue when launching a game.
EDIT 4: Kudos to @orhid for finding a fix for KeyError: <Epoch.INITIAL: 0>. The solution is to force pip package qh3 to version 0.15.1 (qh3==0.15.1).
Not working for me.
iPad OS 7.1.1
M2 Mac mini
Python 3.9.6
downgrade pymobiledevice3 to Version 2.30.0 got
Error Description
The process 'altjit' failed with code 1. The process 'python3' failed with code 1. stream.tell() failed
Failure Reason
The process 'altjit' failed with code 1. The process 'python3' failed with code 1. stream.tell() failed
Title
JIT could not be enabled for UTM SE.
Source Line
96
executableURL
file:///private/var/folders/jw/z5_wnf7j24zfv9pmm4xczk_m0000gn/T/AppTranslocation/A48E8316-48F6-4C49-BCFC-2B9EBBC5B280/d/AltServer.app/Contents/MacOS/altjit
exitCode
1
output
Mounting personalized developer disk...
❌ Unable to mount personalized Developer Disk.
The process 'python3' failed with code 1. stream.tell() failed
A small detail I forgot to add. construct 2.10.70 breaks pymobiledevice3 2.30.0 (pymobiledevice3 2.31.0 was actually pushed to fix this issue with construct but broke other things). Downgrade construct by executing python3 -m pip install construct==2.10.69.
A small detail I forgot to add.
construct 2.10.70breakspymobiledevice3 2.30.0(pymobiledevice3 2.31.0was actually pushed to fix this issue withconstructbut broke other things). Downgradeconstructby executingpython3 -m pip install construct==2.10.69.
It's done. nice workaround.
Still getting this error:
Source Line
61
executableURL
file:///Applications/AltServer.app/Contents/MacOS/altjit
exitCode
1
output
Usage: python -m pymobiledevice3 remote [OPTIONS] COMMAND [ARGS]...
Try 'python -m pymobiledevice3 remote -h' for help.
Error: No such command 'start-quic-tunnel'.
❌ Unable to enable JIT for AltStore on device 00008101-001164660E80001E.
Could not connect to device 00008101-001164660E80001E. The process 'python3' returned unexpected output. Error: No such command 'start-quic-tunnel'.
Tried downgrading construct first, then downgrading construct and pymobiledevice3, reinstalling AltServer on the M2 and on an iPhone 12 iOS 17.1.
Still getting this error:
Source Line 61 executableURL file:///Applications/AltServer.app/Contents/MacOS/altjit exitCode 1 output Usage: python -m pymobiledevice3 remote [OPTIONS] COMMAND [ARGS]... Try 'python -m pymobiledevice3 remote -h' for help. Error: No such command 'start-quic-tunnel'. ❌ Unable to enable JIT for AltStore on device 00008101-001164660E80001E. Could not connect to device 00008101-001164660E80001E. The process 'python3' returned unexpected output. Error: No such command 'start-quic-tunnel'.Tried downgrading
constructfirst, then downgradingconstructandpymobiledevice3, reinstalling AltServer on the M2 and on an iPhone 12 iOS 17.1.
Try executing which python3 and report back what it says. I think AltStore uses the Xcode version of Python and won’t work with user installed Python. This will tell us what your system is defaulting to when downgrading construct and pip.
Hey i’m having the same problem and i’ve been following along and Im getting the exact error do I did the command which python3`` and i’m getting /usr/bin/python3 any help?
Had the same issue yesterday, but went with @hscumbie workaround and now it fires fine.
python 3.9.6
construct 2.10.69
pymobiledevice3 2.30.0
Try using the versions above and restarting AltServer after you're done. Also make sure that you've updated the XCode Command Tools in the first place.
what should i do then what commands do i run ?
Make sure you have Xcode command line tools installed by running xcode-select —install (that’s a double minus btw idk why my iPhone won’t let me type it). The terminal response will either say they’re installed and up to date, or prompt an install. Also, see what Python binary your PATH variable is pointing to (echo $PATH). My issue was I installed Python 3.12 from python.org. If you run the “update shell” script that comes with the installer, it will alter your $PATH to now point to the python.org binary when executing python3 rather than the Xcode Command line python.
Im still confused on what to do. I did all of this and I need specific instructions can you guys tell me what to run so I can fix this issue thanks
or please add me on discord i need help ill pay anyone my user is fizzrld
Hi! After downgrading I'm getting a new error. Can anyone help me out?
Im still confused on what to do. I did all of this and I need specific instructions can you guys tell me what to run so I can fix this issue thanks
or please add me on discord i need help ill pay anyone my user is fizzrld
Try this in terminal: /Library/Developer/CommandLineTools/usr/bin/python3 --version. It should return Python 3.9.6, indicating that you have CommandLineTools Python installed. If this fails, try executing xcode-select --install and install the CommandLineTools.
Once you have verified the CommandLineTools Python is installed, now run:
/Library/Developer/CommandLineTools/usr/bin/python3 -m pip install pymobiledevice3==2.30.0 construct==2.10.69
^ The above command explicitly calls the CommandLineTools version of Python that is used by AltServer for enabling JIT.
Im still confused on what to do. I did all of this and I need specific instructions can you guys tell me what to run so I can fix this issue thanks
or please add me on discord i need help ill pay anyone my user is fizzrld
Try this in terminal:
/Library/Developer/CommandLineTools/usr/bin/python3 --version. It should returnPython 3.9.6, indicating that you have CommandLineTools Python installed. If this fails, try executingxcode-select --installand install the CommandLineTools.Once you have verified the CommandLineTools Python is installed, now run:
/Library/Developer/CommandLineTools/usr/bin/python3 -m pip install pymobiledevice3==2.30.0 construct==2.10.69^ The above command explicitly calls the CommandLineTools version of Python that is used by AltServer for enabling JIT.
Thanks, it worked for me.
Is anyone getting this issue where it says it failed to start service?
Did you check if the DeveloperDiskImage was mounted with python3 -m pymobiledevice3 mounter auto-mount?
Is anyone getting this issue where it says it failed to start service?
![]()
we all are same as me
Im still confused on what to do. I did all of this and I need specific instructions can you guys tell me what to run so I can fix this issue thanks
or please add me on discord i need help ill pay anyone my user is fizzrld
Try this in terminal:
/Library/Developer/CommandLineTools/usr/bin/python3 --version. It should returnPython 3.9.6, indicating that you have CommandLineTools Python installed. If this fails, try executingxcode-select --installand install the CommandLineTools.Once you have verified the CommandLineTools Python is installed, now run:
/Library/Developer/CommandLineTools/usr/bin/python3 -m pip install pymobiledevice3==2.30.0 construct==2.10.69^ The above command explicitly calls the CommandLineTools version of Python that is used by AltServer for enabling JIT.
new issue
Not sure why the last comment never uploaded, but anyway! I have this version of AltServer working for me, so curious if it will work for everyone here AltServer.zip
After a while of trying to enable JIT I found this forum, tried everything... and IT WORKED!!! Thank you so much!
After a while of trying to enable JIT I found this forum, tried everything... and IT WORKED!!! Thank you so much!
Would you mind sharing what system you're on and what version of macOS you're using? I'm still trying to get mine to work without much luck. I think my hardware is too old.
After a while of trying to enable JIT I found this forum, tried everything... and IT WORKED!!! Thank you so much!
Would you mind sharing what system you're on and what version of macOS you're using? I'm still trying to get mine to work without much luck. I think my hardware is too old.
Using a (I believe 2020) iMac running MacOS 14.1.2 and ipad air 5 running iOS 17.1.2
Not sure why the last comment never uploaded, but anyway! I have this version of AltServer working for me, so curious if it will work for everyone here AltServer.zip
@shanegillio I tried it, and it didn't work... at first I thought it did, because there was no error message, but after waiting for like 2 minutes, I finally tried to load up the Wii menu in Dolphini, which gave the same old screen of "Waiting for JIT" -- and eventually it it finally gave the timeout error of not being able to connect to device... "The process 'python3' timed out."
I'm on a 2019 MBP 16" on macOS 14.1.2 and an iPhone 14 Pro Max on 17.1.1. I downgraded construct and pymobiledevice3 like everyone else mentioned. I double checked to make sure pymobiledevice3 is activated, as well as making sure that the DeveloperDiskImage was mounted successfully by running python3 -m pymobiledevice3 mounter auto-mount
Still doesn't work. Any thoughts?
With the following
- AltServer 1.7.1 (81) on MacOS 14.2.1
- pymobiledevice3==2.30.0
- construct==2.10.69
JIT fails to enable:
The process 'altjit' failed with code 1. Could not connect to device X. The process 'python3' returned unexpected output. KeyError: EnumIntegerString.new(3, 'PUBLIC_KEY')
With the following
- AltServer 1.7.1 (81) on MacOS 14.2.1
- pymobiledevice3==2.30.0
- construct==2.10.69
JIT fails to enable:
The process 'altjit' failed with code 1. Could not connect to device X. The process 'python3' returned unexpected output. KeyError: EnumIntegerString.new(3, 'PUBLIC_KEY')
Im getting this exact error, my computer asks me to enter my password as it wants to make changes and then this error pops up. if anybody could please help that would be greatly appreciated.
Just to note that I was getting the error shown at the beginning of the thread, but after downgrading the versions I end up getting this new error.
Hey guys!
I managed to fix the Process 'altjit' that failed with code 1. Could not connect to device X. The process 'python3' returned unexpected output. KeyError: EnumIntegerString.new(3, 'PUBLIC_KEY') error. It's related to a new to the new CoreDevice Framework introduced by iOS17:
Starting with iOS 17.0, Apple introduced the new CoreDevice framework to work with iOS devices. This framework relies on the RemoteXPC protocol.
To make it work, make sure you:
- Install the latest version of
pymobiledevice:python3 -m pip install -U pymobiledevice3. - Create a trusted tunnel:
sudo python3 -m pymobiledevice3 remote start-tunnel. - Enable JIT from AltServer for the desired application as usual.
This method should work for people with iOS > 17.
hi! i tried this but i keep getting: "Error: No such command 'start-tunnel'" could anyone help please?
Hey guys!
I managed to fix the
Process 'altjit' that failed with code 1. Could not connect to device X. The process 'python3' returned unexpected output. KeyError: EnumIntegerString.new(3, 'PUBLIC_KEY')error. It's related to a new to the new CoreDevice Framework introduced by iOS17:Starting with iOS 17.0, Apple introduced the new CoreDevice framework to work with iOS devices. This framework relies on the RemoteXPC protocol.
To make it work, make sure you:
- Install the latest version of
pymobiledevice:python3 -m pip install -U pymobiledevice3.- Create a trusted tunnel:
sudo python3 -m pymobiledevice3 remote start-tunnel.- Enable JIT from AltServer for the desired application as usual.
This method should work for people with iOS > 17.
I'm getting stuck while create a trusted tunnel, are there any steps missed? I've added my MacBook to trust devices on my iPhone
Hey guys! I managed to fix the
Process 'altjit' that failed with code 1. Could not connect to device X. The process 'python3' returned unexpected output. KeyError: EnumIntegerString.new(3, 'PUBLIC_KEY')error. It's related to a new to the new CoreDevice Framework introduced by iOS17:Starting with iOS 17.0, Apple introduced the new CoreDevice framework to work with iOS devices. This framework relies on the RemoteXPC protocol.
To make it work, make sure you:
- Install the latest version of
pymobiledevice:python3 -m pip install -U pymobiledevice3.- Create a trusted tunnel:
sudo python3 -m pymobiledevice3 remote start-tunnel.- Enable JIT from AltServer for the desired application as usual.
This method should work for people with iOS > 17.
I'm getting stuck while create a trusted tunnel, are there any steps missed? I've added my MacBook to trust devices on my iPhone
I got this far and am getting a new error I haven't seen before
Error Description
The process 'altjit' failed with code 1. Could not detach debugger from AltStore. The process 'lldb' timed out.
Failure Reason
The process 'altjit' failed with code 1. Could not detach debugger from AltStore. The process 'lldb' timed out.
Title
JIT could not be enabled for AltStore.
Source Line
61
executableURL
file:///Applications/AltServer.app/Contents/MacOS/altjit
exitCode
1
output
Connected to device 00008027-000909510E06802E! fd32:276:39db::1 49353
Started debugserver on port 52885.
Attaching debugger...
Attached debugger to AltStore.
(lldb) platform select remote-ios
Platform: remote-ios
Connected: no
SDK Path: error: unable to locate SDK
(lldb) process connect connect://[fd32:276:39db::1]:52885
(lldb) settings set target.memory-module-load-level minimal
(lldb) attach -p 930
Could not find implementation lookup function "class_getMethodImplementation" step in through ObjC method dispatch will not work.
warning: libobjc.A.dylib is being read from process memory. This indicates that LLDB could not find the on-disk shared cache for this device. This will likely reduce debugging performance.
Process 930 stopped
* thread #1, stop reason = signal SIGSTOP
frame #0: 0x00000001dd049178 libsystem_kernel.dylib
-> 0x1dd049178: ret
0x1dd04917c: mov x16, #-0x30
0x1dd049180: svc #0x80
0x1dd049184: ret
Target 0: (AltStore) stopped.
Executable module set to "/private/var/containers/Bundle/Application/C8BF911D-C905-47D3-9EE2-EA45DAF9896F/AltStore.app/AltStore".
warning: Architecture changed from arm64e-apple-ios to arm64-apple-ios.
(lldb) c
Process 930 resuming
(lldb) detach
error: Detach failed: Sending isconnect packet failed.
❌ Unable to enable JIT for AltStore on device 00008027-000909510E06802E.
Could not detach debugger from AltStore. The process 'lldb' timed out.
I'm getting stuck while create a trusted tunnel, are there any steps missed? I've added my MacBook to trust devices on my iPhone