1

I have a project, that is divided into few targets (Cocoa Touch Frameworks). Some of these targets depends on others. I would like to create a single framework from this, that will contain all the targets, so that I can just import this framework into new application, and use all the code inside all of my targets. How can this be achieved? I have read something about Umbrella frameworks, but I couldn't make it work.

This is how the project is divided into targets:

 - Observation
 - BackgroundTask
 - Placement
 - ZIPFoundation
 - NetworkOperation   Dependencies - Observation
 - LocationService    Dependencies - Observation, BackgroundTask, Placement
 - World              Dependencies - Observation, LocationService
 - AugmentedReality   Dependencies - Observation, LocationService
 - FindloAR           Dependencies - AugmentedReality, NetworkOperation, World, Placement, Observation, ZIPFoundation

And from all this I would like to create a single universal framework, named: FindloFramework for iOS

Could someone guide me on how to do this?

2
  • Create a new target that has all the others as dependencies? Commented Jul 24, 2019 at 9:54
  • OK, that is a start, but how do I compile this so that it will be just single .framework file to import? With just this target, I still need to import other dependencies to the new project, as these are not yet included in FindloFramework.framework Commented Jul 24, 2019 at 10:04

1 Answer 1

1

This is not currently possible on iOS. Umbrella frameworks are Mac only.

I've had conversations with Apple engineers at WWDC about this, and have submitted a bug. My guess is they're trying to minimize the amount of dynamic linking occurring at runtime.

You need to take all your code and put it into a single framework target.

Sign up to request clarification or add additional context in comments.

1 Comment

Thanks for sharing this. I was sure that I just did something wrong. If this it the case I will probably just release this as a collection of few small frameworks.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.