External Publication
Visit Post

Testing new iOS backend

jMonkeyEngine Hub June 17, 2026
Source
Finally I think I found it!!! The problem is at libJGLIOSPlistRawValue, the line captureCommand([‘plutil’, ‘-extract’, keyPath, ‘raw’, ‘-o’, ‘-’, plist.absolutePath]) fails because plutil at OSX 10.15 doesn’t have raw output, it just outputs “Unknown format specifier: raw” and then the command help I’m proposing a quick patch to fix it (mostly claude’s idea): diff --git a/libjglios-gradle-plugin/src/main/resources/org/ngengine/libjglios/gradle/ios-tasks.gradle b/libjglios-gradle-plugin/src/main/resources/org/ngengine/libjglios/gradle/ios-tasks.gradle index ffc1f22..fd77838 100644 --- a/libjglios-gradle-plugin/src/main/resources/org/ngengine/libjglios/gradle/ios-tasks.gradle +++ b/libjglios-gradle-plugin/src/main/resources/org/ngengine/libjglios/gradle/ios-tasks.gradle @@ -1264,7 +1264,23 @@ def libJGLIOSPlistRawValue = { File plist, String keyPath -> try { captureCommand(['plutil', '-extract', keyPath, 'raw', '-o', '-', plist.absolutePath]) } catch (GradleException ignored) { - null + // plutil -extract raw requires macOS 12+; fall back to xml1 (available on all macOS versions) + try { + def xmlOutput = captureCommand(['plutil', '-extract', keyPath, 'xml1', '-o', '-', plist.absolutePath]) + if (xmlOutput.contains('')) return 'true' + if (xmlOutput.contains('')) return 'false' + def dateMatcher = xmlOutput =~ /([^<]+)<\/date>/ + if (dateMatcher.find()) return dateMatcher.group(1) + def strMatcher = xmlOutput =~ /([^<]*)<\/string>/ + if (strMatcher.find()) return strMatcher.group(1) + def intMatcher = xmlOutput =~ /([^<]*)<\/integer>/ + if (intMatcher.find()) return intMatcher.group(1) + def realMatcher = xmlOutput =~ /([^<]*)<\/real>/ + if (realMatcher.find()) return realMatcher.group(1) + null + } catch (GradleException ignored2) { + null + } } } I’ve tried the plutil command with xml output and works, also I’m 90% sure the output is properly parsed Not sure if any other “matcher” may be needed

Discussion in the ATmosphere

Loading comments...