|
@@ -0,0 +1,119 @@
|
|
|
+= How to build for iOS and publish to Apple App Store
|
|
|
+:author: mitm
|
|
|
+:revnumber: 1.0
|
|
|
+:revdate: 2-28-2020
|
|
|
+:relfileprefix: ../
|
|
|
+:imagesdir: ..
|
|
|
+:experimental:
|
|
|
+ifdef::env-github,env-browser[:outfilesuffix: .adoc]
|
|
|
+
|
|
|
+
|
|
|
+= 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 Game` project in the jMonkeyEngine SDK, add the iOS library by btn:[RMB] selecting your project and navigating to menu:Properties[Libraries > Add Library... > jme3-ios] and when ready btn:[Add Library] .
|
|
|
++
|
|
|
+image::sdk/xcode_add_ios_lib.jpg[xcode_add_ios_lib.jpg]
|
|
|
+
|
|
|
+. In menu:Properties[Application > IOS] 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
|
|
|
++
|
|
|
+--
|
|
|
+image::sdk/xcode_enable_ios_deploy.jpg[xcode_enable_ios_deploy.jpg]
|
|
|
+
|
|
|
+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.h` you 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 Plus` to `Generic 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.
|
|
|
++
|
|
|
+image::sdk/xcode_generic_ios.jpg[xcode_generic_ios.jpg]
|
|
|
+
|
|
|
+. From the "`PROJECT`" menu click btn:[BUILD] and the build will fail. Click the btn:[ISSUE NAVIGATOR] button to show the compilation errors.
|
|
|
++
|
|
|
+--
|
|
|
+image::sdk/xcode_issue_nav.jpg[xcode_issue_nav.jpg]
|
|
|
+
|
|
|
+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 btn:[Validate Project Settings] followed by btn:[PERFORM CHANGES] to accept all the suggested amendments.
|
|
|
++
|
|
|
+image::sdk/xcode_perform_changes.jpg[xcode_perform_changes.jpg]
|
|
|
+
|
|
|
+.. Click on the Missing Image warning and XCODE will automatically add a placeholder for you.
|
|
|
++
|
|
|
+image::sdk/xcode_add_placeholder.jpg[xcode_add_placeholder.jpg]
|
|
|
+
|
|
|
+.. Add your iOS developer account details by clicking on the target and then the Account Drop down.
|
|
|
++
|
|
|
+image::sdk/xcode_add_account.jpg[xcode_add_account.jpg]
|
|
|
+
|
|
|
+. Now click PROJECT menu and BUILD again and it should compile now but fails at the linking stage.
|
|
|
++
|
|
|
+image::sdk/xcode_build.jpg[xcode_build.jpg]
|
|
|
+
|
|
|
+. We need to amend the linker search paths.
|
|
|
+.. Click on btn:[PROJECT NAVIGATOR].
|
|
|
+.. Highlight the top row (JME-IOS).
|
|
|
+.. Click btn:[jme-ios] under "`PROJECT`" (Not "`TARGETS`").
|
|
|
++
|
|
|
+If you have done it correct then you will only see "`INFO & BUILD SETTINGS`" at the top.
|
|
|
+.. Select btn:[BUILD SETTINGS].
|
|
|
+.. Scroll down to "`LINKING`" section.
|
|
|
++
|
|
|
+image::sdk/xcode_linking.jpg[xcode_linking.jpg]
|
|
|
+.. Double click on btn:[OTHER LINKER FLAGS].
|
|
|
++
|
|
|
+image::sdk/xcode_linker_flags.jpg[xcode_linker_flags.jpg]
|
|
|
+.. Double click on the line referencing "`i386`" and change it from:
|
|
|
++
|
|
|
+--
|
|
|
+`…/…/build/ios-i386/libs.list`
|
|
|
+
|
|
|
+to
|
|
|
+
|
|
|
+`…/…/build/ios-x86_64/libs.list`
|
|
|
+--
|
|
|
+.. Add the additional flag for "`ARM64`" sub type issue introduced in iOS SDK 11.
|
|
|
++
|
|
|
+--
|
|
|
+* With nothing selected click on the btn:[+] 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…
|
|
|
+
|
|
|
+image::sdk/xcode_other_linker.png[xcode_other_linker.png]
|
|
|
+--
|
|
|
+. Disable "`BITCODE`".
|
|
|
+.. Click on btn:[PROJECT NAVIGATOR].
|
|
|
+.. Highlight the top row (JME-IOS).
|
|
|
+.. Click btn:[jme-ios] under "`TARGETS`" (Not "`PROJECT`").
|
|
|
++
|
|
|
+If you have done it correct then you will see General/Capabilities/Resource Tags/Info/Build Settings/Build Phases/Build Rules at the top.
|
|
|
+.. Select btn:[BUILD SETTINGS].
|
|
|
+.. Scroll down to "`BUILD OPTIONS`" section and change "`ENABLE BITCODE`" to "`NO`".
|
|
|
++
|
|
|
+image::sdk/xcode_disable_bitcode.jpg[xcode_disable_bitcode.jpg]
|
|
|
+
|
|
|
+. From the "`PROJECT`" menu click "BUILD" and the project should build and link fully.
|
|
|
+
|
|
|
+. To publish to the "`APP STORE`" you select menu:PROJECT MENU[ARCHIVE].
|
|
|
++
|
|
|
+This will generate the App Store Archive and show in the organizer screen.
|
|
|
++
|
|
|
+image::sdk/xcode_publish.png[xcode_publish.png]
|
|
|
+
|
|
|
+. Click Upload to APP Store and away you go.
|
|
|
+
|
|
|
+You can follow the forum post on this subject link:https://hub.jmonkeyengine.org/t/how-to-build-for-ios-and-publish-to-apple-app-store/40920[here].
|