-
Notifications
You must be signed in to change notification settings - Fork 468
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
DeveloperDiskImage.dmg for iOS 17 not found in Xcode 15 #588
Comments
I'm not sure if we want to have ios-deploy work with Xcode15; it's possible Xcode14 will be the final version supported. Apple has FINALLY created a non-hack mechanism with |
@gabebear Nice! Maybe worth adding to the readme 🙂 Summary of install & just launch with devicectl: xcrun devicectl device install app --device 00008110-001XXXXXXXXXX ./xgen/Build/Products/Release-iphoneos/nilo.app
xcrun devicectl device process launch --device 00008110-001XXXXXXXXXX file:///private/var/containers/Bundle/Application/1604D2D5-35F3-4E43-8B47-1DEF5D778480/nilo.app You get the second path from the output from the install command, or just use the bundle ID (sadly the app name isn't enough, unlike for xctrace) |
Even using xcrun to install/launch there's still the issue of connecting to lldb and managing stderr/stdout. That's the majority of what I use ios-deploy for. I think that purpose is still legit in xcode15-land |
Ideally Apple will add a way to connect to lldb to devicectl. Apple tracks feedback/radar reports to gauge interest in products. People who need iOS device debugging scripting support should file requests via https://feedbackassistant.apple.com/ . This could possibly get Apple to add this before the team that created devicectl moves to other things. |
Seems Apple's devicectl is not easy to use, can we wrap it under the hood after Xcode 15? |
|
In addition with |
With the latest pymobiledevice3 version from https://github.com/doronz88/pymobiledevice3 I have found a method how to establish remote debugging with an iPhone with iOS 17: Create a rsd-Tunnel: Start debugserver on iPhone (e.g. This will print something like this:
Using
With this output we can setup lldb:
Will result in an starting iOS app with debug output to lldb. Next step is to pipe this output to a file, std_out or something else. Maybe someone how knows ios-deploy is able to integrate this stuff. I end up in creating a zsh script which is creating and parsing all the stuff to get the steps above automated. |
…bility Summary: XCRun doesn't provide a convenient way to gather logs or know when a program has completed execution. (This is recognized by the dev community: see ios-control/ios-deploy#588 ) We'll solve this by redirecting `stdout` and `stderr` to a file called `/tmp/BENCH_LOG`. Once the benchmark is complete, we'll create an empty file called `/tmp/BENCH_DONE` that we can poll for (let's say, every 5 seconds) to check whether the benchmark has completed. Reviewed By: Jack-Khuu Differential Revision: D53255873
…bility Summary: XCRun doesn't provide a convenient way to gather logs or know when a program has completed execution. (This is recognized by the dev community: see ios-control/ios-deploy#588 ) We'll solve this by redirecting `stdout` and `stderr` to a file called `/tmp/BENCH_LOG`. Once the benchmark is complete, we'll create an empty file called `/tmp/BENCH_DONE` that we can poll for (let's say, every 5 seconds) to check whether the benchmark has completed. Reviewed By: Jack-Khuu Differential Revision: D53255873
…bility Summary: XCRun doesn't provide a convenient way to gather logs or know when a program has completed execution. (This is recognized by the dev community: see ios-control/ios-deploy#588 ) We'll solve this by redirecting `stdout` and `stderr` to a file called `/tmp/BENCH_LOG`. Once the benchmark is complete, we'll create an empty file called `/tmp/BENCH_DONE` that we can poll for (let's say, every 5 seconds) to check whether the benchmark has completed. Reviewed By: Jack-Khuu Differential Revision: D53255873 fbshipit-source-id: cbc6581c42c58214ebdfb646069314e501150d91
Could you share your script? It will be so helpful. |
@megabitsenmzq sure, but it is nothing special. Just some quick and dirty bash parsing. Feel free to improve.
lldb.sh:
|
hi, sk2212, I have some questions about your script. I don't understand the code "curl -sS "127.0.0.1:5555"" for . On my mac, failed to connect . where is 5555 coming from ? `
I am the first time to use mac real machine debugging, please forgive my little white. |
Can anyone knows "127.0.0.1:5555" in sk2212's script? I really don't understand it's purpose. If someone knows,please share with me . I really appreciate. |
curl -sS "127.0.0.1:5555" is just to check if there is a response provided by tunnel server instance started with pymobiledevice3. Do you have pymobiledevice3 installed? |
Yes. I have installed pymobiledevice3, and following your instructions step by step, I am able to launch and debug apps installed on the phone using 'process launch'. However, when I try to use the script you provided to simplify the whole process, I find that 'server_start.o' is empty, resulting in an empty 'rsd_output'. Given the presence of port 5555, I suspect this is a service launched locally by pymobiledevice3, but I couldn't find any documentation about this port in the pymobiledevice3 repository. I would be very grateful if you could provide me with the documentation for port 5555. Thank you very much. |
@laiyierjiangsu yeah, it seems that the standard port '5555' was changed in 'pymobiledevice3': |
@sk2212 Thank you for your help. I think I should read through the source code of pymobiledevice3 to thoroughly understand its mechanisms. It looks very interesting." |
For anyone still wanting to deploy and debug from the command line, Apple added support natively to LLDB in Xcode 16 Beta. See my comment on the flutter repo here: flutter/flutter#133465 (comment) Hope this helps! |
As of Xcode 15 and iOS 17, DeveloperDiskImage.dmg is no longer found in the expect path, which is Xcode.app > Contents > Developer > Platforms > iPhoneOS.platform > DeviceSupport > 17.x.
This appears to be a permanent change:
https://developer.apple.com/forums/thread/730947
libimobiledevice/libimobiledevice#1452
Expected behavior
Debugging starts properly
Actual behavior.
Debugging phase fails due to missing DeveloperDiskImage.dmg.
Steps to reproduce the problem
System Specs
Please run the commands below in your Terminal.app and include it in the issue. Check when done and include results below.
1.12.0
/Applications/Xcode-beta.app/Contents/Developer
The text was updated successfully, but these errors were encountered: