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:
- 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:
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:
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.
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! 🚀