"This app contains an app extension with an illegal bundle identifier" issue
I ran into a similar problem with the Bundle identifier
in a share extension
error
app Info.plist: com.company.product.$(PRODUCT_NAME:rfc1034identifier)
ext Info.plist: com.company.product.$(PRODUCT_NAME:rfc1034identifier)
So I ended up with
app Info.plist: com.company.product.product
ext Info.plist: com.company.product.product_ext
which passed the build checks but refused to run on a device with error:
This app contains an app extension with an illegal bundle identifier. App extension bundle identifiers must have a prefix consisting of their containing application's bundle identifier followed by a '.'.
Once I removed the extra product
, the build ran on a device.
correct
app Info.plist: com.company.$(PRODUCT_NAME:rfc1034identifier)
ext Info.plist: com.company.product.$(PRODUCT_NAME:rfc1034identifier)
app Info.plist: com.company.product
ext Info.plist: com.company.product.product_ext
I discovered my error when I accidentally changed the application Info.plist
instead of the extension Info.plist
. To aid in debugging the problem, introduce an error into the application Info.plist
, and you should get a build error with the Bundle identifier
of the app and extension:
ERROR.com.myname.myappname
If the selected answer doesn't work, I found what appears to be an issue in xcode switching between some target schemas which caused this.
In this case, try doing a complete clean, as well as a clean of the build folder (hold down ALT when selecting product/clean).
Addendum: As this happens fairly often for me now, a quicker fix is to also remove all .appex files. Eg:
cd ~/Library/Developer/Xcode/DerivedData
find . -name "*.appex" -exec rm -fr {} \;
For me this due to the misnamed bundle identifier for my app extension. Similar to @dougbeal's answer, but slightly different formatting that worked for me:
com.company.AppName
com.company.AppName.Extension
I was missing the "."
before Extension
This also addressed a related to issue