{"id":21671294,"url":"https://github.com/lachee/unity-package-exporter","last_synced_at":"2025-08-20T16:33:02.166Z","repository":{"id":38315240,"uuid":"152022196","full_name":"Lachee/Unity-Package-Exporter","owner":"Lachee","description":"Exports Unity3D packages without the need of Unity3D. Perfect for build automation and CI.","archived":false,"fork":false,"pushed_at":"2024-09-03T22:12:52.000Z","size":2080,"stargazers_count":43,"open_issues_count":1,"forks_count":14,"subscribers_count":5,"default_branch":"master","last_synced_at":"2024-12-09T08:33:01.063Z","etag":null,"topics":["appvoyer","automation","csharp","package","unity3d","unitypackage"],"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/Lachee.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":".github/FUNDING.yml","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},"funding":{"ko_fi":"lachee","github":"lachee"}},"created_at":"2018-10-08T05:18:38.000Z","updated_at":"2024-10-29T01:23:49.000Z","dependencies_parsed_at":"2024-11-25T15:47:42.896Z","dependency_job_id":null,"html_url":"https://github.com/Lachee/Unity-Package-Exporter","commit_stats":null,"previous_names":[],"tags_count":4,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Lachee%2FUnity-Package-Exporter","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Lachee%2FUnity-Package-Exporter/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Lachee%2FUnity-Package-Exporter/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Lachee%2FUnity-Package-Exporter/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Lachee","download_url":"https://codeload.github.com/Lachee/Unity-Package-Exporter/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":230438185,"owners_count":18225870,"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":["appvoyer","automation","csharp","package","unity3d","unitypackage"],"created_at":"2024-11-25T12:40:13.503Z","updated_at":"2024-12-19T13:08:37.747Z","avatar_url":"https://github.com/Lachee.png","language":"C#","funding_links":["https://ko-fi.com/lachee","https://github.com/sponsors/lachee"],"categories":[],"sub_categories":[],"readme":"# Unity Package Exporter\nThis library will export a series of files from a Unity3D project into a Unity Package (.unitypackage). This is very useful for **automated builds** of packages using _app voyer_. I use this myself on my [Discord Rich Presence](https://github.com/Lachee/discord-rpc-csharp) library so I dont have to rebuild the package every time.\n\n## Usage\nNow with the improved CLI provided by System.CommandLine, simply run the --help to get options.\n```\n-$ dotnet ../tools/UnityPackageExporter.dll --help\nDescription:\n  Packs the assets in a Unity Project\n\nUsage:\n  UnityPackageExporter \u003csource\u003e \u003coutput\u003e [options]\n\nArguments:\n  \u003csource\u003e  Unity Project Direcotry.\n  \u003coutput\u003e  Output .unitypackage file\n\nOptions:\n  -a, --assets \u003cassets\u003e                   Adds an asset to the pack. Supports glob matching. [default: **.*]\n  -e, --exclude \u003cexclude\u003e                 Excludes an asset from the pack. Supports glob matching. [default:\n                                          Library/**.*|**/.*]\n  --skip-dependecy-check                  Skips dependency analysis. Disabling this feature may result in missing\n                                          assets in your packages. [default: False]\n  -r, --asset-root \u003casset-root\u003e           Sets the root directory for the assets. Used in dependency analysis to only\n                                          check files that could be potentially included. [default: Assets]\n  -v, --log-level, --verbose \u003clog-level\u003e  Sets the logging level [default: Info]\n  --version                               Show version information\n  -?, -h, --help                          Show help and usage information\n```\n\n## Github Actions\n\nBelow is a GitHub action for packaging a Unity Package styled project (no Assets folder).\n```yml\n\njobs:\n  env:\n    package_path: \"~/lachee-utilities.unitypackage\"\n  build:\n    runs-on: ubuntu-latest\n    steps:\n      # Checks-out your repository under $GITHUB_WORKSPACE, so your job can access it\n      - uses: actions/checkout@v3\n      - uses: actions/setup-dotnet@v2\n\n      # Install the packager. We are putting it outside the working directory so we dont include it by mistake\n      - name: Install Unity Packager\n        run: |\n          git clone https://github.com/Lachee/Unity-Package-Exporter.git \"../tools/unity-package-exporter\"\n          dotnet publish -c Release -o ../tools \"../tools/unity-package-exporter/UnityPackageExporter\"\n        \n      # Pack the assets\n      - name: Package Project\n        run: |\n          echo \"Creating package ${{env.package_path}}\"\n          dotnet ../tools/UnityPackageExporter.dll --project ./ --output package.unitypackage --exclude \".*\" --exclude \"Documentation\"\n        \n      # Upload artifact\n      - name: Upload Artifact\n        uses: actions/upload-artifact@v3.0.0\n        with:\n          name: Unity Package\n          path: ${{env.package_path}}   \n```\n\n**NOTE**\n\nWe are doing a publish then running the dll to avoid .NET bugs involving running projects.\n\n\n**IMPORTANT**\n\nThis package builder _requires_ the `.meta` files unity generates to properly pack the assets. If you are ignoring them in the .gitignore, this may cause issues such as incorrect import settings and broken links after the build. Please make sure you _allow .meta files_ in your repository.\n\n## Dependency Analysis\nThis tool will automatically scan selected assets for dependecies. This is slow and can be inefficient if you are including everything within the glob pattern.\nUse the `--skip-dependecy-check` flag to skip this check if you're including everything with the package anyways and/or don't mind if the package contains missing assets.\n\nThe `--asset-root` flag determines from which folder to start scanning dependencies from. By default this is the Assets folder (so packages are automatically excluded, speeding up the process), but if you have a larger project (or a Package project), it is benificial to be more precise to limit the number of scripts and assets that need to be scanned for dependency.\n\n_The exclusion rule will still work on assets found with the dependency analysis._\n\n\n## Maintenance\nThis is a project I am using personally. I made it soley for this project. If you have any issues please make a new github issue, but I might not respond. I dont plan to actively maintain this as much as I do with my other library.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Flachee%2Funity-package-exporter","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Flachee%2Funity-package-exporter","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Flachee%2Funity-package-exporter/lists"}