Search Results for

    Show / Hide Table of Contents

    How to Build the Software

    [!SUMMARY] This page explains:

    • Which platforms Anywhere Academy is built for, and with which build profile
    • Which ways to build there are, and which page covers each
    • What the packaged downloads are called and how to verify them
    • Where the build code lives
    Important

    Anywhere Academy uses Unity's build profiles to manage the build settings for individual platforms.

    To learn more about build profiles, see Unity's documentation: https://docs.unity3d.com/6000.3/Documentation/Manual/build-profiles.html

    Before building any version of the software, check if the scene list is set up properly.

    1. Open Build Profiles Page (File → Build Profiles)
    2. Find and verify the Scene List

    Ways to Build

    Page What you will find there
    In the Editor Building each platform on your machine, from the Tools → Build menu or by hand with its build profile
    CI/CD Pipeline Testing builds, pre-releases and releases, built and published by GitLab CI
    Server Images Moving a hosted server to a new server image, and running a server on your machine
    Matching Clients and Servers How builds are kept from being mixed up, and what to do when a session breaks anyway

    Platforms

    Platform Build Profile Scripting backend Tools → Build Package
    Windows Windows (VR & NonVR) IL2CPP Windows (VR) Anywhere_Academy_Windows.zip / .msi
    Meta Quest Meta Quest (VR) IL2CPP Meta Quest (VR) Anywhere_Academy_Quest.apk
    WebGL Web (NonVR), Web Productive (NonVR) IL2CPP — —
    Linux Server Linux Server Mono2x Linux Server Anywhere_Academy_Server.tar.gz, Docker image

    The scripted builds (Tools → Build in the Editor, and the CI jobs) run the same code, so a local build and a pipeline build produce the same output. WebGL is built by hand only.


    Packages

    Every package is named Anywhere_Academy_<Platform>, and so is the folder inside each archive: Anywhere_Academy_Server.tar.gz, Anywhere_Academy_Windows.zip / .msi, Anywhere_Academy_Quest.apk. Release names carry no version, so the static download links on the website keep working across releases; the version and the git commit are in the build-info.json that ships inside each archive (beside the APK for Quest).

    Anything that is not a release says so at the end of its name, like its Docker tag: CI pre-releases end in _pre-release (Anywhere_Academy_Windows_pre-release.zip, extracting to Anywhere_Academy_Windows_pre-release/), CI testing builds in _testing. Development builds additionally end in _Dev, debug-signed APKs in _DebugSigned. Local builds from the editor menu get no channel suffix.

    Every packaged artifact gets its own checksum file beside it, named <artifact>.sha256.txt — so a file handed to someone individually still carries proof of integrity. The contents are in the format sha256sum -c expects, so on Linux:

    sha256sum -c "Anywhere_Academy_Quest.apk.sha256.txt"
    

    and on Windows, compare against Get-FileHash -Algorithm SHA256 <file>.

    Windows Installer

    The .msi guides the user through Welcome, the license (the MIT text from LICENSE, converted at package time), the install folder (default Program Files\<company>\Anywhere Academy), the shortcuts (desktop and Start menu, both ticked by default), Ready to install and progress, and ends on a Finish page whose Launch Anywhere Academy checkbox is ticked by default. Apps & features shows the player's icon and links to the website and to this documentation. IT departments can still install silently with msiexec /i Anywhere_Academy_Windows.msi /qn, and leave out a shortcut by adding INSTALLDESKTOPSHORTCUT=0 or INSTALLSTARTMENUSHORTCUT=0.

    The dialog set is a copy of WiX's WixUI_InstallDir with the Shortcuts page added (AnywhereAcademy.UI.wxs, which marks every change against the original), because WiX offers no other way to insert a page.

    Any .msi replaces whichever version is installed, older, the same or newer, so testers can move freely between releases, pre-releases and testing builds. If one is installed, the Welcome page says so: Next replaces it, Cancel keeps it. A silent install replaces it without asking. Every build gets a new ProductCode for this; with one per version, as before October 2026, installing another build of the same version failed with "Another version of this product is already installed".

    Artwork Size Shown
    Tools/Packaging/Windows/dialog.bmp 493 × 312 Behind Welcome and Finish. Only the left 164 px are visible; the rest is covered by the text and should stay plain white
    Tools/Packaging/Windows/banner.bmp 493 × 58 Across the top of the other pages. The page title is drawn over the left side, so keep artwork to the right

    Both must be BMP files. If one is missing, the build warns and uses WiX's default artwork. The dialog texts are English (-cultures:en-us). The dialogs need WiX Toolset 3 on Windows; an .msi built with wixl on Linux installs with a progress bar only.


    Where the Code Lives

    File Role
    Assets/Editor/Build/BuildCommand.cs Everything that must happen inside Unity. Entry point BuildCommand.PerformBuild. Platform differences are described by BuildCommand.Windows / BuildCommand.Quest
    Assets/Editor/Build/BuildMenu.cs The Tools → Build menu items
    Tools/Build/PackagingCommon.ps1 Helpers shared by the packaging scripts
    Tools/Build/Package-Windows.ps1, Package-Quest.ps1, Package-Server.ps1 Produce the packages in Dist/. No Unity dependency
    Tools/Packaging/Windows/AnywhereAcademy.wxs Installer authoring
    Tools/Packaging/Windows/AnywhereAcademy.UI.wxs, AnywhereAcademy.en-us.wxl, banner.bmp, dialog.bmp Installer dialogs, their texts and their artwork, see Windows Installer
    Tools/Build/build-windows.sh, build-quest.sh, build-server.sh The CI entry points, see CI/CD Pipeline
    .gitlab-ci.yml The pipeline
    In This Article
    Back to top Anywhere Academy Documentation