Skip to content

About

Editor tool to help you upload builds to online services. Steam being the obvious

Resources

Stars

190 stars

Watchers

2 watching

Forks

Latest commit

Β 

History

888 Commits

Folders and files

NameName
Last commit message
Last commit date
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

Build Uploader Logo

Build Uploader

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


LICENSE GitHub Issues Open GitHub Issues Closed Github Release Downloads STARS

Key Points πŸ’‘

  • Windows, Mac, Linux, Android support
  • Unity Supported (Light and Dark)
  • 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)

Interface

Simple and Advanced GUI support

alt text

Non-UI support

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);
}

Batch mode

"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:

  • -dryRun makes 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
  • -async starts 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.

Unity's command CLI

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

Services

  • 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?

Wiki

Links

Security πŸ”’

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.

Reporting bugs / suggesting changes ❓

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

How to Contribute πŸ”¨

  • Fork the repository
  • Make your changes
  • Create a pull request to the develop branch
    • 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)

How to Support πŸ™

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!

Supporters

License πŸͺͺ

Creative Commons - CC0 1.0 Universal

Use this package however you want - commercially or non-commercially.

Created with AI

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.

About

Editor tool to help you upload builds to online services. Steam being the obvious

Resources

Stars

190 stars

Watchers

2 watching

Forks

Releases

Sponsor this project

Packages

Contributors

Languages