Skip to content

Commit

Permalink
Small update to iOS compilation docs (#2212)
Browse files Browse the repository at this point in the history
  • Loading branch information
samgreen authored and akien-mga committed Mar 1, 2019
1 parent cadfa95 commit 756b512
Showing 1 changed file with 18 additions and 8 deletions.
26 changes: 18 additions & 8 deletions development/compiling/compiling_for_ios.rst
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@ Requirements

- SCons (you can get it from macports, you should be able to run
``scons`` in a terminal when installed)
- Xcode with the iOS SDK and the command line tools.
- Xcode 10.0 (or later) with the iOS (10.0) SDK and the command line tools.

.. seealso:: For a general overview of SCons usage for Godot, see
:ref:`doc_introduction_to_the_buildsystem`.
Expand All @@ -37,20 +37,30 @@ Alternatively, you can run

::

$ scons p=iphone arch=x86 target=debug
$ scons p=iphone arch=x86_64 target=debug

for a Simulator executable.

Additionally since some time Apple requires 64 bit version of application binary when you are uploading to iStore.
The best way to provide these is to create a bundle in which there are both 32bit and 64 binaries, so every device will be able to run the game.
It can be done in three steps, first compile 32 bit version, then compile 64 bit version and then use ``lipo`` to bundle them into one fat binary, all those steps can be performed with following commands:
For recent devices, Apple requires 64-bit versions of application binaries when you are uploading to the Apple Store.
The best way to provide these is to create a bundle in which there are both 32-bit and 64-bit binaries, so every device will be able to run the game.

It can be done in three steps: first compile the 32-bit version, then compile the 64-bit version and then use ``lipo`` to bundle them into one "universal" binary.
All those steps can be performed with following commands:

::

$ scons p=iphone tools=no bits=32 target=release arch=arm
$ scons p=iphone tools=no bits=64 target=release arch=arm64
$ lipo -create bin/godot.iphone.opt.32 bin/godot.iphone.opt.64 -output bin/godot.iphone.opt.universal
$ scons p=iphone tools=no target=release arch=arm
$ scons p=iphone tools=no target=release arch=arm64
$ lipo bin/libgodot.iphone.opt.arm.a bin/libgodot.iphone.opt.arm64.a -output bin/godot.iphone.opt.universal.a

If you also want to provide a simulator build (reduces the chance of any linker errors with dependencies), you'll need to build and lipo the ``x86_64`` architecture as well.

::

$ scons p=iphone tools=no target=release arch=arm
$ scons p=iphone tools=no target=release arch=arm64
$ scons p=iphone tools=no target=release arch=x86_64
$ lipo -create bin/libgodot.iphone.opt.arm.a bin/libgodot.iphone.opt.arm64.a bin/libgodot.iphone.opt.x86_64.a -output bin/godot.iphone.opt.universal.simulator.a

Run
---
Expand Down

0 comments on commit 756b512

Please sign in to comment.