Skip to main content
Transform your testing process with: Real Device Features, Company-wide Licences, & App Percy

Upload apps from filesystem

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 your local filesystem or CI/CD server to BrowserStack using the REST API.

Here is an example cURL request to upload an Android app :

curl -u "YOUR_USERNAME:YOUR_ACCESS_KEY" \
-X POST "https://api-cloud.browserstack.com/app-automate/upload" \
-F "file=@/path/to/app/file/application-debug.apk"

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

{
    "app_url":"bs://f7c874f21852ba57957a3fdc33f47514288c4ba4"
}
Note: 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.

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.

You can manage your uploaded apps by using our REST API. Use the recent apps API endpoint to list your recently uploaded apps. You can delete your uploaded apps by using the delete app API endpoint. By default, we will delete the uploaded app after 30 days from the date of upload.

Note:
  1. If you upload an unsigned version of the Android app, we sign them with our certificates before installing them to our devices. Similarly, whenever .aab files are uploaded, we convert them to a universal APK and sign them with our certificates. When BrowserStack resigns the apps, your app’s integration with third-party libraries such as Google Firebase services, Google Maps SDK, Facebook SDK, etc may not work if you have restricted the use of API keys based on the SHA-1 certificate fingerprint of the app’s signing key. To avoid this issue, you can sign the APK with your own certificates before uploading the app to BrowserStack.
  2. 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.
  3. Please make sure the iOS app has isInspectable enabled for WkWebView or JSContext components if it is built with the iOS/iPadOS 16.4+ SDK. This is now required by Apple to make WebView contexts available in appium and the value by default is No/false. Please read Enabling the Inspection of Web Content in Apps for more details.

We're sorry to hear that. Please share your feedback so we can do better

Contact our Support team for immediate help while we work on improving our docs.

We're continuously improving our docs. We'd love to know what you liked






Thank you for your valuable feedback

Is this page helping you?

Yes
No

We're sorry to hear that. Please share your feedback so we can do better

Contact our Support team for immediate help while we work on improving our docs.

We're continuously improving our docs. We'd love to know what you liked






Thank you for your valuable feedback!

Talk to an Expert
Download Copy