【问题标题】:"This app contains an app extension with an illegal bundle identifier" issue“此应用包含带有非法捆绑标识符的应用扩展”问题
【发布时间】:2015-03-16 10:26:27
【问题描述】:

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

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

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

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

com.myname.myappname

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

com.myname.myappname.mywidget

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

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

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

感谢任何帮助。

出了点问题,我不知道去哪里找!

【问题讨论】:

    标签: xcode ios-app-extension ios8-today-widget bundle-identifier


    【解决方案1】:

    我在共享扩展中遇到了与 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
    

    【讨论】:

    • 我无法测试你的方法,因为我已经通过创建一个新项目并将我的所有代码复制并粘贴到新项目中解决了这个问题......无论如何,谢谢!
    【解决方案2】:

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

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

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

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

    【讨论】:

    • 清理构建文件夹为我解决了这个问题!我相信这应该是公认的答案。
    • 对我来说可悲的是,接受的答案和这个答案都不起作用。仍然收到错误。 ://
    • 这对我有用。谢谢。我之前确实更改了扩展名。所以我想知道这是否与它有关。
    • 删除了 DerivedData 文件夹的内容。清理然后构建项目。它对我有用。
    【解决方案3】:

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

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

    我在Extension 之前错过了"."

    这也解决了与issue相关的问题

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-01-27
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多