{"id":15046161,"url":"https://github.com/buildalon/unity-xcode-builder","last_synced_at":"2025-10-26T07:31:15.801Z","repository":{"id":257467075,"uuid":"858344548","full_name":"buildalon/unity-xcode-builder","owner":"buildalon","description":"A GitHub Action to build, archive, and upload Unity exported Xcode projects.","archived":false,"fork":false,"pushed_at":"2025-01-22T02:35:41.000Z","size":1133,"stargazers_count":14,"open_issues_count":0,"forks_count":2,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-01-31T16:53:00.619Z","etag":null,"topics":["actions","app-store-connect","build-automation","buildalon","game-ci","github","github-actions","ios","macos","unity","unity3d","visionos","xcode","xcode-signing"],"latest_commit_sha":null,"homepage":"https://buildalon.com","language":"TypeScript","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/buildalon.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":".github/CODEOWNERS","security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2024-09-16T18:24:35.000Z","updated_at":"2025-01-30T09:05:43.000Z","dependencies_parsed_at":"2024-09-17T00:08:43.559Z","dependency_job_id":"89807e18-ef52-4fa1-9c6c-948f4fe67c04","html_url":"https://github.com/buildalon/unity-xcode-builder","commit_stats":{"total_commits":10,"total_committers":1,"mean_commits":10.0,"dds":0.0,"last_synced_commit":"7acc54fc402f54c3ac6cbbdfc4bddab07b54ad7a"},"previous_names":["buildalon/unity-xcode-builder"],"tags_count":7,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/buildalon%2Funity-xcode-builder","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/buildalon%2Funity-xcode-builder/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/buildalon%2Funity-xcode-builder/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/buildalon%2Funity-xcode-builder/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/buildalon","download_url":"https://codeload.github.com/buildalon/unity-xcode-builder/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":238284806,"owners_count":19446732,"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":["actions","app-store-connect","build-automation","buildalon","game-ci","github","github-actions","ios","macos","unity","unity3d","visionos","xcode","xcode-signing"],"created_at":"2024-09-24T20:52:47.584Z","updated_at":"2025-10-26T07:31:15.796Z","avatar_url":"https://github.com/buildalon.png","language":"TypeScript","readme":"# Buildalon unity-xcode-builder\n\n[![Discord](https://img.shields.io/discord/939721153688264824.svg?label=\u0026logo=discord\u0026logoColor=ffffff\u0026color=7389D8\u0026labelColor=6A7EC2)](https://discord.gg/VM9cWJ9rjH) [![marketplace](https://img.shields.io/static/v1?label=\u0026labelColor=505050\u0026message=Buildalon%20Actions\u0026color=FF1E6F\u0026logo=github-actions\u0026logoColor=0076D6)](https://github.com/marketplace?query=buildalon) [![validate](https://github.com/buildalon/unity-xcode-builder/actions/workflows/validate.yml/badge.svg?branch=main)](https://github.com/buildalon/unity-xcode-builder/actions/workflows/validate.yml)\n\nA GitHub Action to take Unity exported Xcode projects and automate the process of building, signing, archiving, notarizing, and uploading to Apple App Store Connect or Steam.\n\n\u003e [!NOTE]\n\u003e Steam uploads require an additional action step: [`upload-steam`](https://github.com/buildalon/upload-steam)\n\n## How to use\n\n### workflow\n\nTo archive, export, and upload directly to Apple App Store Connect, use the following workflow configuration:\n\n```yaml\nsteps:\n  - uses: buildalon/unity-xcode-builder@v1\n    id: xcode-build\n    with:\n      project-path: '/path/to/your/build/output/directory'\n      app-store-connect-key: ${{ secrets.APP_STORE_CONNECT_KEY }}\n      app-store-connect-key-id: ${{ secrets.APP_STORE_CONNECT_KEY_ID }}\n      app-store-connect-issuer-id: ${{ secrets.APP_STORE_CONNECT_ISSUER_ID }}\n      team-id: ${{ secrets.APPLE_TEAM_ID }}\n\n  - run: |\n      echo ${{ steps.xcode-build.outputs.executable }}\n      ls -al ${{ steps.xcode-build.outputs.output-directory }}\n```\n\n### inputs\n\nThis action requires several secrets that need to be setup in the repository or organization's action secret store.\n\n- `APP_STORE_CONNECT_KEY`: The App Store Connect API AuthKey_*.p8 key encoded as base64 string.\n- `APP_STORE_CONNECT_KEY_ID`: The App Store Connect API key id.\n- `APP_STORE_CONNECT_ISSUER_ID`: The issuer ID of the App Store Connect API key.\n\n\u003e [!TIP]\n\u003e You can easily encode a file to base64 using the following command in linux, mac, or windows bash terminal:\n\u003e\n\u003e ```bash\n\u003e openssl base64 -in ./AuthKey_*.p8 -out ./AuthKey_*.txt\n\u003e ```\n\n| name | description | required |\n| ---- | ----------- | -------- |\n| `xcode-version` | The version of Xcode to use for building the Xcode project. | Defaults to the [latest version of Xcode on the runner](https://github.com/actions/runner-images#available-images). |\n| `project-path` | The directory that contains the exported xcode project from Unity. | Defaults to searching the workspace for `.xcodeproj` |\n| `app-store-connect-key` | The App Store Connect API AuthKey_*.p8 key encoded as base64 string. | true |\n| `app-store-connect-key-id` | The App Store Connect API key id. | true |\n| `app-store-connect-issuer-id` | The issuer ID of the App Store Connect API key. | true |\n| `manual-signing-certificate` | Exported signing certificate.p12 encoded as base64 string. Overrides the automatic signing in Xcode. | Defaults to Automatic signing. |\n| `manual-signing-certificate-password` | The password for the exported certificate. | Required if `manual-signing-certificate` is provided. |\n| `manual-signing-identity` | The signing identity to use for signing the Xcode project. | Parsed from the `manual-signing-certificate` if not provided. |\n| `provisioning-profile` | The provisioning profile to use as base64 string. Use when manually signing the Xcode project. | Defaults to Automatic signing. |\n| `provisioning-profile-name` | The name of the provisioning profile file, including the type to use for signing the Xcode project. Must end with either `.mobileprovision` or `.provisionprofile`. | Required if `provisioning-profile` is provided. |\n| `team-id` | The team ID to use for signing the Xcode project. | Defaults to parsing team ID from `manual-signing-certificate` if provided. |\n| `bundle-id` | The bundle ID of the Xcode project. Overrides the value in the exported Unity project. | Defaults to parsing bundle ID from `.xcodeproj`. |\n| `configuration` | The configuration to build the Xcode project with. | Defaults to `Release`. |\n| `scheme` | The scheme to use when building the xcode project. | false |\n| `destination` | The destination to use when building the xcode project. | Defaults to `generic/platform={platform}`. |\n| `platform` | The platform to build for. Can be one of `iOS`, `macOS`, `tvOS`, `visionOS`. | Defaults to parsing platform from `.xcodeproj`. |\n| `platform-sdk-version` | The version of the platform SDK to use for building the Xcode project. | Defaults to the latest version of the platform SDK defined in the `.xcodeproj`. |\n| `export-option` | The export option to use for exporting the Xcode project. Can be one of `app-store-connect`, `steam`, `release-testing`, `enterprise`, `debugging`, `developer-id`, `mac-application`. | Defaults to `development` |\n| `export-option-plist` | The path to custom export option plist file to use when exporting the Xcode project. | Overrides `export-option`. |\n| `entitlements-plist` | The path to custom entitlements plist file. | Generates [default hardened runtime entitlements](https://developer.apple.com/documentation/security/hardened-runtime) if not provided. |\n| `notarize` | Whether to notarize the exported Xcode project. | Defaults to `true` if `export-option !== app-store-connect`. |\n| `archive-type` | The archive type to use when exporting macOS applications when not uploading to the App Store. Can be one of `app` or `pkg`. | Defaults to `app`. Forces `app` if `export-option === steam`. |\n| `upload` | Whether to upload the exported Xcode project to App Store Connect. | Defaults to `true` if `export-option === app-store-connect`. |\n| `whats-new` | When `uploading === true`, Let your testers know what you would like them to test in this build. This information will be available to testers in all groups who have access to this build. | Defaults to the last git commit sha, current branch name, and commit message up to 4000 characters. |\n| `auto-increment-build-number` | Whether to automatically increment the `CFBundleVersion` in the Xcode project. | Defaults to `true` if `export-option === app-store-connect`. |\n| `test-groups` | One or more test groups to automatically add to the build when uploading to TestFlight. When using multiple groups, separate them with commas. | None by default. |\n| `submit-for-review` | Whether to submit the build for review when uploading to App Store Connect. | Defaults to `false`. |\n| `developer-id-application-certificate` | The `Developer ID Application` certificate encoded as base64 string. | Required if `export-option === steam` or `export-option === developer-id` or `notarize === true`. |\n| `developer-id-application-certificate-password` | The password for the `Developer ID Application` certificate. | Required if `developer-id-application-certificate` is provided. |\n| `developer-id-installer-certificate` | The `Developer ID Installer` certificate encoded as base64 string. | Required when creating an installer package for macOS application. |\n| `developer-id-installer-certificate-password` | The password for the `Developer ID Installer` certificate. | Required if `developer-id-installer-certificate` is provided. |\n\n### outputs\n\n- `executable`: Path to the exported archive executable.\n- `output-directory`: The path to the export output directory.\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbuildalon%2Funity-xcode-builder","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fbuildalon%2Funity-xcode-builder","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbuildalon%2Funity-xcode-builder/lists"}