For option 2...
...you could consider using Swift Package Manager, to make a number of separate self-contained modules.
Each App would be it's own Xcode project, and could include whichever Swift Packages it requires.
Of course, you could use a single Swift Package, for all the shared code.
But I would lean towards using a number of packages, each with a clearly-defined purpose.
I find the modular approach cleaner, and easier to maintain.
Topic:
Developer Tools & Services
SubTopic:
Xcode
Tags: