2

I'm trying to get my libGDX game running on an iPhone. I'm using libGDX v1.7.2 and RoboVM plugin v1.12.0 but isn't enrolled in the Apple Developer program. It should be possible to run it anyway with a free provisioning from XCode 7.0 (using 7.2 atm) according to http://docs.robovm.com/getting-started/provisioning.html#free-provisioning. I followed the steps there.

When I start the game (debugg/run as iOS Device App from Eclipse) i get the following error:

Launch failed. Check the RoboVM console for more information. The given data is not a property list of a supported format.

The last 10 lines from the console in question:

1/6/16 7:50:01 PM: [ INFO] /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/usr/bin/pngcrush -q -iphone -f 0 /Users/kristofercarlsson/Development/Projects/test_libgdx172/GravityExplorer/ios/data/Default~ipad.png /Users/kristofercarlsson/Development/Projects/test_libgdx172/.metadata/.plugins/org.robovm.eclipse.ui/build/GravityExplorer-ios/GravityExplorer-ios/ios/thumbv7/IOSLauncher.app/Default~ipad.png
1/6/16 7:50:01 PM: [ INFO] /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/usr/bin/pngcrush -q -iphone -f 0 /Users/kristofercarlsson/Development/Projects/test_libgdx172/GravityExplorer/ios/data/Icon-72.png /Users/kristofercarlsson/Development/Projects/test_libgdx172/.metadata/.plugins/org.robovm.eclipse.ui/build/GravityExplorer-ios/GravityExplorer-ios/ios/thumbv7/IOSLauncher.app/Icon-72.png
1/6/16 7:50:01 PM: [ INFO] /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/usr/bin/pngcrush -q -iphone -f 0 /Users/kristofercarlsson/Development/Projects/test_libgdx172/GravityExplorer/ios/data/Icon-72@2x.png /Users/kristofercarlsson/Development/Projects/test_libgdx172/.metadata/.plugins/org.robovm.eclipse.ui/build/GravityExplorer-ios/GravityExplorer-ios/ios/thumbv7/IOSLauncher.app/Icon-72@2x.png
1/6/16 7:50:01 PM: [ INFO] /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/usr/bin/pngcrush -q -iphone -f 0 /Users/kristofercarlsson/Development/Projects/test_libgdx172/GravityExplorer/ios/data/Icon.png /Users/kristofercarlsson/Development/Projects/test_libgdx172/.metadata/.plugins/org.robovm.eclipse.ui/build/GravityExplorer-ios/GravityExplorer-ios/ios/thumbv7/IOSLauncher.app/Icon.png
1/6/16 7:50:02 PM: [ INFO] /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/usr/bin/pngcrush -q -iphone -f 0 /Users/kristofercarlsson/Development/Projects/test_libgdx172/GravityExplorer/ios/data/Icon@2x.png /Users/kristofercarlsson/Development/Projects/test_libgdx172/.metadata/.plugins/org.robovm.eclipse.ui/build/GravityExplorer-ios/GravityExplorer-ios/ios/thumbv7/IOSLauncher.app/Icon@2x.png
1/6/16 7:50:02 PM: [ INFO] Installing Info.plist to /Users/kristofercarlsson/Development/Projects/test_libgdx172/.metadata/.plugins/org.robovm.eclipse.ui/build/GravityExplorer-ios/GravityExplorer-ios/ios/thumbv7/IOSLauncher.app
1/6/16 7:50:02 PM: [ INFO] xcrun dsymutil -o /Users/kristofercarlsson/Development/Projects/test_libgdx172/.metadata/.plugins/org.robovm.eclipse.ui/build/GravityExplorer-ios/GravityExplorer-ios/ios/thumbv7/IOSLauncher.app.dSYM /Users/kristofercarlsson/Development/Projects/test_libgdx172/.metadata/.plugins/org.robovm.eclipse.ui/build/GravityExplorer-ios/GravityExplorer-ios/ios/thumbv7/IOSLauncher.app/IOSLauncher
1/6/16 7:50:02 PM: [ INFO] Copying Development provisioning profile: iOS Team Provisioning Profile: se.fkstudios.gravityexplorer.IOSLauncher (S493Z6975K.se.fkstudios.gravityexplorer.IOSLauncher)
1/6/16 7:50:02 PM: [ INFO] Code signing app using identity 'iPhone Developer: some.email@gmail.com ([HEX_CODE])' with fingerprint [FINGERPRINT]
1/6/16 7:50:02 PM: [ INFO] codesign -f -s [FINGERPRINT] --entitlements /Users/kristofercarlsson/Development/Projects/test_libgdx172/.metadata/.plugins/org.robovm.eclipse.ui/build/GravityExplorer-ios/GravityExplorer-ios/ios/thumbv7/Entitlements.plist /Users/kristofercarlsson/Development/Projects/test_libgdx172/.metadata/.plugins/org.robovm.eclipse.ui/build/GravityExplorer-ios/GravityExplorer-ios/ios/thumbv7/IOSLauncher.app
1/6/16 7:50:14 PM: [ERROR] Launch failed

