Sharing code that includes Storyboards & assets

Bear with me, this sounds like an FAQ but my specific situation is a little less frequent.


I am working on an architecture in which I have the same "front-end" (entrypoint Storyboard, `AppDelegate`, top-level `ViewController`, Launch Storyboard, Info.plist, sound & image resources) for multiple apps. That is, I "append" the app-specific code to the common front-end.


So the question is: how best to manage independent development of the front-end and the multiple back-ends. Including SCM. Some ideas:


  • Libraries, static or dynamic - a non-starter because the common code-base includes Storyboards and assets.
  • Completely separate projects, with the individualized apps including (by reference) the common code.
  • Single project, separate targets.
  • Separate sub-projects in a single Xcode Project.
  • Separate projects inside a single Xcode Workspace.


One criterion would be how well Xcode and Git[Hub] deal with the separation of code bases. I have had mixed results with Xcode getting out of sync with git. Advice welcome. I've been cut&pasting the common code into separate projects, but you can easily see how this is not sustainable.


Addendum: I have read the ongoing discussion about Apple Guideline 4.3 (https://forums.developer.apple.com/thread/85411); it does have some relevance.

Sharing code that includes Storyboards & assets
 
 
Q