{"id":27938555,"url":"https://github.com/willowtreeapps/xambuild","last_synced_at":"2025-06-13T08:32:52.163Z","repository":{"id":66754541,"uuid":"241443424","full_name":"willowtreeapps/xambuild","owner":"willowtreeapps","description":"Build Xamarin projects outside of Visual Studio!","archived":false,"fork":false,"pushed_at":"2020-04-06T13:25:45.000Z","size":11,"stargazers_count":3,"open_issues_count":0,"forks_count":2,"subscribers_count":10,"default_branch":"master","last_synced_at":"2025-05-07T08:50:51.143Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"","language":"Python","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/willowtreeapps.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE.txt","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,"zenodo":null}},"created_at":"2020-02-18T19:01:56.000Z","updated_at":"2022-05-10T13:55:14.000Z","dependencies_parsed_at":"2023-03-13T20:29:37.603Z","dependency_job_id":null,"html_url":"https://github.com/willowtreeapps/xambuild","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/willowtreeapps/xambuild","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/willowtreeapps%2Fxambuild","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/willowtreeapps%2Fxambuild/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/willowtreeapps%2Fxambuild/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/willowtreeapps%2Fxambuild/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/willowtreeapps","download_url":"https://codeload.github.com/willowtreeapps/xambuild/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/willowtreeapps%2Fxambuild/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":259610154,"owners_count":22884207,"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":[],"created_at":"2025-05-07T08:49:14.918Z","updated_at":"2025-06-13T08:32:52.153Z","avatar_url":"https://github.com/willowtreeapps.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# xambuild\nBuild Xamarin projects outside of Visual Studio!\n\n`xambuild` is a wrapper around `msbuild` and `nuget` that allows you to build Xamarin projects easily without an IDE.\n\n## Installation\nJust drop `xambuild.py` into the main directory of your project. If you want to place it elsewhere for organization reasons, see [Root Project Directory](#root-project-directory) configuration below. \n\n### Requirements\nYou will want to ensure you have Python \u003e= 3.5 installed. Xambuild has been tested on MacOS but should work in other environments, including Windows.\n\n## Setup\nIn many cases no additional setup is required. If you do need to modify a default, xambuild allows you to change configuration by both supplying arguments (1st priority) or through setting environment variables (2nd priority).\n\n### Root Project Directory\nSpecifies the root project directory in relation to the invocation directory. The root project directory is the directory with a .sln file and \\*.Droid and \\*.iOS directories. \n\nThe default value is `.`, for current directory. You can override this with the `XAMBUILD_PROJECT_DIR` environment variable or by supplying `-d \u003cprojectDir\u003e` or `--projectDir \u003cprojectDir\u003e`.\n\n### Platform\nSpecifies the platform to build. Available options are `android` and `ios`.\n\nThe default value is `android`. You can override this with the `XAMBUILD_PLATFORM` environment variable or by supplying `-p \u003cplatform\u003e` or `--platform \u003cplatform\u003e`.\n\n### Build Configuration\nSpecifies which build configuration to use. Examples include `Debug` and `Release`, though these will vary based on what is configured in your project's .csproj file. \n\nThe default value is `Debug`. You can override this with the `XAMBUILD_CONFIGURATION` environment variable or by supplying `-c \u003cbuildConfiguration\u003e` or `--configuration \u003cbuildConfiguration\u003e`.\n\n### Android Project Directory\nThis is the location of your android project directory with respect to your [Root Project Directory](#root-project-directory).\n\nThis defaults to the first (alphabetical) directory containing \".Droid\" in the Root Project Directory. You can override this with the `XAMBUILD_DROID_DIR` environment variable or by supplying `-a \u003cdirectory\u003e` or `--droidDir \u003cdirectory\u003e`.\n\n### iOS Project Directory\nThis is the location of your android project directory with respect to your [Root Project Directory](#root-project-directory).\n\nThis defaults to the first (alphabetical) directory containing \".iOS\" in the Root Project Directory. You can override this with the `XAMBUILD_IOS_DIR` environment variable or by supplying `-i \u003cdirectory\u003e` or `--iosDir \u003cdirectory\u003e`.\n\n## Running\nUsage: `xambuild.py \u003cflags\u003e \u003ccommand ...\u003e`\n\n`xambuild` offers the following commands:\n\n* `buildAndDeploy` builds and deploys your app according to the specified options. For Android, this assumes you have one and only one device connected via ADB.\n* `build` only compiles your project.\n* `androidSign` compiles and generates a signed APK. Commonly used in conjunction with '-c \u003cbuildconfiguration\u003e'\n* `clean` cleans your project. Useful for when compilation fails for strange reasons.\n* `updateAndroidResources` compiles only Android's resource files. Useful for quickly testing whether or not your XML changes are valid.\n* `listEnvVars` shows the state of all environment variables used for xambuild configuration.\n* `nuget` wraps the nuget executable, with the two following additions:\n\t* `wipe` wipes your nuget cache and all cached files. Using this in conjunction with the clean command fixes 99% of strange build issues, especially when changing nuget sources.\n\t* `restoreAll` restores the nuget packages for your project and all subprojects in one fell swoop. This is useful after fresh clones and wipes.\n\n`launch.json` and `tasks.json` files designed for use with Visual Studio Code have also been provided.\n\n### Error codes:\n* 0: Success.\n* 1: Cancelled by keyboard interrupt.\n* 2: Error parsing platform. Check XAMBUILD_PLATFORM and/or the --platform argument, if provided.\n* 3: Error finding platform-specific .csproj file. \n* 4: Unable to find platform-specific folders in the project directory.\n* 5: No action or bad action supplied.\n* Others: If msbuild or nuget emit a nonzero error code, xambuild will have its error code equal the wrapped program's error code.\n\nAll xambuild errors emit a message to standard out along with the error codes shown above.","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fwillowtreeapps%2Fxambuild","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fwillowtreeapps%2Fxambuild","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fwillowtreeapps%2Fxambuild/lists"}