# Native iOS

As of [v39\_1](https://docs.msquared.io/creation/unreal-development/release-notes/v39_1 "mention"), we have enabled native iOS support, available to approved partners.

{% hint style="warning" %}
**A note on "being approved to use iOS clients"**

Use of our Morpheus Platform app is currently tightly controlled, due to it being in an experimental state. Additionally, we require that any partner wanting to launch iOS-supported world adheres to Apple's guidelines: <https://developer.apple.com/app-store/review/guidelines/>

You will need to reach out to support to be granted access. Without this, you will be unable to enable iOS clients for your project, or for specific worlds.
{% endhint %}

## How to enable iOS

The following are the steps required to enable a world. Some require MSquared Admin access, so you will need to request this from support:

### Uploading iOS clients

1. In your project's `.uproject` file, add the `IOSClient` to your `TargetPlatforms` list.

   <figure><img src="https://1456550285-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FoWTlPaoHd1McSakqMigu%2Fuploads%2Fgit-blob-42717698e4bcf8d3682e361d713044acc17837de%2Fimage.png?alt=media" alt=""><figcaption></figcaption></figure>
2. Then you can upload mods as normal. The mods will then also cook the required content for `IOSClient` builds.
   1. You should then see logs along the lines of the following when uploading, to confirm that the iOS client is being included

      ```
      LogWorldBuilderEditor: Display: modpakchunk0-iosclient.utoc: [Completed Successfully]
      LogWorldBuilderEditor: Display: modpakchunk0-iosclient.pak: [Completed Successfully]
      ```

### Enabling iOS clients for your project

* Before you can launch worlds that use iOS clients, you will need to enable iOS clients for your project. This is done in your Dashboard's `Admin` settings' `Projects` tab. If the `iOS Clients` field is not ticked, then your project does not yet support native iOS.

  <figure><img src="https://1456550285-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FoWTlPaoHd1McSakqMigu%2Fuploads%2Fgit-blob-1ee9b63e83d3db876cd0a91805c31e837d69f182%2Fimage.png?alt=media" alt=""><figcaption></figcaption></figure>

  * Edit the project, and tick the `Allow iOS clients to be used in this project`.

  <figure><img src="https://1456550285-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FoWTlPaoHd1McSakqMigu%2Fuploads%2Fgit-blob-99711f67fcf4c615cda67116fdf1e8ff5b46e534%2Fimage.png?alt=media" alt=""><figcaption></figcaption></figure>

  * If that checkbox is not visible for you, that's a sign that you have not been approved yet to use iOS clients. You will need to reach out to support.

### Launching iOS-supported worlds

{% hint style="warning" %}
**A note on iOS-supported worlds**

We currently only support iOS client access to public worlds. This means that there is no restriction on who can access an iOS-supported world. This means that anyone using the iOS will be able to connect to the world, including members of the public.

We are looking to add functionality to create iOS-supported worlds that are restricted to certain users, e.g. only visible to members of your organisation. In the meantime though, please be aware that the worlds will be public even when doing your own testing.
{% endhint %}

For worlds using mods that have enabled [#uploading-ios-clients](#uploading-ios-clients "mention"), in a project that has enabled iOS clients ([#enabling-ios-clients-for-your-project](#enabling-ios-clients-for-your-project "mention")), you can make them visible to the iOS client's "World Browser" by doing the following:

* In your Dashboard, select the world's `General` tab, tick `Public downloads enabled` and `Allow iOS`

  <figure><img src="https://1456550285-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FoWTlPaoHd1McSakqMigu%2Fuploads%2Fgit-blob-95e7c6ca847f3eb86e51dd88546dff66c8ba7cf1%2Fimage.png?alt=media" alt=""><figcaption></figcaption></figure>

  * You will only be able to tick `Allow iOS` if the project has been
* In the `Access` tab, tick `Public Stream Client Access`

  <figure><img src="https://1456550285-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FoWTlPaoHd1McSakqMigu%2Fuploads%2Fgit-blob-8c83bac8cfa576e61b20fede1a714402d659ab2a%2Fimage.png?alt=media" alt=""><figcaption></figcaption></figure>
* If you want a customized thumbnail for your world, go to `General`, and `Upload world image`

  <figure><img src="https://1456550285-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FoWTlPaoHd1McSakqMigu%2Fuploads%2Fgit-blob-0825f9a7eecd7cee2d43ccf2e0ab3f83682f06c3%2Fimage.png?alt=media" alt=""><figcaption></figcaption></figure>

#### Configuring roles for iOS clients

* We do not currently support iOS users creating accounts via e.g. Google. Instead, we create "guest accounts" for them, tied to their device.
* If you want to configure [in-game-roles](https://docs.msquared.io/creation/unreal-development/features-and-tutorials/the-m2-example-plugin/in-game-roles "mention") for iOS users, add an access group with the email domain `guest.m2worlds.io`.

  <figure><img src="https://1456550285-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FoWTlPaoHd1McSakqMigu%2Fuploads%2Fgit-blob-8e172b29e10b49bf1d532325111ecc61a154d2e7%2Fimage.png?alt=media" alt=""><figcaption></figcaption></figure>

## The Morpheus Platform app

The iOS client is launched through the Morpheus Platform app, available for public download (<https://apps.apple.com/gb/app/morpheus-platform/id6745405787>).

{% hint style="info" %}
**A note on minimum requirements**

The minimum requirements for the iOS app are outlined in [#native-ios-game-client](https://docs.msquared.io/creation/running-events/minimum-hardware-requirements#native-ios-game-client "mention")

If you have older devices than these, the app may run, but expect poor performance and potential crashes. If you are running an event that guides users to use the app, we recommend that you draw their attention to this limitation.
{% endhint %}

This app uses a "World Browser", to view all currently active iOS-supported worlds (see [#launching-ios-supported-worlds](#launching-ios-supported-worlds "mention")). If you Follow the above steps, your world will be visible on this page, and be available to connect to.

<figure><img src="https://1456550285-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FoWTlPaoHd1McSakqMigu%2Fuploads%2Fgit-blob-d157447eecf57016570dba90c9471ea8ab4a4735%2Fimage.png?alt=media" alt=""><figcaption></figcaption></figure>

This world browser is shared across all projects that have been approved to use iOS clients, so may display the worlds of any of our partners. If you want a custom app for your project, rather than using the shared World Browser, that will require bespoke work - reach out to support if this is something you are interested in.

### A note on release versions

Each release of the app is tied to a particular release of the Morpheus Platform editor. Its world browser will only display worlds for the corresponding Morpheus Platform release. e.g. Version 1.3 of the app is tied to [v39\_1](https://docs.msquared.io/creation/unreal-development/release-notes/v39_1 "mention").

For this reason, you will need to be on the latest release of the Morpheus Platform to create worlds for the latest version of the iOS app.