Entitlements.plist is mentioned in the last line before the error and looks like this. I assume this is the property list the error message refers to.

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>get-task-allow</key>
    <true/>
    <key>keychain-access-groups</key>
    <array>
        <string>S493Z6975K.*</string>
    </array>
    <key>application-identifier</key>
    <string>S493Z6975K.se.fkstudios.gravityexplorer.IOSLauncher</string>
    <key>com.apple.developer.team-identifier</key>
    <string>S493Z6975K</string>
</dict>

And here is the stacktrace from launching the project from a terminal if it's helpful:

$ ./gradlew ios:launchIOSDevice --stacktrace
Starting a new Gradle Daemon for this build (subsequent builds will be faster).
Configuration on demand is an incubating feature.
:core:compileJava UP-TO-DATE
:core:processResources UP-TO-DATE
:core:classes UP-TO-DATE
:core:jar UP-TO-DATE
:ios:compileJava UP-TO-DATE
:ios:processResources UP-TO-DATE
:ios:classes UP-TO-DATE
:ios:jar UP-TO-DATE
:ios:assemble UP-TO-DATE
:ios:compileTestJava UP-TO-DATE
:ios:processTestResources UP-TO-DATE
:ios:testClasses UP-TO-DATE
:ios:test UP-TO-DATE
:ios:check UP-TO-DATE
:ios:build UP-TO-DATE
:ios:launchIOSDevice
RoboVM has detected that you are running on a slow HDD. Please consider mounting a RAM disk.
To create a 2GB RAM disk, run this in your terminal:
SIZE=2048 ; diskutil erasevolume HFS+ 'RoboVM RAM Disk' `hdiutil attach -nomount ram://$((SIZE * 2048))`
See http://docs.robovm.com/ for more info
:ios:launchIOSDevice FAILED

FAILURE: Build failed with an exception.

* What went wrong:
Execution failed for task ':ios:launchIOSDevice'.
> Failed to launch IOS Device

* Try:
Run with --info or --debug option to get more log output.

