Xcode 6 error: "Embedded binary's bundle identifier is not prefixed with the parent app's bundle identifier."

I'm trying to build an extension project and Xcode keeps throwing the error in subject.

Xcode log error

Needless to day, the extension's bundle id is prefixed with app's bundle id.

Product Name: ro.chitza.TodayPics.$(TARGET_NAME:rfc1034identifier

Extension bundle id

I've tried cleaning the build folder and rebuilding, no luck. The funny thing is the entire project got built for a few times, but after some code and UI changes it started failing. Even if I create new projects, the same thing happens after about 5-6 builds.

Did anyone else encounter this error? Any hints for a solution or workaround?


Solution 1:

It looks like the bundle ID behavior changed when WatchOS 2 arrived.

Previously I had an extension bundle identifier like this:

com.mycompany.myappname.watchkitextension

Somewhere else on Stackoverflow it was mentioned that the extension bundle identifier should be in this format, but no matter what I tried Xcode kept throwing errors at me.

The only possible solution is changing the extension bundle identifier to:

com.mycompany.myappname.watchkitapp.watchkitextension

I am pretty sure this wasn't the case with an WatchOS 1 app. A problem because of this change is that you can't actually generate an app id for the bundle identifier com.mycompany.myappname.watchkitextension. This isn't necessary, just set all provisioning profiles in the build settings to automatic and don't forget to use the right code signing certificate for you release/ad-hoc/debug schemes.

I actually found out that this approach works because Xcode suggested fixing the problem and this is what it did.

Solution 2:

Try a Clean before the Build. This fixed the problem for me (Xcode 6b2).