Upload apps using public URL

In order to test your native and hybrid apps on BrowserStack using Appium, you first need to upload your app to BrowserStack servers. Its easy to upload an Android app (.apk or .aab file) or an iOS app (.ipa file) from a public URL to BrowserStack using the REST API. This approach is useful when the app is hosted on a remote server (e.g. S3 bucket) and its downloadable via a publicly accessible URL.

Here is an example cURL request to upload an Android app using a public URL :

curl -u "YOUR_USERNAME:YOUR_ACCESS_KEY" \
-X POST "https://api-cloud.browserstack.com/app-automate/upload" \
-F "url=https://www.browserstack.com/app-automate/sample-apps/android/WikipediaSample.apk"

A sample response to the above API request is shown below :

{
    "app_url":"bs://f7c874f21852ba57957a3fdc33f47514288c4ba4"
}

Please note the value of app_url in the API response (bs://f7c874f21852.... in the above example). This value will be used later to set the app capability to specify application under test in your Appium test scripts.

Note:
  1. App upload will take a few seconds to about a minute depending on the size of your app. Do not interrupt the cURL command until you get the response back.
  2. We will delete the uploaded app after 30 days from the date of upload.
  3. If you upload an iOS app, we will re-sign the app with our own provisioning profile to be able to install your app on our devices during test execution. However, if your app is signed using the Apple Developer Enterprise Program, you can disable this behavior to test features such as push notifications on BrowserStack devices. To disable re-signing, set the browserstack.resignApp capability to false in your Appium test scripts.