We have an iOS project with multiple targets that use Git as source control. Some features belong to a specific target and the other features are common in all targets. We have to consider and manage this issue. As far as I know, with considering git-flow we have two options to manage our project.
The first option is: we divide each target to separated branches and each branch has two branches (Master and Develop) so we can use cherry-pick to move our commits from one branch to another one.
The second option is: we just use one branch with multiple targets as a Master branch. So we should create a config file to specify which feature belongs to which target. The main question is which one is the best way for our problem?
Thanks in advance for sharing your experience.
PS:
1) Two developers are working on this project.
2) Considering CI/CD tools such as Jenkins for building and releasing our apps.
3) We never use the Storyboard on this project at all.
If I understood your question correctly I think you’d like to hide some features behind the beta/develop flag, rather than the release flag. One way which I personally use is having a Feature class for all of the targets and whenever a feature is still on develop it would be hidden behind a beta flag.
I hope this article by John Sundell about feature flag helps https://www.swiftbysundell.com/articles/feature-flags-in-swift/
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With