Building On iOS.
There are a couple of updates required to the standard XCODE project generated by the system in order to build correctly.
After creating a
Basic Gameproject in the jMonkeyEngine SDK, add the iOS library by RMB selecting your project and navigating toand when ready Add Library .
In
enable iOS deployment and make sure the iOS SDK Version is showing a number (Not Default). If there is no number present then you need to install XCODE. In this example, my SDK version is 11.3 and I’m using XCODE version 9.3
When you press OK, after enabling iOS deployment and if not already installed, “AVIAN” will download and install. This is shown in the bottom status bar of the JME editor. Wait until this is finished before doing anything else.
Compile your project. If it’s missing
stdio.hyou need to install the xcode command line tools.Run this command in terminal:
xcode-select --install
When it’s compiled successfully, load the XCODE PROJECT into XCODE, which is located in the IOS/PROJECT folder. As mentioned above, my SDK version is 11.3 and I’m using XCODE version 9.3
First change the selected “TARGET” at the top of the screen from
iPhone 7 PlustoGeneric iOS Device. This is so we can do a full build. If you want to run it in a simulator then you can change it back later.
From the “PROJECT” menu click BUILD and the build will fail. Click the ISSUE NAVIGATOR button to show the compilation errors.

We can see here that the “Developer” account is missing, the project settings are out of date and there is a missing image for Retina 4-inch support.
Click Validate Project Settings followed by PERFORM CHANGES to accept all the suggested amendments.

Click on the Missing Image warning and XCODE will automatically add a placeholder for you.

Add your iOS developer account details by clicking on the target and then the Account Drop down.

Now click the PROJECT menu and BUILD again and it should compile now but fails at the linking stage.

We need to amend the linker search paths.
Click on PROJECT NAVIGATOR.
Highlight the top row (JME-IOS).
Click jme-ios under “PROJECT” (Not “TARGETS”).
If you have done it correct then you will only see “INFO” & “BUILD SETTINGS” at the top.
Select BUILD SETTINGS.
Scroll down to “LINKING” section.

Double click on OTHER LINKER FLAGS.

Double click on the line referencing “i386” and change it from:
…/…/build/ios-i386/libs.listto
…/…/build/ios-x86_64/libs.listAdd the additional flag for “ARM64” sub type issue introduced in iOS SDK 11.
With nothing selected click on the + sign and a new entry will be added at the bottom.
In here add:
-force_cpusubtype_ALL
Your other linker flags should now look like this…

Disable “BITCODE”.
Click on PROJECT NAVIGATOR.
Highlight the top row (JME-IOS).
Click jme-ios under “TARGETS” (Not “PROJECT”).
If you have followed the directions correctly, then you will see General/Capabilities/Resource Tags/Info/Build Settings/Build Phases/Build Rules at the top.
Select BUILD SETTINGS.
Scroll down to “BUILD OPTIONS” section and change “ENABLE BITCODE” to “NO”.

From the “PROJECT” menu click "BUILD" and the project should build and link fully.
To publish to the “APP STORE” you select
.This will generate the App Store Archive and show in the organizer screen.

Click Upload to APP Store and away you go.
You can follow the forum post on this subject here.