MobiVM / robovm

Ahead of time compiler for JVM bytecode targetting iOS, Mac OSX and Linux
https://mobivm.github.io
967 stars 133 forks source link

Developer disk images have been removed #755

Open davidgiga1993 opened 1 year ago

davidgiga1993 commented 1 year ago

Issue details

Deployment / Debug on iOS 17 devices doesn't work anymore

Related informations: https://developer.apple.com/forums/thread/730947 https://github.com/ios-control/ios-deploy/issues/588

gradle launchIOSDevicex64
...
No DeveloperDiskImage.dmg found in /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/DeviceSupport for iOS version 17.0.1

my gradle file:

task launchIOSDevicex64(group: 'mobivm') {
    doLast {
        project.ext.'robovm.arch' = 'arm64'
    }
    finalizedBy launchIOSDevice
}

Configuration

Please provide the build system, version(s), and targets affected.

Build Tools:

Versions:

Please provide the version of RoboVM, XCode and JDK used

Build Targets:

iOS 17 arm64

dkimitsa commented 1 year ago

yep it is not supported for a while due lack of support in dependency ilibmobiledevice. work on replacement is in progress

davidgiga1993 commented 1 year ago

Great, thanks a lot!

davidgiga1993 commented 1 year ago

Do we need to wait for ilibmobiledevice? They mentioned that pymobiledevice3 supports it already, would that be an alternative to consider?

dkimitsa commented 1 year ago

pymobiledevice3 is not considered as alternative. the idea is to have same ecosystem solution (e.g. java) under own control. currently I'm porting pymobiledevice3 project into kotlin, to use as ilibmobiledevice replacement. Hope also to cover other connectivity issues we have. at least we will have it in own code base.

davidgiga1993 commented 10 months ago

Any update on this? I can't really test on physical devices anymore which is a huge pain since the simulator doesn't provide the required functionality

hooji commented 6 months ago

I found a workaround that can be used to install MobiVM apps on physical devices using Apple provided command line tools.

1) Go to Mac App Store and download "Apple Configurator" 2) Create an alias: alias cfgutil='"/Applications/Apple Configurator.app/Contents/MacOS/cfgutil"' 3) Create an on-device run configuration and build your project. It will build, but then fail with an error trying to run on the device. 4) In Terminal, go to the build directory (like: ./robovm-build/tmp/on device/ios/arm64 ). 5) Your built app should be there (For example, "Main.app") 6) Run the command: cfgutil install-app ./Main.app

The app will install on your connected device (doesn't need to be unlocked), but will not automatically run.

You will need to search for your app by name to run it.

DONE!

PS: It would be nice if this could be integrated into the build process as an alternate installation method.

obigu commented 6 months ago

Just to clarify because I think it's not clear and the issue gives the impression it's not possible to deploy and app on an iOS 17 device.

Deployment of an app on a device works, it just fails on first launch with the "No DeveloperDiskImage.dmg found" message . After that you can launch the deployed app from springboard without issues (just clicking on the icon).

Debugging on the other hand doesn't work on device and the currrent workaround is to use Simulator.

davidgiga1993 commented 2 months ago

Debugging on the other hand doesn't work on device and the currrent workaround is to use Simulator.

Sorry for the late reply, but this is exactly my issue as the simulator can only do so little. You can't properly test bluetooth, external usb connections, camera, and so on. Performance also can't be compared to physical devices. So it's not a real workaround

Andy-Whyte commented 4 days ago

yep it is not supported for a while due lack of support in dependency ilibmobiledevice. work on replacement is in progress

Just wondering if iOS18 will ever be supported for Java? Would I be better moving to Kotlin?