{"id":14960613,"url":"https://github.com/ivanmurzak/ubuilder","last_synced_at":"2026-03-08T17:34:34.644Z","repository":{"id":113844953,"uuid":"431919295","full_name":"IvanMurzak/UBuilder","owner":"IvanMurzak","description":"Unity command line builder. Flexible setup through Environment variables in combination with command-line variables.","archived":false,"fork":false,"pushed_at":"2024-04-10T00:44:34.000Z","size":92,"stargazers_count":9,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2024-10-10T10:07:31.481Z","etag":null,"topics":["unity","unity-build","unity-build-tool","unity-builder","unity-plugin","unity2d","unity3d","unityplugin"],"latest_commit_sha":null,"homepage":"","language":"C#","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/IvanMurzak.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2021-11-25T16:59:37.000Z","updated_at":"2024-09-11T06:43:02.000Z","dependencies_parsed_at":"2024-09-29T06:19:08.066Z","dependency_job_id":null,"html_url":"https://github.com/IvanMurzak/UBuilder","commit_stats":{"total_commits":34,"total_committers":1,"mean_commits":34.0,"dds":0.0,"last_synced_commit":"3674379e883f6a7814ec8614f5f40bca1d589d03"},"previous_names":[],"tags_count":4,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/IvanMurzak%2FUBuilder","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/IvanMurzak%2FUBuilder/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/IvanMurzak%2FUBuilder/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/IvanMurzak%2FUBuilder/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/IvanMurzak","download_url":"https://codeload.github.com/IvanMurzak/UBuilder/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":219868117,"owners_count":16555878,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["unity","unity-build","unity-build-tool","unity-builder","unity-plugin","unity2d","unity3d","unityplugin"],"created_at":"2024-09-24T13:22:36.860Z","updated_at":"2025-10-24T18:31:51.353Z","avatar_url":"https://github.com/IvanMurzak.png","language":"C#","readme":"# UBuilder - Unity command line builder\n\n![npm](https://img.shields.io/npm/v/extensions.unity.ubuilder) [![openupm](https://img.shields.io/npm/v/extensions.unity.ubuilder?label=openupm\u0026registry_uri=https://package.openupm.com)](https://openupm.com/packages/extensions.unity.ubuilder/) ![License](https://img.shields.io/github/license/IvanMurzak/UBuilder) [![Stand With Ukraine](https://raw.githubusercontent.com/vshymanskyy/StandWithUkraine/main/badges/StandWithUkraine.svg)](https://stand-with-ukraine.pp.ua)\n\nUnity command line builder. Flexible setup through Environment variables in combination with command line variables. Well combined with Fastlane.\n\nAll operation systems are supported for running the build process:\n\n- :white_check_mark: Windows\n- :white_check_mark: MacOS\n- :white_check_mark: Linux\n\nSupported platforms:\n\n- :white_check_mark: Standalone (Windows / Mac / Linux)\n- :white_check_mark: iOS\n- :white_check_mark: Android\n- :yellow_circle: other (supported but not tested)\n\n# How to install - Option 1 (RECOMMENDED)\n\n- [Install OpenUPM-CLI](https://github.com/openupm/openupm-cli#installation)\n- Open command line in Unity project folder\n- `openupm add extensions.unity.ubuilder`\n\n# How to install - Option 2\n\n- Add this code to `/Packages/manifest.json`\n\n```json\n{\n  \"dependencies\": {\n    \"extensions.unity.ubuilder\": \"1.2.0\",\n  },\n  \"scopedRegistries\": [\n    {\n      \"name\": \"Unity Extensions\",\n      \"url\": \"https://registry.npmjs.org\",\n      \"scopes\": [\n        \"extensions.unity\"\n      ]\n    }\n  ]\n}\n```\n\n# Variables\n\nAny variable can be passed as argument in command line such as `output=./Builds/Destination` or it could be set as environment variable in command line or in operation system or even in docker.\nIn command line you can do this by this command\n\n`SET output=./Builds/Destination` on Windows\n\n`output=./Builds/Destination` on MacOS and Linux\n\n## Global variables\n\n| Variable           | Type    | Default         | Description                                                                                       |\n| ------------------ | ------- | --------------- | ------------------------------------------------------------------------------------------------- |\n| `output`           | string  | `null`          | absolute or relevant path to build destination                                                    |\n| `buildNumber`      | integer | `timestamp`     | integer value of build number                                                                     |\n| `buildVersion`     | string  | current version | build version, should contains only numbers and dots, last and first characters should be numbers |\n| `developmentBuild` | boolean | current value   | true/false, enable or disable Unity project flag - Development Build                              |\n\n## iOS related variables\n\n| Variable                     | Type    | Default       | Description                         |\n| ---------------------------- | ------- | ------------- | ----------------------------------- |\n| `ios_SigningTeamId`          | string  | current value | Apple signing team ID               |\n| `ios_EnableAutomaticSigning` | boolean | current value | true/false, automatic signing build |\n\n## Android related variables\n\n| Variable                    | Type    | Default       | Description                                                                |\n| --------------------------- | ------- | ------------- | -------------------------------------------------------------------------- |\n| `android_BUILD_APP_BUNDLE`  | string  | current value | true/false, true - compile .aab file for Google Play, false - compile .apk |\n| `android_KEYSTORE_PATH`     | boolean | `null`        | [required] path to keystore                                                |\n| `android_KEYSTORE_PASSWORD` | boolean | `null`        | [required] keystore password                                               |\n| `android_KEYALIAS_NAME`     | boolean | `null`        | [required] key alias                                                       |\n| `android_KEYALIAS_PASSWORD` | boolean | `null`        | [required] key alias password                                              |\n\n# How to use in command line (MacOS \u0026 Linux)\n\n\u003e Tip: If you don't have Unity Pro license that allow you to run Unity in batchmode (no GUI), you can use Unity Personal license. In this case you should run Unity Editor with GUI and it will build project. Just need to remove `-batchmode -nographics` from command line.\n\n### iOS\n\n```sh\nUnityEditor=/Applications/\"Unity Editor\"/2019.2.1f1/Unity.app/Contents/MacOS/Unity\n\"$UnityEditor\" -projectPath ./ -logFile build.log -executeMethod UBuilder.CommandiOS.Build -quit -accept-apiupdate -quitTimeout 6000 -batchmode -nographics\n```\n\n### Android\n\n```sh\nUnityEditor=/Applications/\"Unity Editor\"/2019.2.1f1/Unity.app/Contents/MacOS/Unity\nandroid_KEYSTORE_PATH=***************\nandroid_KEYSTORE_PASSWORD=***************\nandroid_KEYALIAS_NAME=***************\nandroid_KEYALIAS_PASSWORD=***************\n\n\"$UnityEditor\" -projectPath ./ -logFile build.log -executeMethod UBuilder.CommandAndroid.Build -quit -accept-apiupdate -quitTimeout 6000 -batchmode -nographics\n```\n\n### Other\n\n```sh\nUnityEditor=/Applications/\"Unity Editor\"/2019.2.1f1/Unity.app/Contents/MacOS/Unity\n\"$UnityEditor\" -projectPath ./ -logFile build.log -executeMethod UBuilder.Command.Build -quit -accept-apiupdate -quitTimeout 6000 -batchmode -nographics\n```\n\nOr create .sh file and put the text inside. Ease way to start build process by single script.\n\n# How to use in command line (Windows)\n\n### Android\n\n```shell\nSET UnityEditor=C:/UnityEditor/Unity/2019.2.1f1/Editor/Unity.exe\nSET android_BUILD_APP_BUNDLE=false\nSET android_KEYSTORE_PATH=***************\nSET android_KEYSTORE_PASSWORD=***************\nSET android_KEYALIAS_NAME=***************\nSET android_KEYALIAS_PASSWORD=***************\n\n%UnityEditor% -projectPath ./ -logFile build.log -executeMethod UBuilder.CommandAndroid.Build -quit -accept-apiupdate -quitTimeout 6000 -batchmode -nographics\n```\n\n### Other\n\n```shell\nSET UnityEditor=C:/UnityEditor/Unity/2019.2.1f1/Editor/Unity.exe\n%UnityEditor% -projectPath ./ -logFile build.log -executeMethod UBuilder.Command.Build -quit -accept-apiupdate -quitTimeout 6000 -batchmode -nographics\n```\n\nOr create .bat file and put the text inside. Double click the bat file. Ease way to start build process by single script\n\n# Hot to use in code (any OS)\n\n| Function                           | Description                                                                                 |\n| ---------------------------------- | ------------------------------------------------------------------------------------------- |\n| `UBuilder.CommandiOS.Build()`      | create XCode project (MacOS required)                                                       |\n| `UBuilder.CommandAndroid.Build()`  | create APK (`android_BUILD_APP_BUNDLE=false`) or AAB (`android_BUILD_APP_BUNDLE=true`) file |\n| `UBuilder.CommandAndroid.Export()` | create Android Studio project                                                               |\n| `UBuilder.Command.Build()`         | build current (from ProjectSettings) platform build                                         |\n\n# How to use in Unity Editor (codeless)\n\nPress `File/UBuilder` and choose needed build options from the list.\n\n![Build Options](https://imgur.com/PvBTMvu.png)\n\n# Customize project before build\n\nBefore execute the UBuilder functions, prepare a project to build. You can do that by creating public static class with public static method. In that method you should prepare your project and call needed UBuilder function. In command line call your new public static function instead of UBuilder function.\nExample:\n\n```C#\npublic static class ProjectBuilder\n{\n    // customize package name (bundle id)\n    [MenuItem(\"File/UBuilder/Build Android custom package\")]\n    public static void BuildiOSCustomPackage()\n    {\n        PlayerSettings.SetApplicationIdentifier(BuildTargetGroup.iOS, \"my.project.game\");\n        UBuilder.CommandiOS.Build();\n    }\n    \n    // customize package name (bundle id)\n    [MenuItem(\"File/UBuilder/Build Android+iOS custom package\")]\n    public static void BuildiOSAndroidCustomPackage()\n    {\n        PlayerSettings.SetApplicationIdentifier(BuildTargetGroup.iOS, \"my.project.game\");\n        PlayerSettings.SetApplicationIdentifier(BuildTargetGroup.Android, \"my.project.game\");\n        UBuilder.CommandiOS.Build();\n        UBuilder.CommandAndroid.Build();\n    }\n}\n```\n\n```Bash\nSET UnityEditor=C:/UnityEditor/Unity/2019.2.1f1/Editor/Unity.exe\n%UnityEditor% -projectPath ./.. -logFile build.log -executeMethod BuildProject.BuildiOSCustomPackage -quit -accept-apiupdate -quitTimeout 6000 -batchmode -nographics output=Builds/iOS_Custom_Package\n```\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fivanmurzak%2Fubuilder","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fivanmurzak%2Fubuilder","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fivanmurzak%2Fubuilder/lists"}