* Exception is:
org.gradle.api.tasks.TaskExecutionException: Execution failed for task ':ios:launchIOSDevice'.
    at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.executeActions(ExecuteActionsTaskExecuter.java:69)
    at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.execute(ExecuteActionsTaskExecuter.java:46)
    at org.gradle.api.internal.tasks.execution.PostExecutionAnalysisTaskExecuter.execute(PostExecutionAnalysisTaskExecuter.java:35)
    at org.gradle.api.internal.tasks.execution.SkipUpToDateTaskExecuter.execute(SkipUpToDateTaskExecuter.java:64)
    at org.gradle.api.internal.tasks.execution.ValidatingTaskExecuter.execute(ValidatingTaskExecuter.java:58)
    at org.gradle.api.internal.tasks.execution.SkipEmptySourceFilesTaskExecuter.execute(SkipEmptySourceFilesTaskExecuter.java:52)
    at org.gradle.api.internal.tasks.execution.SkipTaskWithNoActionsExecuter.execute(SkipTaskWithNoActionsExecuter.java:52)
    at org.gradle.api.internal.tasks.execution.SkipOnlyIfTaskExecuter.execute(SkipOnlyIfTaskExecuter.java:53)
    at org.gradle.api.internal.tasks.execution.ExecuteAtMostOnceTaskExecuter.execute(ExecuteAtMostOnceTaskExecuter.java:43)
    at org.gradle.execution.taskgraph.DefaultTaskGraphExecuter$EventFiringTaskWorker.execute(DefaultTaskGraphExecuter.java:203)
    at org.gradle.execution.taskgraph.DefaultTaskGraphExecuter$EventFiringTaskWorker.execute(DefaultTaskGraphExecuter.java:185)
    at org.gradle.execution.taskgraph.AbstractTaskPlanExecutor$TaskExecutorWorker.processTask(AbstractTaskPlanExecutor.java:66)
    at org.gradle.execution.taskgraph.AbstractTaskPlanExecutor$TaskExecutorWorker.run(AbstractTaskPlanExecutor.java:50)
    at org.gradle.execution.taskgraph.DefaultTaskPlanExecutor.process(DefaultTaskPlanExecutor.java:25)
    at org.gradle.execution.taskgraph.DefaultTaskGraphExecuter.execute(DefaultTaskGraphExecuter.java:110)
    at org.gradle.execution.SelectedTaskExecutionAction.execute(SelectedTaskExecutionAction.java:37)
    at org.gradle.execution.DefaultBuildExecuter.execute(DefaultBuildExecuter.java:37)
    at org.gradle.execution.DefaultBuildExecuter.access$000(DefaultBuildExecuter.java:23)
    at org.gradle.execution.DefaultBuildExecuter$1.proceed(DefaultBuildExecuter.java:43)
    at org.gradle.execution.DryRunBuildExecutionAction.execute(DryRunBuildExecutionAction.java:32)
    at org.gradle.execution.DefaultBuildExecuter.execute(DefaultBuildExecuter.java:37)
    at org.gradle.execution.DefaultBuildExecuter.execute(DefaultBuildExecuter.java:30)
    at org.gradle.initialization.DefaultGradleLauncher$4.run(DefaultGradleLauncher.java:154)
    at org.gradle.internal.Factories$1.create(Factories.java:22)
    at org.gradle.internal.progress.DefaultBuildOperationExecutor.run(DefaultBuildOperationExecutor.java:90)
    at org.gradle.internal.progress.DefaultBuildOperationExecutor.run(DefaultBuildOperationExecutor.java:52)
    at org.gradle.initialization.DefaultGradleLauncher.doBuildStages(DefaultGradleLauncher.java:151)
    at org.gradle.initialization.DefaultGradleLauncher.access$200(DefaultGradleLauncher.java:32)
    at org.gradle.initialization.DefaultGradleLauncher$1.create(DefaultGradleLauncher.java:99)
    at org.gradle.initialization.DefaultGradleLauncher$1.create(DefaultGradleLauncher.java:93)
    at org.gradle.internal.progress.DefaultBuildOperationExecutor.run(DefaultBuildOperationExecutor.java:90)
    at org.gradle.internal.progress.DefaultBuildOperationExecutor.run(DefaultBuildOperationExecutor.java:62)
    at org.gradle.initialization.DefaultGradleLauncher.doBuild(DefaultGradleLauncher.java:93)
    at org.gradle.initialization.DefaultGradleLauncher.run(DefaultGradleLauncher.java:82)
    at org.gradle.launcher.exec.InProcessBuildActionExecuter$DefaultBuildController.run(InProcessBuildActionExecuter.java:94)
    at org.gradle.tooling.internal.provider.ExecuteBuildActionRunner.run(ExecuteBuildActionRunner.java:28)
    at org.gradle.launcher.exec.ChainingBuildActionRunner.run(ChainingBuildActionRunner.java:35)
    at org.gradle.launcher.exec.InProcessBuildActionExecuter.execute(InProcessBuildActionExecuter.java:43)
    at org.gradle.launcher.exec.InProcessBuildActionExecuter.execute(InProcessBuildActionExecuter.java:28)
    at org.gradle.launcher.exec.ContinuousBuildActionExecuter.execute(ContinuousBuildActionExecuter.java:78)
    at org.gradle.launcher.exec.ContinuousBuildActionExecuter.execute(ContinuousBuildActionExecuter.java:48)
    at org.gradle.launcher.daemon.server.exec.ExecuteBuild.doBuild(ExecuteBuild.java:52)
    at org.gradle.launcher.daemon.server.exec.BuildCommandOnly.execute(BuildCommandOnly.java:36)
    at org.gradle.launcher.daemon.server.api.DaemonCommandExecution.proceed(DaemonCommandExecution.java:120)
    at org.gradle.launcher.daemon.server.exec.WatchForDisconnection.execute(WatchForDisconnection.java:37)
    at org.gradle.launcher.daemon.server.api.DaemonCommandExecution.proceed(DaemonCommandExecution.java:120)
    at org.gradle.launcher.daemon.server.exec.ResetDeprecationLogger.execute(ResetDeprecationLogger.java:26)
    at org.gradle.launcher.daemon.server.api.DaemonCommandExecution.proceed(DaemonCommandExecution.java:120)
    at org.gradle.launcher.daemon.server.exec.RequestStopIfSingleUsedDaemon.execute(RequestStopIfSingleUsedDaemon.java:34)
    at org.gradle.launcher.daemon.server.api.DaemonCommandExecution.proceed(DaemonCommandExecution.java:120)
    at org.gradle.launcher.daemon.server.exec.ForwardClientInput$2.call(ForwardClientInput.java:74)
    at org.gradle.launcher.daemon.server.exec.ForwardClientInput$2.call(ForwardClientInput.java:72)
    at org.gradle.util.Swapper.swap(Swapper.java:38)
    at org.gradle.launcher.daemon.server.exec.ForwardClientInput.execute(ForwardClientInput.java:72)
    at org.gradle.launcher.daemon.server.api.DaemonCommandExecution.proceed(DaemonCommandExecution.java:120)
    at org.gradle.launcher.daemon.server.health.DaemonHealthTracker.execute(DaemonHealthTracker.java:47)
    at org.gradle.launcher.daemon.server.api.DaemonCommandExecution.proceed(DaemonCommandExecution.java:120)
    at org.gradle.launcher.daemon.server.exec.LogToClient.doBuild(LogToClient.java:66)
    at org.gradle.launcher.daemon.server.exec.BuildCommandOnly.execute(BuildCommandOnly.java:36)
    at org.gradle.launcher.daemon.server.api.DaemonCommandExecution.proceed(DaemonCommandExecution.java:120)
    at org.gradle.launcher.daemon.server.exec.EstablishBuildEnvironment.doBuild(EstablishBuildEnvironment.java:72)
    at org.gradle.launcher.daemon.server.exec.BuildCommandOnly.execute(BuildCommandOnly.java:36)
    at org.gradle.launcher.daemon.server.api.DaemonCommandExecution.proceed(DaemonCommandExecution.java:120)
    at org.gradle.launcher.daemon.server.health.HintGCAfterBuild.execute(HintGCAfterBuild.java:41)
    at org.gradle.launcher.daemon.server.api.DaemonCommandExecution.proceed(DaemonCommandExecution.java:120)
    at org.gradle.launcher.daemon.server.exec.StartBuildOrRespondWithBusy$1.run(StartBuildOrRespondWithBusy.java:50)
    at org.gradle.launcher.daemon.server.DaemonStateCoordinator$1.run(DaemonStateCoordinator.java:246)
    at org.gradle.internal.concurrent.ExecutorPolicy$CatchAndRecordFailures.onExecute(ExecutorPolicy.java:54)
    at org.gradle.internal.concurrent.StoppableExecutorImpl$1.run(StoppableExecutorImpl.java:40)
