Base on this question
Why don't iOS framework dependencies need to be explicitly linked to a static library
I read the selected answer and still don't understand so I made an example project
In the test project, I remove all framework from Link Binary With Libraries and File navigation for both main project and the static library (including Foundation.framework and UIKit.framework too), basically, both project link to 0 frameworks.
Questions are
- In static library, it's including MapKit/MapKit.h without referencing the Mapkit.framework to the project, why is its still working?
- In main project, I remove UIKit.framework and Foundation.framework from the project, why is it still working?
- Since it's working for now, will there be any issue later?
Thank you for your comment.
P.S. By working, I mean I can run on the simulator and I can archive the main project without any error.
Edit 25/07/2014
I tried with the real app that I'm working on, it's the same.
- I highlight Foundation, UIKit, CoreData and 10 another frameworks in File Navigation, well, all of them.
- Uncheck the target in Utilities Panel --> Target Membership
- Build : Pass, Run : Pass
Every functionality of my app is still working as expected. I don't get this.