{
  "$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"
}