Caused by: org.gradle.api.GradleException: Failed to launch IOS Device
    at org.robovm.gradle.tasks.IOSDeviceTask.invoke(IOSDeviceTask.java:48)
    at org.gradle.internal.reflect.JavaMethod.invoke(JavaMethod.java:75)
    at org.gradle.api.internal.project.taskfactory.AnnotationProcessingTaskFactory$StandardTaskAction.doExecute(AnnotationProcessingTaskFactory.java:227)
    at org.gradle.api.internal.project.taskfactory.AnnotationProcessingTaskFactory$StandardTaskAction.execute(AnnotationProcessingTaskFactory.java:220)
    at org.gradle.api.internal.project.taskfactory.AnnotationProcessingTaskFactory$StandardTaskAction.execute(AnnotationProcessingTaskFactory.java:209)
    at org.gradle.api.internal.AbstractTask$TaskActionWrapper.execute(AbstractTask.java:585)
    at org.gradle.api.internal.AbstractTask$TaskActionWrapper.execute(AbstractTask.java:568)
    at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.executeAction(ExecuteActionsTaskExecuter.java:80)
    at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.executeActions(ExecuteActionsTaskExecuter.java:61)
    ... 68 more
Caused by: java.io.IOException: The given data is not a property list of a supported format.
    at org.robovm.compiler.target.ios.AppleDeviceTarget.getConnectedDevices(AppleDeviceTarget.java:403)
    at org.robovm.compiler.target.ios.AppleDeviceTarget.createDeviceLauncher(AppleDeviceTarget.java:282)
    at org.robovm.compiler.target.ios.AppleDeviceTarget.createLauncher(AppleDeviceTarget.java:172)
    at org.robovm.compiler.target.AbstractTarget.doLaunch(AbstractTarget.java:486)
    at org.robovm.compiler.target.ios.AppleDeviceTarget.doLaunch(AppleDeviceTarget.java:777)
    at org.robovm.compiler.target.AbstractTarget.launch(AbstractTarget.java:482)
    at org.robovm.compiler.AppCompiler.launchAsync(AppCompiler.java:840)
    at org.robovm.compiler.AppCompiler.launch(AppCompiler.java:825)
    at org.robovm.compiler.AppCompiler.launch(AppCompiler.java:820)
    at org.robovm.gradle.tasks.IOSDeviceTask.invoke(IOSDeviceTask.java:46)
    ... 76 more
Caused by: com.dd.plist.PropertyListFormatException: The given data is not a property list of a supported format.
    at com.dd.plist.PropertyListParser.parse(PropertyListParser.java:216)
    at org.robovm.compiler.target.ios.AppleDeviceTarget.getConnectedDevices(AppleDeviceTarget.java:397)
    ... 85 more


BUILD FAILED

And now I'm stuck. Any ideas?

Thanks in advance.

K.Carlsson
  • 23
  • 3
  • not sure if this is the problem, might have something to do with your info.plist.xml? Could you post that? Also try to run the command with --debug, you might get more information on where it goes wrong – p.streef Jan 07 '16 at 13:19

1 Answers1

0

I had the same problem.

Using the latest nightly build of RoboVM fixes the problem. Instructions can be found here:

http://docs.robovm.com/advanced-topics/nightlies.html

According to this post on RoboVM's Google group, the bug is linked to an issue with a 'USB Hub'. In my case, it seems to have occurred after I changed my VM's USB support from Usb3 to Usb2 (to fix a different bug!).

absy
  • 16
  • 5