I am working on an iOS app that will be privately distributed to an organization. The organization has a single Organization Identifier we use in App Store connect for submission. However, our company handles two "branches" of the same organization separately, with different contracts, agreements, projects, etc. Our app would need to be tailored to both branches. The core functionality of the app would remain largely the same for both clients; but each would ultimately contain their own unique content.
Sharing code between targets seems like an automatic; however, the situation is interesting because we will likely need to add authentication into our app and thus restrict users to a particular "version" of our app. Moreover, certain users within the organization may be restricted to viewing only content of a single branch while other users might have a need to interact with both branches.
Essentially, we may need two very similar apps to service the organization adequately. But it may be possible to achieve this with only a single app.
How should we go about providing our app to our client?
Should we
-
create a new project, extract as much code as possible into Swift packages/frameworks, and submit each project as a separate app?
-
create multiple targets for each "version" of the app and distribute those apps separately?
-
submit a single app by having our app dynamically change according to the credentials of the user using a single target? For example, if user X can view A and B, the app will function such that A and B are visible?