我有点混淆了,因为我更改了应用程序名称、捆绑显示名称和捆绑标识符名称......现在我的应用程序可以正常工作,但我的"今日"小部件无法正常工作。
每当我尝试运行今天的小部件时,它都会成功构建,但它没有启动,而是说
此应用包含具有非法捆绑标识符的应用扩展。 应用扩展捆绑标识符的前缀必须包含 它们包含应用程序的捆绑标识符,后跟"."。
但是,我检查了Info.plist,我的捆绑标识符是
com.myname.myappname
我的今天小部件的捆绑标识符是
com.myname.myappname.mywidget
这不是刚刚好吗??我一次又一次地清洁和建造..但它就是行不通。
而且没有谷歌结果!我是唯一有这个问题的人吗?
我的捆绑包名称不是"myappname",如果这是问题所在。
任何帮助,不胜感激。
有些东西变坏了,我不知道去哪里找!
如果所选答案不起作用,我发现 xcode 在某些目标模式之间切换似乎存在问题,这导致了这种情况。
在这种情况下,请尝试进行彻底清理,以及清理构建文件夹(选择产品/清理时按住 ALT)。
补遗:由于现在这种情况对我来说经常发生,因此更快的解决方法是同时删除所有.appex文件。 例如:
cd ~/Library/Developer/Xcode/DerivedData
find . -name "*.appex" -exec rm -fr {} ;
我在共享扩展中的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
通过了构建检查,但拒绝在设备上运行并显示错误:
此应用包含具有非法捆绑标识符的应用扩展。应用扩展捆绑标识符必须具有一个前缀,该前缀由其包含的应用程序捆绑标识符组成,后跟"."。
一旦我删除了额外的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
这是因为我的应用程序扩展的捆绑标识符命名错误。与@dougbeal的答案类似,但对我有用的格式略有不同:
com.company.AppName
com.company.AppName.Extension
我错过了"."
之前Extension
这也解决了与问题相关的问题