Scenario:
I have TargetA, which is an iOS application. This app uses a static library, compiled by TargetB.
Obviously, TargetB is a dependency of TargetA, and TargetB is always built before TargetA. So far so good.
Now, I want a script to run TargetA is built, but even before TargetB.
What I tried:
- Adding a "setup" aggregate/external-build target, and making it a dependency of
TargetA. It half works: Xcode runssetupandTargetBat the same time, soTargetBmay get built too soon. Not good enough. - The same, but specifying in the scheme not to build in parallel. This works, but is a waste, since there are other targets that can be built in parallel.
- Run the script in a
pre-actionbuild step inside the scheme. This works, but seems wrong (why? output from that step doesn't go into the build log; so perhaps I'm not meant to use it this way?).
What I don't want to do:
Add the script as a dependency of TargetB. This would work; however, TargetB actually comes from another sub-project, and in the context of building it, parameters to the script are not yet known (mainly the root directory of TargetA's project).
Am I missing anything, or do I have to settle for #2 or #3 above?
EDIT: in option #2 above, changing the order of dependencies (in my case, between Setup and TargetB does not help -- Xcode still selects the order arbitrarily.