13

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

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

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

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

com.myname.myappname

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

com.myname.myappname.mywidget

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

没有谷歌结果!我是唯一有这个问题的人吗??

如果是问题所在,我的包名称不是“myappname”。

任何帮助表示赞赏。

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

4

3 回答 3

32

如果所选答案不起作用,我发现 xcode 在某些目标模式之间切换似乎是一个问题,从而导致此问题。

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

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

cd ~/Library/Developer/Xcode/DerivedData
find . -name "*.appex" -exec rm -fr {} \;
于 2015-06-28T16:03:18.377 回答
6

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

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

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

一旦我删除了 extra 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
于 2015-01-25T23:02:04.403 回答
6

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

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

我错过了"."以前Extension

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

于 2015-12-01T09:44:48.890 回答