On Mar 19, 2008, at 4:24 PM, Jerry Krinock wrote: In trying to understand a problems (see yesterday's thread), I noticed that in some of my projects, in Groups & Files, if I expand my Target, I see:
MyTarget SomeFramework (from SomeFramework.xcodeproj) ... Copy Frameworks SomeFramework.framework ... Link Binary With Libraries SomeFramework.framework
Now, I know what "Link Binary with Libraries" does, and "Copy Frameworks" is a Copy Files Build Phase which I made in order to copy the necessary frameworks to Contents/Frameworks.
But what about the second line, where SomeFramework (from SomeFramework.xcodeproj) is "loose" in the Target? I don't know if I put it there or if Xcode did. What is the effect of having a framework (or bundle, or library, or executable tool, I've got them too) listed "loose" in a target? It's copied and it's linked by the Build Phases below. Is that enough? Does it need this extra entry?
The first entry is the SomeFramework target in a cross-referenced project. Its presence in the target means that the MyTarget target has a dependency on the SomeFramework target of the SomeFramework project, so that that it will be built first if it's not up to date when you build MyTarget.
The third entry links MyTarget's build product with SomeFramework.framework, which is the build product of the SomeFramework target.
The second entry copies SomeFramework.framework into the bundle wrapper of MyTarget's build product, so they form a self-contained whole.
Two different things (the target and the build product it produces), three steps (dependency, linking, embedding).
Chris |