Distribution === LÖVR projects can be exported to standalone executables. This guide will teach you how to export and distribute a project. Creating an Archive --- The first step is to create an archive of your project, which is a zipped up version of its contents. On Windows you can select all the files in a project (**not** the project folder), right click them, and choose "Send to" -> "Compressed (zip) folder". On Unix systems, the `zip` utility can be used: $ cd /path/to/project $ zip -9qr project.lovr . By convention, zip files containing LÖVR projects use the `.lovr` extension. A zip archive can be run with LÖVR but isn't a standalone executable yet. Creating an Executable --- Once you have a project archive, it can be appended to the LÖVR program to create a standalone executable. On Windows, this can be done using the command prompt: $ copy /b lovr.exe+MyProject.zip MyProject.exe On Unix systems, the `cat` utility can be used to concatenate the two files: $ cat /path/to/lovr MyProject.zip > MyProject :::note Once you have an executable, be sure to distribute it with all the libraries (`.dll` or `.so` files) that came with the original LÖVR download. ::: macOS --- To create a .app on macOS, first get the stock LÖVR.app, either by downloading it [here](https://lovr.org/download/mac) or by setting the `-DLOVR_BUILD_BUNDLE=ON` flag when building with CMake. Then, to get the .app to run a custom project instead of the nogame screen, put a .lovr archive in the `LÖVR.app/Contents/Resources` folder (right click and use "Show Package Contents" to get to the Contents folder). Next, the `Contents/Info.plist` should be modified. The `CFBundleName` entry should be changed from "LÖVR" to the name of the project, and the `CFBundleIdentifier` should also be changed to a unique ID for the project/studio name. The `Resources/lovr.icns` file can be replaced with a custom icon as well. Finally, `LÖVR.app` can be renamed to `Awesome VR Project.app` and distributed as a zip. Android --- When the LÖVR APK runs, it will search for and load a project located in the `assets` folder of the APK. Distributing an APK with a custom LÖVR project involves adding the project files into the `assets` folder. However, Android requires that the APK is resigned after it's modified. LÖVR's build system has options for including assets in the APK. For CMake, specify the `-DANDROID_ASSETS=/path/to/project` option on the command line. For tup, specify the `CONFIG_ANDROID_PROJECT=/path/to/project` config variable in `tup.config`. See the `Compiling` guide for more info. (TODO: Mention other approaches like `aapt add`, `apktool`, or manually unzipping/rezipping).