sonos / dinghy

Easier cross-compilation for phones and single boards computers
Other
365 stars 44 forks source link

Use `xcrun devicectl` to deploy to iOS devices. #204

Closed simlay closed 8 months ago

simlay commented 10 months ago

Looks like ios-deploy has issues with Xcode 15. https://github.com/ios-control/ios-deploy/issues/588

Xcode 15 added a new tool xcrun devicectl which is similar to xcrun simctl but for physical devices. Though, it doesn't work with older devices - I've got an iphone 5 that doesn't list with xcrun devicectl list devices.

kali commented 9 months ago

I had a look, and this is a very sad mess. devicectl will just let us start the app. There is no way to capture output or the app return code. And it looks like the ios-deploy folks have more or less given up.

At this stage, I can't see any "clean" way out of this. Nothing that does not rely on super hacky stdout/stderr capture from within the app... or something else from within the app, like a custom test harness. And a way to gather all of this from the development host.

This is very sad. Apple has waited nearly 20 years to provide half of a solution to a problem they created, and managed to break the third-party solution doing so.

kali commented 9 months ago

There may be part of a solution here https://github.com/ios-control/ios-deploy/issues/588#issuecomment-1907913430

Basically we would have to switch ios-deploy for https://github.com/doronz88/pymobiledevice3 and try to replug everything back together. And hope Apple does not break it again in three months...