Build guide for VisionOS - WEKIT-ECS/MIRAGE-XR GitHub Wiki

MirageXR – Build & Ship to TestFlight for VisionOS

Contents


📋 Prerequisites

Tool / SDK Version Notes
Unity 6000.0.40 LTS + VisionOS Support (PolySpatial 2.0.4) Install via Unity Hub → Add Modules → visionOS Support
Xcode 16.2 Includes visionOS 2.0 SDK
Apple Developer Program Individual / Org Must be a member of the WEKIT team

🛠 Build process

This section will go through the build process step by step.

Before building

  1. Make sure you are on the right branch. There are three repositories that you need to check are up to date and on the right branch.
  • MirageXR
  • lib-lee

From MirageXR root: cd Packages/com.wekit-ecs.lib-lee

  • MirageXR-conciliator

From MirageXR root: cd Packages/com.wekit-ecs.MirageXR-conciliator

  1. Moving into Unity, in the top left find File > Build Profiles and check that you are on the correct platform and have the correct target SDK set. It should look something like this:

image


Addressable build

  1. To build the addressables on VisionOS navigate to Window > Asset Management > Addressables > Groups. It should open a floating window that can be pinned to any collection of windows.

  2. In the addressables groups window click on Play Mode Script and ensure it is set to Use Existing Build (VisionOS). Then click Build > New Build > Default Build Script

Screenshot 2025-07-02 at 06 56 50

image

  1. If the build is successful you can find a message in the console saying the Addressable content build was a success and the Addressables Report window should show up with the time since last successful build started. (Should be around 10-12 minutes for an M2 Mac)

image

⚠️ Note:
The Addressables build is not required every time there are changes. However if there is no time pressure and as a sanity check it is good to preform. For more info on the asset bundles check Assets Mapping Table under the Compiling MirageXR page. If the Library folder is deleted the addressables will have to be rebuilt


Unity Build

  1. After the addressables are built navigate back to the build profiles (File > Build Profiles) and click Build. Select a directory to build the project to, preferably an empty directory or one that already has a previous build in it.

Screenshot 2025-07-02 at 07 36 32

  1. If the build was successful it should open the files in a Finder window. Double click the .xcodeproj file.

image


Xcode build

  1. Navigate to the general tab by opening up the Project Navigator in the top left and selecting Unity-VisionOS:

image

  1. Under the General page check that the version number is correct and increment it if needed.

image

  1. Navigate to the Signing and capabilities tab and select Automatically manage signing.

image

  1. For Team select WEKIT EXPERIENCE CAPTURING SOLUTIONS LIMITED

image

  1. To archive the build got to the top menu bar and select Product > Archive. The build should now start.

image


Upploading to TestFlight

  1. Once the build have completed the Organizer window should open showing all the saved archived builds. If it does not open you can find it under Window > Organizer.

image

  1. In the Organizer window select the latest build and press Distribute App

image

  1. A window should pop up, App Store Connect should already be selected and you can press distribute.

image

  1. A progress bar will show up and show when the build has been uploaded successfully.

image


Managing TestFlight build

  1. Log into App Store Connect and select Apps. Then select MirageXR XRDevelop.

image

  1. Select the TestFlight page.

image

  1. Once on the TestFlight page find the build by the version number. Initially the build will show up as depicted below.

image

  1. After some time (this might be anywhere from 10 seconds to 10 minutes) it should show up like this.

image

  1. Click Manage and select None of the algorithms mentioned above then press Save.

image

  1. Click the build number to be able to write a description once done press Save.

image

image


🛠 Common Issues/Errors

Errors How to Fix

Missing provisioning profile error in Xcode

Ensure your Apple Developer account is configured in Xcode. And the app is properly signed.

image

Undefined symbols for architecture arm64

Clean the build folder (Cmd+Shift+K) and rebuild. Rebuilding the Unity project may also help (You may need to modify a script to force Unity to re-initialize the scrips). Lastly deleting the library folder and reopening Unity and rebuilding the Unity project should fix it and most other things.

Vuforia errors in unity console when building addressables.

Find the Vuforia scripts folder in Packages and edit the assembly definitions folder to exclude "visionOS".

GLTF errors that do not disappear when clearing the console.

Remove the Andreas Atteneder GLTF package from Package manager. Re-install it, then update the dependency installed Unity GLTF package. Once it is updated to the latest Remove the package. The latest version should be removed and replaced with a unity GLTF 6.0.1.

To re-install the Andreas Atteneder GLTF package, navigate as shown and paste this: https://github.com/HoloLabInc/glTFast.git#polyspatial-urp-transparent

image

The VisisonOS build has no interaction (impossible to press any buttons or interact with anything).

Open Project settings, under XR Plugin Management make sure the VisionOS settings looks like this:

image

The VisionOS build does not open/crashes on start.

This is more often than not caused by errors in the code, however if there is a splash image set and Show Splash Screen is turned on make sure this is turned of in Project Settings > Player > Splash Image.

image

⚠️ Note:
If the Unity or the Xcode build fails it can often be fixed by closing unity, deleting the Library folder and starting the build process from the top. The Library folder is in the MirageXR root and can be deleted from finder or in MirageXR root: rm -rf Library/

⚠️ **GitHub.com Fallback** ⚠️