![]() Each of these will need to be associated to an app bundle ID created in the Developer Portal, and listed in the AppStore Connect site. Within our Xcode project, we would define multiple iOS build targets with build settings corresponding to each target environment. Cheap -considering it is free for Open Source projects and when using self-hosted runners (this is where our spare Mac Minis become valuable).Flexible, offering hosted runners in every major OS and integrations with pretty much every major tech stack and hosting platform.Easy to write and read, with a straightforward YAML syntax.GitHub offers Actions as a complete CI/CD system that seamlessly integrates with repositories hosted there. Easy to integrate with CI systems (though 2FA presents challenges, as we’ll see).Widely adopted and well maintained (acquired by Google in 2017).Flexible, with an easy to read syntax (most commands have self-descriptive aliases).Easy to set up (just install a Ruby gem).It offers integrations with other CLI tools and APIs including Xcode, Android SDK, Gradle, iTunes App Store, Google Play Store, Git, AWS S3, etc. Why Fastlaneįastlane touts itself as the easiest way to automate deployments for mobile apps. We’ll use AWS S3 to store signing artifacts, but any system where we could safely store encrypted files could serve.įor the first example, we will use an iOS app developed with React Native, but the same approach works iOS native apps. In this post I am going to describe the approach we implemented for iOS and Android CI/CD making use of Fastlane, a CI system (GitHub Actions), and some spare Mac Minis which were sitting idle at the office and got turned into build servers. Mobile app development is one of our core competencies here at Rootstrap, and we embrace best practices for development and delivery just as much as we do for backend and web applications.Īs Continuous Integration/Continuous Delivery requires maintaining multiple backend environments (Development, QA, Staging, Production), with fully automated deployments to each, it also requires maintaining multiple versions of our mobile apps to match each environment.īuilding and releasing all these versions is a time-consuming and error-prone process, which can -and should- be automated, though it presents a particular set of challenges.
0 Comments
Leave a Reply. |
AuthorWrite something about yourself. No need to be fancy, just an overview. ArchivesCategories |