| Home | Feedback | Quick Start Guide | Build Script |
|---|
- Python3
- npm
- Xcode
- Unity 2020.3.33f1
❗ Once the plug-ins have been built, they can be used with any newer Unity version. However, it is recommended to first build plug-ins with the suggested Unity version.
As discussed in the QuickStart Guide, the fastest way to begin working with the Apple Unity plug-ins is to run:
python3 build.pyThis command will build each plug-in's native libraries and npm pack the entire plug-in into a .tgz file for easily incorporating into a Unity project via the Unity Package Manager.
Running python3 build.py --help will show the list of flags available for customizing the build process. What follows is a description of what each flag does and some example use cases.
- Plug-in Selection
- Build Actions
- Unity Installation Path
- Debug Builds
- Output Path
- Clean Actions
- Force Clean
- Test Builds
- Test Output Path
- Flag:
--plugin-list - Short version:
-p - Possible values:
all,Core,Accessibility,CoreHaptics,GameController,GameKit,PHASE - Default value:
all - Description: Selects a subset of plug-ins to perform the build, clean, or test action or actions selected. For example, you may want to perform the default actions on only a subset of plug-ins, such as Apple.Core, Apple.GameKit, and Apple.GameController. This can be done by running:
python3 build.py -p Core GameKit GameController- Flag:
--build-action - Short version:
-b - Possible values:
all,none,build,pack - Default value:
all - Description: Sets the build action(s) to perform for the selected plug-ins. For example, you may choose only to
buildin order to explore the sample projects included with each plug-in, or to reference the plug-ins for local development rather than referencing a read-only tarball. This can be done by running:
python3 build.py -b build- Flag:
--unity-installation-root - Short version:
-u - Possible values: Any system directory
- Default value:
/Applications/Unity - Description: The build actions above require a valid Unity installation in order to properly resolve the native library references within the Unity package. This flag is used to provide a path to use for searching for Unity installations. Most users will likely have their Unity installations installed in the
/Applications/Unity/path. However, if your Unity settings are custom, you may have elected to use an alternate location, such as~/Desktop/UnityInstalls/. In that case, tell the build script where to find your Unity installations by running:
python3 build.py -u ~/Desktop/UnityInstalls/ or /Users/ could result in very long build times.
- Flag:
--debug - Short version:
-d - Default value: Off
- Description: If you are making changes to the native code as part of an open source contribution, or if for any other reason you'd like to a debug build with more verbose native library logging, add this flag to your build command. For example:
python3 build.py -d- Flag:
--output-path - Short version:
-o - Possible values: Any relative system directory
- Default value:
Build/(a directory created at the repo root) - Description: Used to select a directory for the packaged plug-in
.tgztarballs. For example, to build and pack all of the plug-ins and put those.tgzfiles on your Desktop, run:
python3 build.py -o ~/Desktop/- Flag:
--clean-action - Short version:
-k - Possible values:
all,none,native,packages,tests - Default value:
none - Description: Sets the clean action(s) to perform for the selected plug-ins. For example, you may want to remove any
.tgzpackages before building new ones and also rebuild the native libraries from scratch. This is accomplished by running:
python3 build.py -k packages native❗ Note that this attempts to clean files only at the specified output path, not at paths used by previous uses of the script.
- Flag:
--force - Short version:
-f - Default value: Off
- Description: If performing clean actions that would normally prompt the user for permission, override any prompts. For example, you may choose to run:
python3 build.py -k all -f- Flag:
--test - Short version:
-t - Default value: Off
- Description: If you would like to run the C# test suites included with each selected plug-in, include this flag in your build command. This may be especially useful if you choose to contribute to the open-source project. Any changes submitted must pass all existing tests, and hopefully include some new tests to verify the changes! Each plug-in's tests will build into a separate Xcode project, placed in the
TestBuilds/. To run the test suite(s), open this resulting Xcode project, then Build & Run the application on the desired device(s). Test results can be found in the Xcode logger. For example, if you're making changes to the CoreHaptics plug-in and want to verify its tests all pass, run:
python3 build.py -p CoreHaptics -t -b build❗ Note that this command elects only to build, and not pack the plug-in. If you are iterating only on the Unity code and not making any changes to the native code, you might opt for -b none here to reduce test building time.
- Flag:
--test-output-path - Short version:
-to - Possible values: Any relative system directory
- Default value:
TestBuilds/(a directory created at the repo root) - Description: If you have elected to build the test suites with
--testabove, this argument can be used to select a specific location to output the resulting Xcode projects. For example, if you want to run the CoreHaptics test suite and have the
python3 build.py -t -to