On 17.06.2012, at 13:40, Bill Cheeseman wrote: On Jun 15, 2012, at 9:10 AM, Joar Wingfors wrote: I've heard about this issue from a couple of users of Xcode 4.3.3. Please file a bug report, the change in behavior is not expected. At least not by me.
Joar
On 15 jun 2012, at 05:45, Bill Cheeseman wrote:
Does nobody have an answer?
On Jun 13, 2012, at 8:50 AM, Bill Cheeseman wrote:
My projects stopped building when I upgraded to Xcode 4.3.3. The reported error was that Xcode could not find my #imported <framework/framework.h>, even though Xcode 4.3.2 had no difficulty in this regard.
After fooling around a while, I discovered that I could make it start building again if I added an explicit "/Library/Frameworks" to the Framework Search Paths build setting.
It turns out that this is expected behavior, but adding the shared framework to the Framework Search Paths build setting is not the recommended solution. The Xcode 4 User Guide instructs us to explicitly add a framework dependency to the dependent application's Target Dependencies build phase in order to ensure that the framework gets built before the dependent application. See the "Control the Order in Which Xcode Builds Your Products" subsection of the "Fine Tune Your Builds" subsection of the "Build and Run Your App" section.
I don't think this is what Xcode expects you to do. In fact, the documentation you refer to states the opposite:
"Xcode detects when one of your products is dependent on another and automatically builds them in the correct order."
And further in the docs, and slightly contrary to what has been stated in the previous sentence:
"However, in the unusual event that you need to control the order in which Xcode builds your products, you can create explicit target dependencies by using the Build Phases pane of the project editor."
Apparently, what you can control with the "Target Dependencies" is the *order* in which the dependencies will be build.
Note: I think, the first statement is true only if you add a framework or library with the "Link Binary With Libraries" pane in the target editor and maybe only if the corresponding Build Scheme's option "Find Implicit Dependencies" is enabled. If you add a library through appending an option in "Other Linker Flags", this may not work, and instead only build settings will be used to locate the binary of the library.
But setting a library or framework with the "Link Binary With Libraries" pane has its own issues. Depending on the Configuration and depending whether the binaries of the libraries or frameworks did exist when you added them via the pane, this may break the dependency check. As a result, this may cause the main product not be linked when only the dependencies have been touched.
So, I rather suspect what you are experiencing is just another bug in Xcode ;)
I recommend the following: always check the transcript to verify that Xcode will do what you expect.
Andreas
|