Xamarin CI with Bitrise Tutorial part 3 - Deploy

There are plenty of ways to deploy your iOS, Android, or Xamarin applications from Bitrise to any service of your wish. Let me show you what your options are today, if you would like to deliver your apps to your favorite testers, dearest customers, or the iTunes Connect/Google Play directly.

There are plenty of ways to deploy your iOS, Android, or Xamarin applications from Bitrise to any service of your wish. Let me show you what your options are today, if you would like to deliver your apps to your favorite testers, dearest customers, or the iTunes Connect/Google Play directly.

Although this article is part of the tutorial series dedicated to the topic of working with Bitrise as CI for Xamarin apps, deployment is 99% the same as in case of native apps, so you can read on with confidence either way.

If you are just about moving to Bitrise with your Xamarin apps, check out the first part of this tutorial about how to get started, or go for the second part for testing essentials.

Archive that app! 📦

The first step of deployment to build something to be deployed. You can create archives for your apps with adding the proper steps to your workflow. It's Xcode Archive for iOS, and a simple Gradle runner for Android.

Xamarin apps

When you're building a Xamarin app on Bitrise, you'll definitely have a Xamarin builder step in your workflow, it's part of the generated one by default. Bitrise detects and parses your configuration file, so it'll set handy environment variables based on it.

If your configuration has a real device as platform set, the step will archive your apps after building them automatically. There is no need to add an extra Xcode archive, or Gradle step.

You are able to add any kind of step after the Xamarin builder as you would after an Xcode archive, or Gradle runner in case of native iOS/Android apps. It's possible because Bitrise generates the same output from the Xamarin builder step as it does from the native archivers. This way your workflow becomes compatible with all Bitrise integrations for iOS and Android after building your app.

General artifact deployment 🚀

There are a lot of cases when you don't need any extra service in your flow, or your apps don't have tools like crash reporting integrated yet, or you're just not in the phase of submitting to a production yet.

There are some general options available on Bitrise for you then, like our very own deployment service.

Bitrise

I'm pretty sure the Deploy to bitrise.io step looks familiar, since everyone has it in their workflows by default, when adding a new app. It uploads the file, or directory found at $BITRISE_DEPLOY_DIR and sends an email to the specified group (everyone on the team by default). Read more about the available environment variables on our dev center.

The $BITRISE_DEPLOY_DIR environment variable is the one every step that produces an archived app has as output. You are able to just drop the steps in and wait for the results without any additional configuration.

Amazon S3

If you'd like to upload your build artifacts to Amazon S3, you need to add the Deploy to Amazon S3 step to your workflow. After passing your access keys and bucket name to the step, you can specify a bunch of things, like the access level of the file to upload, its path in your bucket, etc.

Integrated third-party services

Most of these third-parties has a dedicated iOS, and an Android step on Bitrise. You can use them by simply adding them to your workflow. Check out all the services you can add this easy at our integrations page.

Don't forget: you can always add a Script step and install, or run anything you want, but there's no step for it yet. If you feel like contributing, turn your script into a Bitrise build step and earn a 50% discount from our pro plan with 1 concurrency.

iTunes Connect

You can send your iOS apps to iTunes Connect via Bitrise with deliver, or Shenzen.

deliver 🚚

This gem is part of the fastlane family. You can upload hundreds of localized screenshots, and your app to iTunes Connect from Bitrise, with deliver, using the Deploy to iTunes Connect (with deliver) step.

You'll have to set your Apple ID email address, your iTunes Connect credentials, and the app's ID to get started. You can specify whether to submit for TestFlight testing, skip screenshots, or metadata optionally.

Shenzen

Type in your Apple ID address and your iTunes Connect credentials into the Deploy to iTunes Connect (with Shenzen) step in the workflow editor and just press build to upload your app.

Please note, that you are able to create separate workflows for the same app and specify trigger maps to manage different scenarios when building app for development, staging, or production.

Google Play

Upload your Android apps to Google Play with the Google Play deploy step.

Add your first apk to the Google Play manually, link your developer console to an API project. Set up API access clients, with a service account of a key type p12. Grant the necessary access to the service account.

Specify the service account email address at the Bitrise Google Play deploy step, your app's package name, the path of your service account's .p12 key and a track, alpha, beta, production, or rollout.

Fabric

You are able to use Fabric's distribution services for iOS with the Fabric/Crashlytics deployer step. After you've specified your API key and build secret, you are ready to roll. You can specify release notes, email addresses, or groups to send the notifications about new builds to.

HockeyApp 🏒

You can add HockeyApp for iOS, or Android to your workflow with the HockeyApp iOS, or HockeyApp Android Deploy steps. The only required field is your API token, and you can specify a Hockey app ID instead of a bundle ID to identify apps. This way you can make sure not to generate a new app on Hockey if you already have one for the given project. It's possible to add release notes, manage notification settings, add tags, specify git commit hash, etc.

Appaloosa

Distribute your apps with Appaloosa by sending your archived apps with Bitrise to the Appaloosa Store. Fear not, if you don't have an Appaloosa account yet, you can add an email address in the Publish to Appaloosa Store step to receive an email with the link to access your private store.

If you already registered, specify an API key, a store ID to upload your app to. Add screenshots, and a description about your new version optionally. You can also specify groups to send your app to.

TestFairy ✨

Record your videos and deliver your apps to your testers with TestFairy from Bitrise, using the TestFairy Deploy step for iOS, or Android. Add your API key, and configure your step with tester groups, notifications, or video recording amongst others.

Applivery

Distribute your apps through Applivery right away from your CI workflow with the Applivery.com iOS & Android Deploy steps. Set your Applivery account API Key and app ID in the workflow editor to get started. Attach notes, add tags, or modify notification settings any time.

Anything else?

You can always share your questions, issues, compliments, or virtual hugs with us on Twitter, by email, or on our public Slack.

If you are attending the Xamarin EVOLVE conference in April, make sure to come by to our booth for a chat! 👋

No items found.
The Mobile DevOps Newsletter

Explore more topics

App development

Best practices from engineers on how to use Bitrise to build better apps, faster.

Community

Meet other Bitrise engineers, technology experts, power users, partners and join our BUGs.

Company

All the updates about Bitrise events, sponsorships, employees, and more.

Insights

Mobile development, latest tech, industry insights, and interviews with experts.

Mobile DevOps

Learn why mobile development is unique and requires a set of unique practices.

Releases

Stay tuned for the last updates, new features, and product improvements.

The Mobile DevOps Newsletter

Join 1000s of your peers. Sign up to receive Mobile DevOps tips, news, and best practice guides once every two weeks.