Unity Editor Tool For Making Builds, Uploading Them To Online Services And Notifying Chat Apps
Steamworks | Itch.io | Epic Games | Google | Apple | Consoles | Dropbox | Github
Discord | Slack | Google Chat
Open Source | For Commercial Use
- Windows, Mac, Linux, Android support
- Unity Supported (Light and Dark)
- Unity 6000.0-7
- Unity 202x
- Unity 2020 and 2019
- Requires package com.unity.sharp-zip-lib
- Create multiple builds using Build Configs or Unity's Build Profiles. (Dry run supported)
- Windows, Mac, Linux, Webgl (Others loosely supported via Unity's Build Profiles)
- Tiny build size impact
- For personal and commercial use
- Open Source
- Safely modify builds before uploading
- Remove files/folders
- Compress/Decompress files
- DRM wrap (anti-piracy)
- Build Addressables (Unity 2021.2 and up, requires com.unity.addressables 1.19.4 or newer)
using System.Threading.Tasks;
using UnityEditor;
using UnityEngine;
using Wireframe;
[MenuItem("Test/Create new Task and Upload to Steam")]
public static async Task StartTask()
{
UploadConfig config = new UploadConfig();
// Create a build using a custom Build Profile (Unity 6 and up. Use BuildConfigSource on older versions)
config.AddSource(new BuildProfileSource("Windows Development"));
// Build to this directory. {buildNumber} will be replaced with a locally stored incremental number
config.AddDestination(new LocalPathDestination("C:/MyBuilds/{buildNumber}"));
// Upload to Steam
config.AddDestination(new SteamUploadDestination(1141030, "internal", 1141031));
// Create task and execute to begin the upload
UploadTask task = new UploadTask("Upload to Steam", config);
task.SetBuildDescription("My first build!");
await task.StartAsync();
Debug.Log("Upload complete. Success: " + task.Report.Successful);
}using System.Threading.Tasks;
using UnityEditor;
using UnityEngine;
using Wireframe;
[MenuItem("Test/Upload Existing Profile")]
public static async Task StartTask2()
{
// Load existing Upload Profile that gets a file and uploads it
UploadProfile profile = UploadProfile.FromProfileName("Save Locally");
// Create task and execute to begin the upload
UploadTask task = new UploadTask(profile);
await task.StartAsync();
Debug.Log("Upload complete. Success: " + task.Report.Successful);
}"C:\Program Files\Unity\Hub\Editor\<Unity Version>\Editor\Unity.exe" -nographics -batchmode -logFile logs.log -projectPath "<Path To Your Unity Project>" -executeMethod Wireframe.BatchModeUtil.Execute -uploadProfile 41cf5e
Replace 41cf5e with the GUID or Name of your Upload Profile. Repeat -uploadProfile to run several.
Optional arguments:
-dryRunmakes local changes but nothing leaves the local PC (eg: Steam does a preview upload)-uploadDescription "Nightly build"sets the upload description-uploadReportFile "Logs/UploadReport.txt"writes each task's report to a file-asyncstarts the tasks without waiting for them, and leaves Unity running when they finish
Don't pass -quit: Build Uploader exits Unity itself when the tasks finish, with 0 when they all succeeded and 1 when a profile isn't found or a task fails. With -quit Unity would quit before the tasks run, so Build Uploader exits with 1 without starting them.
Requires the com.unity.pipeline package, which provides the unity CLI.
unity command build_uploader --start_tasks "41cf5e"
Replace 41cf5e with the GUID or Name of your Upload Profile
- Steamworks
- Uploading a build to any branch or depots
- DRM wrap (anti-piracy)
- Itch.io
- Upload a build
- Epic Games
- Upload builds to specific artifacts
- Google (Experimental)
- Upload builds to Google Drive
- Upload builds to Google Play
- Send message to Google Chat
- Apple (Unity 2022.3 and up) (Experimental)
- Upload builds to Apple
- Add build to Test Flight
- Dropbox (Experimental)
- Upload a build
- Playstation (Experimental)
- Upload a build
- Xbox (Experimental)
- Upload a build
- Nintendo (Experimental)
- Upload a build
- Send upload details to your own webhook
- Git
- Format text according to current git state
- Create and push Tags
- Github
- Upload a new Release
- Discord
- Send message to a channel using webhooks or an app
- Slack
- Send message to a channel
- Update a message sent earlier in the upload
- Email (Experimental)
- Send customized emails
- Unity Cloud Build
- View, download and start builds
Prefer a fully headless run with no Editor open?
- See Starting a BuildTask without UI.
- Or Full argument reference: CLI.
- Home: https://github.com/JamesVeug/UnityBuildUploader/wiki
- How to Install: https://github.com/JamesVeug/UnityBuildUploader/wiki/How-to-Install
- How to Setup: https://github.com/JamesVeug/UnityBuildUploader/wiki/How-to-Setup
- How does it Work: https://github.com/JamesVeug/UnityBuildUploader/wiki#how-does-it-work
- CLI (
unity command): https://github.com/JamesVeug/UnityBuildUploader/wiki/CLI
- Support Me: https://buymeacoffee.com/jamesgamesnz
- Discord: https://discord.gg/R2UjXB6pQ8
- Github: https://github.com/JamesVeug/UnityBuildUploader
- Asset Store: https://assetstore.unity.com/packages/tools/utilities/build-uploader-306907
This package does NOT distribute any personal information. Credentials such as tokens and passwords remain obfuscated on your computer and never included in your project files.
Keeping your credentials safe is important to me!
Update checks: when Unity opens, at most once a week (or a month, if you choose), the Build Uploader asks GitHub whether a newer version is out. It only downloads the list of releases (or, for a git submodule or clone, the newest commits on its branch). Nothing about your project is sent. Turn it off in Edit -> Preferences -> Build Uploader -> General -> Updates.
If you discover any security related issues, please email me, message on discord or create an issue on github.
If you find a bug or want to suggest a change, create an issue on github
Include:
- What the problem is
- What you expected to happen
- What version of Build Uploader you are using
- What version of Unity you are using
- Are you using Windows/Linux/Mac
- Fork the repository
- Make your changes
- Create a pull request to the
developbranch- Include detailed description of the changes you made and why
- Include what versions of Unity you tested it on
- Include any concerns with the changes you made (So i'm aware of them too)
A lot of effort has been put into this package for others to freely use. Any kind of support is greatly appreciated and encourages further work!
- βοΈ Review on the Asset Store
- β Star the Github repository
- β Buy me a coffee: buymeacoffee
- π¬ Report bug reports or suggestions improvements: Github Issues
- π Share the package with your friends and colleagues
Creative Commons - CC0 1.0 Universal
Use this package however you want - commercially or non-commercially.
Claude AI has assisted by providing suggestions and creating services that would otherwise not be possible by myself.
All suggestions have been reviewed and rewritten by a professional Senior Unity Developer to fit the package's requirements.
