A good example of this would be how I wasted multiple days figuring out if the Fastlane match support enterprise app could build a distribution with Xcode 9. There are multiple issues open on GitHub and some of them are closed by automated bots without providing the correct solution to users. You can read more about the Fastlane contributing guide here. It starts with creating a GitHub issue as a proposal, leading to endless discussions. On top of this, the process of contributing to Fastlane is time-consuming and full of automated bots. It's unfortunate that iOS developers can't contribute to the tool they are currently using in the toolbox. Again, it requires a deep understanding of the Ruby ecosystem that iOS developers normally don't have. Currently, the only way to write a plugin is to write a Rubygem which can be installed as a Fastlane plugin. The only option to do this is writing plugins for Fastlane. ![]() You might need to configure iOS release pipelines as per company-specific rules or require Fastlane to do something customized. The job isn't done when you setup everything needed, it requires constant ongoing maintenance per Fastlane update as mentioned above. It requires a lot of time to learn about Fastlane and Ruby toolbox to get everything set up. We can then use different lanes to script our pipeline. We probably need to customize the options as per our need, which requires how those options are coded in Fastlane. Time-Consuming Setup and MaintenanceĪlthough Fastlane provides a great getting started guide with the template code, it's not straightforward to script all the things that we need to automate iOS release pipelines. One of the pain points of using Fastlane is that the options configured in the previous versions of Fastlane don't always work with the newer version, and if you search for a solution, you end up having multiple solutions for the same problems for different versions of Fastlane. These breaking updates disturb the main development flow of iOS developers and it ends up wasting hours to fix the build. There might be frequent build breakage due to updates and iOS developers need to spend the time to analyze what has been changed in Fastlane and fix the builds accordingly. Most of the time, updating the Fastlane version requires updating the existing Fastlane scripts, if Fastlane versions aren't managed by Bundler. This requires Fastlane developers to implement these features and release the new version of Fastlane. They need to always chase Apple and Google (in the case of Android) to accommodate those changes in Fastlane. ![]() Frequent Breaking UpdatesĪpple keeps changing the native tools, which in turns constantly breaks the Fastlane tools. Fastlane has good documentation, but iOS developers still have to use Ruby to script all the infrastructure for automating iOS release pipelines. I have written my initial impressions in this post. I doubt the usability of the Swift version of Fastlane. A Swift version of Fastlane was recently announced to get rid of Ruby, but it's just Swift executing Ruby commands under the hood. Setting up Fastlane tools requires a good understanding of how Ruby, RubyGems, and Bundler work. Generally, iOS developers aren't that skilled in Ruby, but in order to use tools like Fastlane or CocoaPods, they have to learn Ruby, which has nothing to do with actual iOS development. The first and major issues with using Fastlane in an iOS project is Ruby. In this section, we will see the common issues that iOS developers are facing using Fastlane. It might be true in situations where Fastlane is working as expected, but it's also important to consider how many developer hours are wasted by Fastlane in terms of setup, debugging, and managing. In this post, we will cover the problems that iOS developers are facing using Fastlane and the current alternatives to Fastlane.įastlane claims that it saves developers hours by automating common tasks. ![]() It's not that difficult to learn some native Apple developer tools and remove Ruby and other third-party tools like Fastlane completely from your iOS development toolbox. Like CocoaPods, Fastlane might be another elephant in your iOS project that uses Ruby, which is nothing to do with iOS development. ![]() There are many developers hour wasted on constant learning of Ruby and Fastlane's way of automating things. Fastlane might have saved some time in some cases, but it's worth considering how many developer hours have been wasted by Fastlane's by frequent breaking changes. However, if you look inside, it's nothing but a Ruby layer on top of native Apple developer tools. Fastlane is a set of tools to automate almost everything, including analyzing, building, testing, code signing, and archiving iOS apps. Fastlane tools automate entire iOS CI/CD pipelines and allow us to keep an iOS infrastructure as code.
0 Comments
Leave a Reply. |
AuthorWrite something about yourself. No need to be fancy, just an overview. ArchivesCategories |