我正试图在iPhone上运行我的libGDX游戏。我正在使用libGDX v1.7.2和RoboVM插件v1.12.0但未注册Apple Developer程序。根据{{3}},应该可以使用XCode 7.0(使用7.2 atm)的免费配置来运行它。我按照那里的步骤。
当我开始游戏(从Eclipse调试/运行iOS设备应用程序)时,我收到以下错误:
启动失败。有关更多信息,请查看RoboVM控制台。该 给定数据不是受支持格式的属性列表。
来自控制台的最后10行:
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,看起来像这样。我假设这是错误消息引用的属性列表。
<?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>
这是从终端启动项目的堆栈跟踪,如果有用的话:
$ ./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
现在我被卡住了。有什么想法吗?
提前致谢。
答案 0 :(得分:0)
我遇到了同样的问题。
使用RoboVM的最新每晚构建解决了这个问题。说明可以在这里找到:
http://docs.robovm.com/advanced-topics/nightlies.html
根据RoboVM的Google小组上的这篇文章,该错误与“USB Hub”的问题有关。在我的情况下,似乎是在我将VM的USB支持从Usb3更改为Usb2之后发生的(以修复不同的错误!)。