I am developing an iPhone app using Xcode 5 and CocoaPods. I have a scheme and target called Oahu
that I run my tests against. Accordingly, I am not surprised to see my two test targets present to be built in the scheme's build phase. However, there is a fourth build target that cannot be removed:
When I run tests, all four targets are built, and the test targets are run against the last, incorrect one, Ku
.
And after closing Xcode, deleting the contents of the DerivedData
directory, and deleting all the *userdata
files in my project directory (find ./ | grep userdata | xargs rm -rf
), I still have an extraneous build target:
Notice that it now included my Production
target and I also had unchecked Find Implicit Dependencies
.
I've looked through all my build settings, Oahu.xcscheme
, and project.pbxproj
, but I can't find anything that would leave to this behavior. Unchecking the scheme's Build Option Find Implicit Dependencies
has no effect.
This Oahu
scheme is the only one that has this problem – the Ku
and Production
schemes only have their corresponding targets – though if I duplicate the Oahu
scheme, it also has this problem.
Can this be fixed?
A Target specifies a product to build and contains the instructions for building the product from a set of files in a project or workspace. An Xcode scheme defines a collection of targets to build, a configuration to use when building, and a collection of tests to execute.
When you embed a new target inside an app, Xcode creates a dependency between the app and target if the scheme's Find Implicit Dependencies option is enabled. If that option is disabled, you must configure the dependency yourself. To view and add dependencies, select a target and open its build phase settings.
Go to project's settings in the Project Navigator panel. Under the Targets sections, right click the existing target and select Duplicate to copy your existing target. 2. Xcode will ask you if your new target is for iPad development.
I found all my build and test problems were related to having the same binary name. Renaming the binaries produced by each target to be unique fixed the problem.
I just had the same issue. In my case the additional target appeared in the build settings of the scheme's target. You can search for the undesired target name there, I found mine under BUNLDE_LOADER and TEST_HOST. It got fixed after I deleted the settings.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With