Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Which one is the best way to manage an iOS project with multiple target?

Tags:

git

ios

git-flow

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.

like image 778
Reza Dehnavi Avatar asked Jan 21 '26 09:01

Reza Dehnavi


1 Answers

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/

like image 60
mori_ahk Avatar answered Jan 23 '26 05:01

mori_ahk