"This app contains an app extension with an illegal bundle identifier" 问题

"This app contains an app extension with an illegal bundle identifier" issue

我有点困惑,因为我更改了应用程序名称、Bundle 显示名称和 Bundle 标识符名称...现在我的应用程序可以正常工作,但我的今天小部件不会。

每当我尝试 运行 今天小部件时,它都会成功构建,但没有启动,而是显示

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 '.'.

但是,我检查了 Info.plist,我的包标识符是

com.myname.myappname

我今天小部件的包标识符是

com.myname.myappname.mywidget

这不是刚刚好吗??我一次又一次地清理和建造..但它就是行不通。

没有 GOOGLE 结果!只有我一个人有这个问题吗??

我的包名称不是 'myappname',如果是问题的话。

感谢任何帮助。

有些东西坏了,我不知道去哪里找!

我运行在共享扩展

中遇到了与Bundle identifier类似的问题

错误

app Info.plist: com.company.product.$(PRODUCT_NAME:rfc1034identifier)
ext Info.plist: com.company.product.$(PRODUCT_NAME:rfc1034identifier)

所以我得到了

app Info.plist: com.company.product.product
ext Info.plist: com.company.product.product_ext

它通过了构建检查但拒绝 运行 在设备上出现错误:

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 '.'.

删除多余的 product 后,设备上的构建 运行。

正确

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

当我不小心更改了应用程序 Info.plist 而不是扩展名 Info.plist 时,我发现了我的错误。为了帮助调试问题,在应用程序 Info.plist 中引入一个错误,您应该会在应用程序和扩展的 Bundle identifier 中遇到构建错误:

 ERROR.com.myname.myappname

如果选择的答案不起作用,我发现 xcode 在一些目标模式之间切换似乎是一个问题,导致了这个问题。

在这种情况下,请尝试彻底清理以及清理构建文件夹(选择 product/clean 时按住 ALT)。

附录: 由于这种情况现在对我来说经常发生,所以更快的解决方法是同时删除所有 .appex 文件。例如:

cd ~/Library/Developer/Xcode/DerivedData
find . -name "*.appex" -exec rm -fr {} \;

对我来说,这是因为我的应用程序扩展包标识符命名错误。类似于@dougbeal 的回答,但对我有用的格式略有不同:

com.company.AppName
com.company.AppName.Extension

我在 Extension

之前错过了 "."

这也解决了与 issue

相关的问题