Introducing full cross-platform support

Hoooorray! Now we support all major cross-platform and hybrid frameworks! Cordova, Ionic & React Native: welcome to Bitrise!

Hoooorray! Now we support all major cross-platform and hybrid frameworks! These frameworks became more and more popular as in some cases it is much easier to develop and maintain 1 code base for all the supported platforms than 1 code base per platform.

In addition to iOS, Android, Xamarin, fastlane and macOS, you can choose the following project types for your app on Bitrise:

  • Cordova
  • Ionic
  • React Native

How does it look?

For these project types

  • we developed a list of the most common steps for testing and building your project
  • the new project-types will be detected when you add a new app
  • our scanner will generate an initial bitrise configuration (bitrise.yml) for your app

The scanner tries to generate two workflows for you: one for testing (primary) and another workflow for releasing your app (deploy). (If the scanner does not detect any known testing framework in your repository, you will get only one workflow (primary), which builds your app.)

Ionic and Cordova

In case of Ionic and Cordova, the scanner can detect jasmine and karma-jasmine tests. Using these testing frameworks your workflows will look like this:


primary:
    steps:
    - activate-ssh-key:
        run_if: '{{getenv "SSH_RSA_PRIVATE_KEY" | ne ""}}'
    - git-clone:
    - script:
        title: Do anything with Script step
    - npm:
        inputs:
        - command: install
    - karma-jasmine-runner: # or jasmine-runner
    - deploy-to-bitrise-io:

  deploy:
    steps:
    - activate-ssh-key:
        run_if: '{{getenv "SSH_RSA_PRIVATE_KEY" | ne ""}}'
    - git-clone:
    - script:
        title: Do anything with Script step
    - npm:
        inputs:
        - command: install
    - karma-jasmine-runner: # or jasmine-runner
    - generate-cordova-build-configuration:
    - cordova-archive: # or ionic-archive
        inputs:
        - platform: "$CORDOVA_PLATFORM"
        - target: emulator
    - deploy-to-bitrise-io:
Copy code

 

React Native

In case of the React Native project type, the scanner searches for a test script in your package.json file. This is what your workflows will look like:


primary:
    steps:
    - activate-ssh-key:
        run_if: '{{getenv "SSH_RSA_PRIVATE_KEY" | ne ""}}'
    - git-clone: {}
    - script:
        title: Do anything with Script step
    - install-react-native: {}
    - npm:
        inputs:
        - workdir: project
        - command: install
    - npm:
        inputs:
        - workdir: project
        - command: test
    - deploy-to-bitrise-io: {}

  deploy:
    steps:
    - activate-ssh-key:
        run_if: '{{getenv "SSH_RSA_PRIVATE_KEY" | ne ""}}'
    - git-clone: {}
    - script:
        title: Do anything with Script step
    - install-react-native: {}
    - npm:
        inputs:
        - workdir: project
        - command: install
    - install-missing-android-tools: {}
    - gradle-runner:
        inputs:
        - gradle_file: $GRADLE_BUILD_FILE_PATH
        - gradle_task: assembleRelease
        - gradlew_path: $GRADLEW_PATH
    - certificate-and-profile-installer: {}
    - xcode-archive:
        inputs:
        - project_path: $BITRISE_PROJECT_PATH
        - scheme: $BITRISE_SCHEME
        - configuration: Release
    - deploy-to-bitrise-io: {}
Copy code


Generating release outputs

For Ionic and Cordova projects we created specific build steps (namely cordova-archive and ionic-archive) which use the framework's command line tools (Ionic and Cordova CLI) to build your project. Both Ionic and Cordova use the Cordova CLI tool to build the project, so you can control the release type with the Cordova build configuration file (build.json), which contains code signing settings for both iOS and Android projects. (Read more on our Discuss pages for Cordova and Ionic release builds.)

For React Native we use our native iOS and Android build steps (xcode-archive and gradle-runner). Read more on our DevCenter for iOS and Android code signing.

Jump in!

The scanner and the steps are open source, so you can always jump in and see how we did it. If you find any issues let us know or even better, send us a pull request! :)

Happy coding! 🚀

No items found.
The Mobile DevOps Newsletter

Explore more topics

App Development

Learn how to optimize your mobile app deployment processes for iOS, Android, Flutter, ReactNative, and more

Bitrise & Community

Check out the latest from Bitrise and the community. Learn about the upcoming mobile events, employee spotlights, women in tech, and more

Mobile App Releases

Learn how to release faster, better apps on the App Store, Google Play Store, Huawei AppGallery, and other app stores

Mobile DevOps

Learn Mobile DevOps best practices such as DevOps for iOS, Android, and industry-specific DevOps tips for mobile engineers

Mobile Testing & Security

Learn how to optimize mobile testing and security — from automated security checks to robust mobile testing and more.

Product Updates

Check out the latest product updates from Bitrise — Build Insights updates, product news, and more.

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.