Xcode 6错误:“embedded式二进制文件包标识符没有以父应用程序包标识符作为前缀。

我试图build立一个扩展项目,Xcode不断抛出错误的主题。

Xcode日志错误

不用一天,扩展的捆绑ID 前缀与应用程序的捆绑ID。

商品名称: ro.chitza.TodayPics.$(TARGET_NAME:rfc1034identifier

扩展束ID

我试过清理生成文件夹和重build,没有运气。 有趣的是整个项目build成了几次,但在一些代码和用户界面的变化后,它开始失败。 即使我创build了新的项目,同样的事情发生在大约5-6次构build之后。

有没有其他人遇到这个错误? 提供解决scheme或解决方法的任何提示?

在构build之前尝试清理。 这解决了我的问题(Xcode 6b2)。

当WatchOS 2到达时,看起来捆绑ID的行为改变了。

以前我有一个像这样的扩展包标识符:

 com.mycompany.myappname.watchkitextension 

在Stackoverflow的其他地方,有人提到扩展包标识符应该是这种格式,但不pipe我试过Xcode不断抛出错误在我身上。

唯一可能的解决scheme是将扩展束标识符更改为:

 com.mycompany.myappname.watchkitapp.watchkitextension 

我很确定这不是一个WatchOS 1应用程序的情况。 由于这种变化,问题在于您无法为包标识符com.mycompany.myappname.watchkitextension生成一个应用程序标识。 这不是必须的,只需将构build设置中的所有configurationconfiguration文件设置为自动configuration,并且不要忘记为您的release / ad-hoc / debugconfiguration使用正确的代码签名证书。

我实际上发现这种方法是有效的,因为Xcodebuild议解决这个问题,这就是它所做的。

我不得不手动更改扩展的info.plist中的BundleID到我所需要的。

我提交了一个雷达:rdar:// 17487465

这帮助了我:

该扩展需要有父母的包ID作为其前缀。

例如,如果您的应用程序是com.ronnathan.myapp,则您的扩展必须是com.ronnathan.myapp.today。 您重命名了应用目标,现在进入扩展目标并更改名称以匹配。

从这里采取

我做了如下更改:

主应用程序包ID: com.myapp.testapp

扩展程序套件ID: com.myapp.testapp.myextension

和它的作品!

目标 – >一般 – >embedded二进制删除旧的和select新的这是我如何解决这个问题

我得到了同样的错误,你可能会添加一个像Today小部件这样的扩展,因为扩展本身也是一个二进制文件,所以它有自己的plist,并且确保在扩展的plist中bundle id带有app的bundle id前缀。 希望这可以帮助。

在我的情况下,当我更改应用程序包标识符时发生此错误。 我的项目中也有WatchKit应用程序。

要解决这个问题,请使用您的应用程序的新捆绑ID更新WatchKit扩展和WatchKit应用程序捆绑包ID前缀。 检查两个目标中的info.plist。

同时更新以下内容 –

使用新的Watch App包ID更新以下内容。 WatchKit扩展> Info.plist – NSExtension-> NSExtensionAttributes-> WKAppBundleIdentifier

用新的应用程序ID更新以下内容。 WatchKit App> Info.plist – WKCompanionAppBundleIdentifier

改变所有值后,不要忘记清洁产品一次。

它可能发生,你重复你的目标做一个克隆应用程序。 例如,您select了每个目标并复制它们。 当你克隆你的watchkit扩展目标时,它的目标成员可以被自动分配到原来的手表应用程序。

要解决这个问题,您需要在Project Navigator中使用原始的“WatchKit extension.appex”文件,然后取消select文件检查器中的目标成员身份以获取新的克隆手表应用程序目标。 你应该做相反的“Watchkit extension-copy.appex”,并确保它只复制了“watch app-copy”目标。

确保你的:

目标应用程序A – >内置设置 – >代码签名 – >发布

是一样的:

目标应用程序A(扩展) – >内置设置 – >代码签名 – >发布

这个问题可能是你添加一个文件夹,使用“创build文件夹引用”时,将其添加到您的项目(就像我做的那样)。 @雅各的解决scheme没有为我工作:(

在这里输入图像说明

我不得不删除我添加到我的项目中的文件夹引用,然后清理和构build,并修复了我。

在这里输入图像说明

只需从〜/ Library / MobileDevice / Provisioning Profiles中删除应用程序configuration文件,重新加载Xcode,并在Xcode提示(或从iOS开发人员中心手动下载)时修复问题。

为我解决了这个问题。

我遇到了同样的问题。 将我的WatchKit扩展的CFBundleIdentifier更改为我第一次添加WatchKit扩展时使用的原始值以外的内容,并重新设置我的共享应用程序组权利时为我解决了这个问题。

我只是干净派生的文件夹,它可以帮助我在这些情况下。

转到每个目标>“生成设置”>“产品包标识符”>(重命名为任何内容)