"此应用包含带有非法捆绑标识符的应用扩展程序"问题

kwm*_*eng 12 xcode bundle-identifier ios8-today-widget

我有点混淆,因为我更改了应用程序名称,Bundle Display名称和Bundle标识符名称...现在我的应用程序正常工作,但我今天的小部件不会.

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

此应用包含带有非法捆绑标识符的应用扩展程序.应用扩展程序包标识符必须具有前缀,其前缀包含应用程序的包标识符,后跟".".

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

com.myname.myappname

我的今天小部件的捆绑标识符是

com.myname.myappname.mywidget

这不对吗?我一次又一次地清理和建造......但它不会起作用.

并且没有GOOGLE结果!我是这个问题的唯一人吗?

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

任何帮助表示赞赏.

有些东西变坏了,我不知道在哪里看!

Jam*_*ill 24

如果所选答案不起作用,我发现在导致此问题的某些目标模式之间的xcode切换中似乎存在问题.

在这种情况下,尝试完全清理,以及清理构建文件夹(在选择产品/清洁时按住ALT).

附录: 因为现在这种情况经常发生在我身上,更快的解决方法是删除所有.appex文件.例如:

cd ~/Library/Developer/Xcode/DerivedData
find . -name "*.appex" -exec rm -fr {} \;
Run Code Online (Sandbox Code Playgroud)

  • 清理build文件夹为我修复了这个!我相信这应该是公认的答案. (3认同)

小智 6

Bundle identifier在共享扩展中遇到了类似的问题

错误

app Info.plist: com.company.product.$(PRODUCT_NAME:rfc1034identifier)
ext Info.plist: com.company.product.$(PRODUCT_NAME:rfc1034identifier)
Run Code Online (Sandbox Code Playgroud)

所以我结束了

app Info.plist: com.company.product.product
ext Info.plist: com.company.product.product_ext
Run Code Online (Sandbox Code Playgroud)

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

此应用包含具有非法捆绑标识符的应用扩展。应用程序扩展包标识符必须有一个前缀,由它们包含的应用程序包标识符组成,后跟一个“.”。

一旦我删除了额外的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
Run Code Online (Sandbox Code Playgroud)

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

 ERROR.com.myname.myappname
Run Code Online (Sandbox Code Playgroud)


小智 5

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

com.company.AppName
com.company.AppName.Extension
Run Code Online (Sandbox Code Playgroud)

"."以前很想念Extension

这也解决了一个相关的问题