---
title: "Publishing for iOS"
content_type: tutorial
url: "https://learn.unity.com/course/basic-reflect-customization/unit/publishing-for-different-platforms/tutorial/publishing-for-ios?language=en"
language: en
container_type: course
container_title: "Basic Reflect Customization "
container_url: "https://learn.unity.com/course/basic-reflect-customization.md?language=en&version=2019.3"
unit_title: "Publishing for Different Platforms"
unit_url: "https://learn.unity.com/course/basic-reflect-customization/unit/publishing-for-different-platforms?language=en&version=2019.3"
standalone_markdown_url: "https://learn.unity.com/tutorial/publishing-for-ios.md?language=en&version=2019.3"
previous_title: "Adding Audio Effects to BIM Objects"
previous_url: "https://learn.unity.com/course/basic-reflect-customization/unit/adding-new-viewer-functinoality/tutorial/adding-audio-effects-to-bim-objects?language=en&version=2019.3"
previous_markdown_url: "https://learn.unity.com/course/basic-reflect-customization/unit/adding-new-viewer-functinoality/tutorial/adding-audio-effects-to-bim-objects.md?language=en&version=2019.3"
next_title: "Publishing for Android"
next_url: "https://learn.unity.com/course/basic-reflect-customization/unit/publishing-for-different-platforms/tutorial/publishing-for-android?language=en&version=2019.3"
next_markdown_url: "https://learn.unity.com/course/basic-reflect-customization/unit/publishing-for-different-platforms/tutorial/publishing-for-android.md?language=en&version=2019.3"
difficulty: intermediate
duration_minutes: 40
unity_version:
  - "2019.3"
supported_unity_versions:
  - name: "2019.3"
    url: "https://learn.unity.com/course/basic-reflect-customization/unit/publishing-for-different-platforms/tutorial/publishing-for-ios.md?language=en&version=2019.3"
last_updated: "2026-08-04T14:24:22.000Z"
---

# Publishing for iOS

Discover how to configure Unity and Xcode to publish your application to iOS devices using Unity’s built-in tools.

Unity includes a built-in publishing feature that allows you to publish to various popular platforms in an easy and efficient way. You can publish the same application to multiple platforms, provided the application design takes into account each platform’s unique hardware and software requirements. In this tutorial we’ll explore publishing to iOS-based devices.

For this tutorial, you will need an Apple iOS developer account. You’ll also need to install the iOS development modules in Unity

## 1. Installing with the Unity Hub

**1.** Open the Unity Hub and locate your installs (**Figure 01**).

