{
"$type": "site.standard.document",
"bskyPostRef": {
"cid": "bafyreiarofnvh7h2u4y7a4k2mcsyq2l7bbqaf2l6jsgdmkvkqdubi264hy",
"uri": "at://did:plc:dxjzgxe7cvirxkwfjr2tjspt/app.bsky.feed.post/3mmwkr5kbqdh2"
},
"path": "/t/jme-3-10-0-alpha5/49602#post_6",
"publishedAt": "2026-05-28T16:42:26.000Z",
"site": "https://hub.jmonkeyengine.org",
"tags": [
"jmonkeyengine/jme3-ios-examples/build.gradle at 8cfd6427d511ec5f0884b0112918dc945e4ed9db · jMonkeyEngine/jmonkeyengine · GitHub"
],
"textContent": "There is the jme3-ios-examples module jmonkeyengine/jme3-ios-examples/build.gradle at 8cfd6427d511ec5f0884b0112918dc945e4ed9db · jMonkeyEngine/jmonkeyengine · GitHub\n\nBut the gist of it is:\n\n 1. Add the libjglios plugin\n\n\n\n\n plugins {\n id 'org.ngengine.libjglios' version '0.5'\n }\n\n\n\n 2. define the task\n\n\n\n\n iOS {\n mainClass = \"com.example.yourappId.IosApplicationLauncher\"\n bundleId = 'com.example.yourappId'\n appName = 'YourAppName'\n appIcon = file('yourappicon.png')\n assets.from 'src/main/resources' // your assets path\n }\n\n\nThen run the tasks:\n\n * `runIosDebugApp` - builds and runs the debug app on a connected iOS device, or on the simulator when no device is selected.\n * `buildIosSimulatorApp` - builds a runnable simulator app.\n * `buildIosDebugApp` - builds a development-signed `.app` for a real iOS device.\n * `buildIosApp` - builds a release-signed `.ipa` for App Store upload.\n\n\n\nthe main class is basically the ios launcher and it must look like this:\n\n\n public class IosApplicationLauncher {\n\n protected Application app;\n\n protected Application createApplication() throws Exception{\n // initialize the app here\n }\n\n public void start() {\n try {\n app = createApplication();\n app.start();\n } catch (Exception exception) {\n throw new IllegalStateException(\"jME application initialization failed\", exception);\n }\n }\n\n\n\n public void update() {\n if (app instanceof SystemListener) {\n ((SystemListener) app).update();\n }\n }\n\n public void resize(int width, int height) {\n if (app instanceof SystemListener) {\n ((SystemListener) app).reshape(width, height);\n }\n }\n\n public void stop(boolean waitFor) {\n if (app != null) {\n app.stop(waitFor);\n app = null;\n }\n }\n }\n\n\nBefore the stable release we will update the jme initializer, so it can prepare all the boilerplate.",
"title": "jME 3.10.0-alpha5"
}