{
  "$type": "site.standard.document",
  "bskyPostRef": {
    "cid": "bafyreihb7ojdig46a4barkutylpigsx5eo2w5wv34ag572mysybehh6m7q",
    "uri": "at://did:plc:dxjzgxe7cvirxkwfjr2tjspt/app.bsky.feed.post/3mnbne633shk2"
  },
  "path": "/t/jme-3-10-0-alpha5/49602#post_16",
  "publishedAt": "2026-06-02T01:49:45.000Z",
  "site": "https://hub.jmonkeyengine.org",
  "tags": [
    "Releases · NostrGameEngine/ios-graal-jdk-21 · GitHub"
  ],
  "textContent": "Hi there!\n\nI’ve just tried to build the game using the tips you gave me. It looked promising but I’ve found plenty of issues. I’m commenting them here but I think we should create a new thread for iOS\n\nFirst of all, I noticed the whole graalvm thing is for arm64 only like the binary downloaded from liberica-nik (file build/libjglios/third_party/graalvm-host/liberica-nik-23.1.3-macos-aarch64/lib/svm/bin/native-image: Mach-O 64-bit arm64 executable, flags:<NOUNDEFS|DYLDLINK|TWOLEVEL|PIE> ) and the releases at Releases · NostrGameEngine/ios-graal-jdk-21 · GitHub are only arm64 also so as I don’t own a arm based mac but an intel hackintosh I ended up running the build from github actions (buildIosSimulatorApp target). So it would be great if possible to add also x86_64 arch\n\nAbout the build itself, I’m getting lots of linker errors:\n\n\n    ld: Undefined symbols:\n      _eglCreateContext, referenced from:\n          create_context(int) in libJGLIOSCore[3](1-libjglios_ios_launcher.mm.o)\n    > Task :ios-graalvm:buildIosSimulatorApp FAILED\n      _eglCreateWindowSurface, referenced from:\n          _libjglios_egl_init_with_metal_layer in libJGLIOSCore[3](1-libjglios_ios_launcher.mm.o)\n      _eglDestroyContext, referenced from:\n          _libjglios_egl_shutdown in libJGLIOSCore[3](1-libjglios_ios_launcher.mm.o)\n      _eglDestroySurface, referenced from:\n          _libjglios_egl_shutdown in libJGLIOSCore[3](1-libjglios_ios_launcher.mm.o)\n      _eglGetConfigAttrib, referenced from:\n          config_attrib(void*, int) in libJGLIOSCore[3](1-libjglios_ios_launcher.mm.o)\n      _eglGetConfigs, referenced from:\n          choose_config(int) in libJGLIOSCore[3](1-libjglios_ios_launcher.mm.o)\n          choose_config(int) in libJGLIOSCore[3](1-libjglios_ios_launcher.mm.o)\n      _eglGetProcAddress, referenced from:\n          _libjglios_egl_init_with_metal_layer in libJGLIOSCore[3](1-libjglios_ios_launcher.mm.o)\n          _Java_org_ngengine_libjglios_gles_GLES_glAcquireKeyedMutexWin32EXT in libJGLIOSGLES[2](0-jni_gles.mm.o)\n          _Java_org_ngengine_libjglios_gles_GLES_glActiveShaderProgramEXT in libJGLIOSGLES[2](0-jni_gles.mm.o)\n          _Java_org_ngengine_libjglios_gles_GLES_glActiveTexture in libJGLIOSGLES[2](0-jni_gles.mm.o)\n          _Java_org_ngengine_libjglios_gles_GLES_glAlphaFuncQCOM in libJGLIOSGLES[2](0-jni_gles.mm.o)\n          _Java_org_ngengine_libjglios_gles_GLES_glApplyFramebufferAttachmentCMAAINTEL in libJGLIOSGLES[2](0-jni_gles.mm.o)\n          _Java_org_ngengine_libjglios_gles_GLES_glAttachShader in libJGLIOSGLES[2](0-jni_gles.mm.o)\n          ...\n      _eglInitialize, referenced from:\n          _libjglios_egl_init_with_metal_layer in libJGLIOSCore[3](1-libjglios_ios_launcher.mm.o)\n      _eglMakeCurrent, referenced from:\n          _libjglios_egl_init_with_metal_layer in libJGLIOSCore[3](1-libjglios_ios_launcher.mm.o)\n          _libjglios_egl_make_current in libJGLIOSCore[3](1-libjglios_ios_launcher.mm.o)\n          _libjglios_egl_shutdown in libJGLIOSCore[3](1-libjglios_ios_launcher.mm.o)\n      _eglQuerySurface, referenced from:\n          _libjglios_egl_framebuffer_width in libJGLIOSCore[3](1-libjglios_ios_launcher.mm.o)\n          _libjglios_egl_framebuffer_height in libJGLIOSCore[3](1-libjglios_ios_launcher.mm.o)\n      _eglSwapBuffers, referenced from:\n          _libjglios_egl_swap_buffers in libJGLIOSCore[3](1-libjglios_ios_launcher.mm.o)\n      _eglTerminate, referenced from:\n          _libjglios_egl_shutdown in libJGLIOSCore[3](1-libjglios_ios_launcher.mm.o)\n      _glGetIntegerv, referenced from:\n          _libjglios_egl_init_with_metal_layer in libJGLIOSCore[3](1-libjglios_ios_launcher.mm.o)\n          _libjglios_egl_init_with_metal_layer in libJGLIOSCore[3](1-libjglios_ios_launcher.mm.o)\n      _glGetString, referenced from:\n          _libjglios_egl_init_with_metal_layer in libJGLIOSCore[3](1-libjglios_ios_launcher.mm.o)\n          _libjglios_egl_init_with_metal_layer in libJGLIOSCore[3](1-libjglios_ios_launcher.mm.o)\n          _libjglios_egl_init_with_metal_layer in libJGLIOSCore[3](1-libjglios_ios_launcher.mm.o)\n          _libjglios_egl_init_with_metal_layer in libJGLIOSCore[3](1-libjglios_ios_launcher.mm.o)\n          _Java_org_ngengine_libjglios_gles_GLES_glGetString in libJGLIOSGLES[2](0-jni_gles.mm.o)\n      _glGetStringi, referenced from:\n          _Java_org_ngengine_libjglios_gles_GLES_glGetStringi in libJGLIOSGLES[2](0-jni_gles.mm.o)\n      _glMapBufferRange, referenced from:\n          _Java_org_ngengine_libjglios_gles_GLES_glGetBufferSubData in libJGLIOSGLES[2](0-jni_gles.mm.o)\n      _glUnmapBuffer, referenced from:\n          _Java_org_ngengine_libjglios_gles_GLES_glGetBufferSubData in libJGLIOSGLES[2](0-jni_gles.mm.o)\n    clang: error: linker command failed with exit code 1 (use -v to see invocation)\n\n\nApart from the issues I’ve found so far, I have other question, how to add external libraries? For example what if I want to add facebook login or google ads? I also have a custom iOS compilation of libbulletjme for minie in xcframework format, how could I include it to the graalvm library?\n\nThanks",
  "title": "jME 3.10.0-alpha5"
}