{"id":21944830,"url":"https://github.com/browserstack/browserstack-bitrise-xcui-step","last_synced_at":"2025-08-20T09:33:05.479Z","repository":{"id":49388935,"uuid":"515833112","full_name":"browserstack/browserstack-bitrise-xcui-step","owner":"browserstack","description":"Official browserstack xcui bitrise step.","archived":false,"fork":false,"pushed_at":"2023-07-03T14:43:12.000Z","size":52,"stargazers_count":0,"open_issues_count":3,"forks_count":6,"subscribers_count":6,"default_branch":"main","last_synced_at":"2025-04-22T21:06:44.534Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Go","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/browserstack.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":"CODEOWNERS","security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2022-07-20T04:29:53.000Z","updated_at":"2022-07-27T08:58:40.000Z","dependencies_parsed_at":"2024-06-21T07:17:47.594Z","dependency_job_id":"c1483103-7a94-40bb-a67f-9cdb3f6e94bb","html_url":"https://github.com/browserstack/browserstack-bitrise-xcui-step","commit_stats":null,"previous_names":[],"tags_count":2,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/browserstack%2Fbrowserstack-bitrise-xcui-step","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/browserstack%2Fbrowserstack-bitrise-xcui-step/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/browserstack%2Fbrowserstack-bitrise-xcui-step/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/browserstack%2Fbrowserstack-bitrise-xcui-step/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/browserstack","download_url":"https://codeload.github.com/browserstack/browserstack-bitrise-xcui-step/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":250324688,"owners_count":21411946,"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":"2024-11-29T04:17:12.772Z","updated_at":"2025-04-22T21:06:49.138Z","avatar_url":"https://github.com/browserstack.png","language":"Go","funding_links":[],"categories":[],"sub_categories":[],"readme":"# BrowserStack App Automate - XCUI\n\n## 🧩 Get started\n\nAdd this step directly to your workflow in the [Bitrise Workflow Editor](https://devcenter.bitrise.io/en/steps-and-workflows/introduction-to-workflows.html).\n\n## Run XCUI tests on BrowserStack\n\n\u003cdetails\u003e\n\u003csummary\u003eDescription\u003c/summary\u003e\n\nRun your XCUI tests on BrowserStack App Automate. This step collects the built IPA from `$BITRISE_IPA_PATH` and the output bundle file from `$BITRISE_TEST_BUNDLE_PATH` environment variables.\n\n## Configure the Step\n\nComplete the following steps to configure BrowserStack's XCUI step in Bitrise:\n\n1. Open the Workflow you want to use in the Workflow Editor.\n​\n2. Add the [Xcode Archive \u0026 Export for iOS](https://www.bitrise.io/integrations/steps/xcode-archive) and [Xcode Build for testing for iOS](https://www.bitrise.io/integrations/steps/xcode-build-for-test) steps to your workflow and configure them.\n​\n3. Add the **BrowserStack App Automate - XCUI** step below the **Xcode Archive \u0026 Export for iOS** and **Xcode Build for testing for iOS** steps.\n​\n4. Add your BrowserStack Username and Access Key in the **Authentication** step input.\n​\n5. For the **iOS app under test** input, the **BITRISE_IPA_PATH** output variable from the **Xcode Archive \u0026 Export for iOS** step exports the IPA file. Add `$BITRISE_IPA_PATH` to the **iOS app under test** input.\u003cbr /\u003e\u003cbr /\u003e For the **XCUI test suite** input, the **BITRISE_TEST_BUNDLE_PATH** output variable from the **Xcode Build for testing for iOS step** exports the test suite. Add `$BITRISE_TEST_BUNDLE_PATH` to the **iOS app under test** input.\u003cbr /\u003e\u003cbr /\u003e If you are not using  **Xcode Archive \u0026 Export for iOS** and **Xcode Build for testing for iOS** steps, ensure that the **iOS app under test** input points to the path of your app (`.ipa` file). Also, ensure that the **XCUI test suite** input points to the test suite runner file. In the case of the runner app, it should be in the `\u003cany_path\u003e/Debug-iphoneos` directory if you are providing an absolute path.\u003cbr /\u003e\n​\n6. Add one or more devices in the **Devices** step input.\n​\n7. Configure additional step inputs like **Debug logs** and **Test Configurations** and start your build.\n\n\u003c/details\u003e\n\n## ⚙️ Configuration\n\n\u003cdetails\u003e\n\u003csummary\u003eInputs\u003c/summary\u003e\n\n| Key | Description | Flags | Default |\n| --- | --- | --- | --- |\n| `iOS app` | Set the path of the app (.ipa) file. | Required | N/A |\n| `XCUI test suite` | Set the path of the output bundle file. | Required | N/A |\n| `Devices` | Provide one or more device-OS combination in a new line. For example: \u003cbr /\u003e `iPhone 11-13` \u003cbr /\u003e`iPhone XS-15` | Required | N/A |\n| `Instrumentation logs` | Generate instrumentation logs of the test session  | Optional | `true` |\n| `Network logs` | Generate network logs of your test sessions to capture network traffic, latency, etc. | Optional | `false` |\n| `Device Logs` | Generate device logs | Optional | `false` |\n| `Capture screenshots` | Capture the screenshots of the test execution| Optional | `false` |\n| `Video recording` | Record video of the test execution  | Optional | `true` |\n| `Project name` | Project name of the tests | Optional | N/A |\n| `Notify project status` | A callback URL to enable BrowserStack notify about completion of build under a given project.   | Optional | N/A  |\n| `Local testing` | Enable local testing to retrieve app data hosted on local/private servers  |  Optional | `false` |\n| `Test sharding` | Enable test sharding to split tests cases into different groups instead of running them sequentially. \u003cbr /\u003eAdd the sharding value json here. \u003cbr /\u003eExamples: \u003cbr /\u003e**Input for only-testing strategy**: \u003cbr /\u003e ```{\"numberOfShards\": 2, \"mapping\": [{\"name\": \"Shard 1\", \"strategy\": \"only-testing\", \"values\": [\"SampleXCUITestsClass/testAlert\", \"SampleXCUITestsClass/testText\"]}, {\"name\": \"Shard 2\", \"strategy\": \"only-testing\", \"values\": [\"SampleXCUITestsClass/testLogin\"]}]}``` \u003cbr /\u003e **Input for skip-testing strategy**: ```{\"numberOfShards\": 2, \"mapping\": [{\"name\": \"Shard 1\", \"strategy\": \"skip-testing\", \"values\": [\"SampleXCUITestsClass/testAlert\"]}, {\"name\": \"Shard 2\", \"strategy\": \"skip-testing\", \"values\": [\"SampleXCUITestsClass/testText\"]}]}```|  Optional | N/A |\n| `Filter test cases` | Provide comma-separated list of classes followed by the supported filtering strategy name `only-testing` and `skip-testing`.  \u003cbr /\u003e Examples: \u003cbr /\u003e**For only-testing filtering strategy**: `only-testing SampleXCUITestsClass/testAlert, only-testing SampleXCUITestsClass/testText` \u003cbr /\u003e **For skip-testing filtering strategy**: `skip-testing SampleXCUITestsClass/testAlert, skip-testing SampleXCUITestsClass/testText`  | Optional | N/A |\n| `Run dynamic tests` | Enable to run runtime discoverable tests or dynamic tests  | Optional | `false`  |\n| `Wait for build results` | Let pipeline wait for BrowserStack to complete the execution and get the test results  | Optional | `true` |\n| `Test capabilities` | Enter capabilities in a key-value pair format on a new line. \u003cbr /\u003e\u003cbr /\u003e**For example**: \u003cbr /\u003e`coverage=true` \u003cbr /\u003e`geoLocation=CN\"` | Optional | N/A |\n\n\u003c/details\u003e\n\n\u003cdetails\u003e\n\u003csummary\u003eOutputs\u003c/summary\u003e\n\n| Environment Variable | Description |\n| --- | --- |\n| `$BROWSERSTACK_BUILD_URL` |BrowserStack Dashboard url for the executed build|\n| `$BROWSERSTACK_BUILD_STATUS`| Status of the executed build. Check out the [test results guide](https://www.browserstack.com/docs/app-automate/xcuitest/view-test-results) to learn about available status  |\n\n\u003c/details\u003e\n\n## Troubleshooting\n\nFor internal troubleshooting, we would recommend that you start with the [troubleshooting guide](https://devcenter.bitrise.io/en/builds/build-data-and-troubleshooting.html).\n\nIf you are still unable to figure out the problem, please feel free to create an [issue](https://github.com/browserstack/browserstack-bitrise-xcui-step/issues), we will look into it ASAP.\n\n## Contribution Guidelines\n\n1. Fork this [repository](https://github.com/browserstack/browserstack-bitrise-xcui-step).\n2. Add your changes.\n3. Test your changes.\n4. Raise a PR against this [repository](https://github.com/browserstack/browserstack-bitrise-xcui-step)\n5. Work on comments, if any.\n6. Once approved by our maintainers, we will merge the PR.\n7. We will mention your name when we publish our [release](https://github.com/browserstack/browserstack-bitrise-xcui-step/releases) with your contribution. :slightly_smiling_face:","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbrowserstack%2Fbrowserstack-bitrise-xcui-step","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fbrowserstack%2Fbrowserstack-bitrise-xcui-step","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbrowserstack%2Fbrowserstack-bitrise-xcui-step/lists"}