![Figure 01: Locate the Installs section on your Unity Hub](https://connect-mediagw.unity.com/h1/20200528/learn/images/b7f4a76e-d4ee-494a-822a-0b6649fa1818_image9.png)

**2.** Select the three dots at the top-right corner of your working installation and select **Add Modules** (**Figure 02**).

![Figure 02: Adding modules to an existing installation in the Unity Hub](https://connect-mediagw.unity.com/h1/20200528/learn/images/a295885d-dbc3-4831-9bb3-3b3ecb9793e3_image15.png)

**3.** Select the **iOS Build Support** module and click **Done** (Figure 03).

![Figure 03: Installing the iOS Build Support module](https://connect-mediagw.unity.com/h1/20200528/learn/images/ed6456ca-4c61-4b4d-bb93-150a2990bf97_image22.png)

**4.** Select **Next** and accept the terms and conditions. Wait for the installation to finish.

## 2. Setting up Your Certificates on the Apple Developer Portal

There are a few steps you need to take to set up your app before you can publish from Unity. iOS apps need to have a certificate assigned to a bundle identifier, which in turn needs to be assigned to the app. In the steps below, we’ll set up this certificate and identifier.

**1.** Log in to your developer portal at [https://developer.apple.com](https://developer.apple.com/).

**2.** Select the Certificates section and then click on the **+** icon to create a new certificate. (**Figure 04**).

![Figure 04: Setting up your certificates](https://connect-mediagw.unity.com/h1/20200528/learn/images/6ba95222-0d08-4181-807e-8ffedb274baa_image27.png)

**3.** Select the **Apple Distribution** option and click **Continue** (**Figure 05**).

![Figure 05: Select Apple Distribution](https://connect-mediagw.unity.com/h1/20200528/learn/images/f16ae785-da53-4425-a7df-b299bdda013d_image26.png)

**4.** Use Keychain Access on your Mac to generate a certificate file. Make sure you use the same email address as your Apple ID when generating the certificate. Upload the certificate file (**1**) and select **Continue** (**2**) (**Figure 06**).

![Figure 06: Uploading the certificate file](https://connect-mediagw.unity.com/h1/20200528/learn/images/723f12ae-bc78-4813-928e-161b42f9bfc3_image20.png)

**5.** Download the new certificate and keep it safe (**Figure 07**).

![Figure 07: Download the certificate and keep a copy.](https://connect-mediagw.unity.com/h1/20200528/learn/images/6683e124-9a64-4cac-a9bc-c09ac66d742b_image7.png)

**6.** Select **Identifiers** and then select the **+** icon next to Identifiers.

**7.** Select the **App IDs** option and then click **Continue** (**Figure 08**).

![Figure 08: Registering the app identifier](https://connect-mediagw.unity.com/h1/20200528/learn/images/a70426d6-8d8b-4ed2-ae4f-5d9c5e52cfed_image29.png)

**8.** On the next page, select the type of app you want to create, enter a description, and create a Bundle Identifier using format _com.yourdomain.yourappname._ Finally, select any special capabilities your app may need to access and click **Continue** (**Figure 09**).

![Figure 09: Fill out the identifier details](https://connect-mediagw.unity.com/h1/20200528/learn/images/8cc7e943-e588-41fe-b467-3d2d68c40d4d_image5.png)

**9.** Select the **Profiles** section and then click the **+** icon to create a new profile (**Figure 10**).

![Figure 10: Setting up a new profile for your app](https://connect-mediagw.unity.com/h1/20200528/learn/images/e0caa1ce-470d-48b6-8fe5-a51827532311_image12.png)

**10.** Select the App Store Distribution option and then click **Continue** (**Figure 11**).

![Figure 11: App Store Distribution option](https://connect-mediagw.unity.com/h1/20200528/learn/images/4832addd-daca-4b8e-bdcf-7b604db56035_image16.png)

**11.** Select your Apple ID and click **Continue** (**Figure 12**).

![Figure 12: Linking your apple ID](https://connect-mediagw.unity.com/h1/20200528/learn/images/c7d7dea7-7850-4f8c-8f5e-01bb36bd7650_image28.png)

**13.** Select the certificate that was generated earlier and click **Continue** (**Figure 13**).

![Figure 13: Link the certificate to the profile](https://connect-mediagw.unity.com/h1/20200528/learn/images/a3db1272-dd4a-46c4-b89a-9886888fbb05_image3.png)

**13.** Enter a Provisioning Profile Name and select **Generate** (**Figure 14**).

![Figure 14: Finalizing the profile generation process](https://connect-mediagw.unity.com/h1/20200528/learn/images/cf52d2c9-24dc-4323-a293-3b3337508ae5_image10.png)

**14.** Review your details and then select **Download** to download the profile (**Figure 15**).

![Figure 15: Download the profile file and keep a copy](https://connect-mediagw.unity.com/h1/20200528/learn/images/65781be9-b749-45fa-9922-ddcd41be9794_image24.png)

## 3. Publishing from Unity

**1.** When you’re ready to publish your app from Unity, press **Ctrl-Shift-B** or go to **File** > **Build** **Settings** to open the Build Settings window (**Figure 16**).

![Figure 16: Build Settings option](https://connect-mediagw.unity.com/h1/20200528/learn/images/c7ac92b7-2181-4d32-9012-861f8db2dc1a_image21.png)

**2.** Select iOS and then select **Switch Platform**. Wait for the process to finish (**Figure 17**).

![Figure 17: Switch to the iOS platform](https://connect-mediagw.unity.com/h1/20200528/learn/images/21b047af-dd21-4bb3-8e6c-5d38bf52309a_image2.png)

**3.** With iOS still selected, select **Player Settings** to open the Player Settings window (**Figure 18**).

![Figure 18: Opening the Player Settings](https://connect-mediagw.unity.com/h1/20200528/learn/images/fc93d5c3-a49d-4c7e-a3fc-6013e3e6c35e_image14.png)

**4.** Make sure you have **Player** selected and that the iOS tab is selected. There are a lot of advanced app settings available in these sections. In this tutorial, we’ll look at the minimum settings you’ll need to adjust to publish a new app. Note that the Apple review team are quite strict on quality; for a final version, you’d probably have to set up all icons and information before they will clear it (**Figure 19**).

![Figure  19: Selecting the Player settings](https://connect-mediagw.unity.com/h1/20200528/learn/images/6dc4b07e-06f0-49b7-ac36-5ec3e21b16b7_image23.png)

**5.** At the top of the screen, fill in the information under Player. You can also select the default app icons and cursor image (**Figure 20**).

![Figure 20: Changing the app identifying information](https://connect-mediagw.unity.com/h1/20200528/learn/images/ef0c5c14-5b55-4421-b237-b43bdb37c4be_image17.png)

**6.** Expand the **Other Settings** section (**Figure 21**).

![Figure 21: Expand the “Other Settings” section](https://connect-mediagw.unity.com/h1/20200528/learn/images/7a371574-d07f-426e-b4e9-4e4672fa6cda_image25.png)

**7.** Change the Bundle Identifier to the identifier you set up in Step 8 in the section _“Setting up Your Certificates on the Apple Developer Portal”_. Change **Version** to match the one you set up in Step 4 in section _“Publishing from Unity”_ and then set the Build Number. The format you use for the number is up to you (**Figure 22**).

![Figure 22: Enter the Bundle Identifier](https://connect-mediagw.unity.com/h1/20200528/learn/images/9a9c3beb-d8da-43f2-95e9-01c91b9aeefa_image4.png)

**8.** Change **Target Device** and set the Minimum SDK level you are targeting (iOS version). If you are going to upload this build to the App Store, make sure you use **Device SDK** (**Figure 23**).

![Figure  23: Setting the SDK preferences](https://connect-mediagw.unity.com/h1/20200528/learn/images/d0d72dd5-5e50-4986-b092-792d002e43a4_image11.png)

**9.** Close the Player settings.

**10.** Select **Build** and choose a save location to create your XCode project.

## 4. Creating and uploading your XCode

**1.** Open the newly created project in XCode.

**2.** The project details should already be filled out as this was generated automatically when the project was built by the Unity Engine created (**Figure 24**).

![Figure 24: Open the project in XCode](https://connect-mediagw.unity.com/h1/20200528/learn/images/96d61dcb-e3a8-405b-95de-06c4d6171a05_image18.png)

**3.** Make sure that you’re signed in with the same account you used to create the certificate in Step 4 of section _“Setting up Your Certificates on the Apple Developer Portal”_ and then set the Team to your account.

**4.** Create an archive file by going to **Product** > **Archive** (**Figure 25**).

![Figure 25: Archive your project](https://connect-mediagw.unity.com/h1/20200528/learn/images/a717c491-ed6e-4f2d-8f12-fc7f97e21d53_image8.png)

**5.** Once archiving is completed, the Archive location will open. Select **Distribute App** to upload the archive file to Apple (**Figure 26**).

![Figure 26: Starting the upload process](https://connect-mediagw.unity.com/h1/20200528/learn/images/5fff9d2f-2e75-4792-9d69-ebb72626bfbe_image6.png)

**6.** Select the distribution store you wish to submit to — in this case the iOS App Store — and select **Next** (**Figure 27**).

![Figure 27: Choose the type of app you are submitting](https://connect-mediagw.unity.com/h1/20200528/learn/images/c8755a4b-c91d-4426-b195-4db668925ec2_image1.png)

**7.** Select the **Upload** option and then click **Next** (**Figure 28**).

![Figure 28: Setting your app preferences](https://connect-mediagw.unity.com/h1/20200528/learn/images/9acf73d8-793a-47ea-a547-cb0053573dbe_image13.png)

**8.** Work your way through the specific settings windows that follow, choosing the settings as per your requirements. Click **Next** until you get to the Upload screen. Review your settings and select **Upload** (**Figure 29**).

![Figure 29: Upload the app to Apple for review](https://connect-mediagw.unity.com/h1/20200528/learn/images/a56b61f8-180d-4360-878e-b76a5d344700_image19.png)

## 5. Next Steps

You should now have a firm understanding of the steps needed to publish a Unity application to iOS. You can use the same method to publish your own custom Reflect Viewers to the iOS App Store.
