Ios8 Xcode 6错误:“0”;嵌入式二进制';s包标识符的前缀不是父应用程序';s包标识符。”;

Ios8 Xcode 6错误:“0”;嵌入式二进制';s包标识符的前缀不是父应用程序';s包标识符。”;,ios8,xcode6,ios-app-extension,Ios8,Xcode6,Ios App Extension,我正在尝试构建一个扩展项目,Xcode一直在主题中抛出错误 不用说,扩展包id的前缀是应用程序包id 产品名称:ro.chitza.TodayPics.$(目标名称:rfc1034identifier 我尝试过清理构建文件夹并重建,但没有成功。有趣的是,整个项目构建了几次,但在一些代码和UI更改之后,它开始失败。即使我创建了新项目,在大约5-6次构建之后也会发生同样的事情 是否有其他人遇到此错误?有任何解决方案或解决方法的提示吗?我也遇到了同样的错误,您可能会添加一个类似于Today的扩展小

我正在尝试构建一个扩展项目,Xcode一直在主题中抛出错误

不用说,扩展包id的前缀是应用程序包id

产品名称:
ro.chitza.TodayPics.$(目标名称:rfc1034identifier

我尝试过清理构建文件夹并重建,但没有成功。有趣的是,整个项目构建了几次,但在一些代码和UI更改之后,它开始失败。即使我创建了新项目,在大约5-6次构建之后也会发生同样的事情


是否有其他人遇到此错误?有任何解决方案或解决方法的提示吗?

我也遇到了同样的错误,您可能会添加一个类似于Today的扩展小部件,因为扩展本身也是二进制的,所以它有自己的plist,并确保在扩展的plist中捆绑id以应用的捆绑id为前缀。希望这有帮助。

请尝试一个干净的方法这为我解决了这个问题(Xcode 6b2)。

我必须手动将扩展的info.plist中的BundleID更改为我需要的


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

问题可能是您在将文件夹添加到项目中时使用了“创建文件夹引用”添加了一个文件夹(就像我所做的那样)。@Jacob的修复方案对我不起作用:(

我不得不删除我添加到项目中的文件夹引用,然后进行清理和构建,这为我修复了它

请确保:

目标应用程序A->构建设置->代码签名->发布

与以下情况相同:


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

我也遇到了同样的问题。将我的WatchKit扩展的CbundleIdentifier更改为与我第一次添加WatchKit扩展时使用的原始值不同的值,并重新设置我的共享应用程序组权限。这对我有帮助:

扩展需要将父级的bundle ID作为其前缀

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


在我的例子中,当我更改应用程序包标识符时发生此错误。我的项目中还有WatchKit应用程序

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

并更新以下资料—

使用新的Watch应用程序包id更新以下内容。 WatchKit Extension>Info.plist-NSExtension->NSExtensionAttributes->WKAppBundleIdentifier

使用新的应用程序id更新以下内容。 WatchKit应用程序>Info.plist-WKCompanionAppBundleIdentifier


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

看起来,当WatchOS 2到达时,捆绑包ID行为发生了更改

以前我有一个扩展包标识符,如下所示:

com.mycompany.myappname.watchkitextension
在Stackoverflow的其他地方,有人提到扩展包标识符应该是这种格式,但无论我尝试了什么,Xcode总是向我抛出错误

唯一可行的解决方案是将扩展包标识符更改为:

com.mycompany.myappname.watchkitapp.watchkitextension
我很确定WatchOS 1应用程序并非如此。由于此更改,一个问题是您无法为bundle identifier
com.mycompany.myappname.watchkitextension
)生成应用程序id。这不是必需的,只需将构建设置中的所有配置文件设置为自动,不要忘记使用righ用于发布/特别/调试方案的t代码签名证书

事实上,我发现这种方法是有效的,因为Xcode建议解决这个问题,它就是这么做的。

目标->常规-->嵌入式二进制文件删除旧的并选择新的。这就是我解决这个问题的方法

我只是清理派生文件夹,它在这些情况下对我很有帮助。

可能是您复制了目标以执行克隆应用程序。例如,您选择了每个目标并复制了它们。克隆watchkit扩展目标时,其目标成员身份可以自动分配给原始的watch应用程序。


要解决此问题,您需要转到Project Navigator中的原始“WatchKit extension.appex”文件,并在文件检查器中为新的克隆监视应用程序目标取消选择目标成员身份。您应该对复制的“WatchKit extension copy.appex”执行相反的操作,并确保它只有重复的“watch app copy”在此处选择目标。

转到每个目标>生成设置>产品包标识符>(重命名为任意名称)

我做了如下更改:

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

扩展应用程序包id:com.myapp.testapp.myextension


还有它的作品!!!

这对我很有帮助:

我得到了:

Xcode找不到任何与之匹配的iOS应用程序开发配置文件

因此,我将Bundle标识符名称,即
com.example.something
更改为
com.example.something1
,然后清理了构建


确保您也更改了所有依赖包id..njoy!!

确保扩展包标识符的前缀为app bundle identifier。
如果它是相同的并且仍然给出错误,那么转到扩展名为.plist的文件并更改它们的包标识符。

我尝试了这里给出的大多数解决方案,但它没有帮助我解决Xcode 9.4中的问题

帮我解决了这个问题

我所做的只是

  • 取消选中自动管理所有目标和项目的签名

  • 在代码签名中,使其成为所有目标和项目的iOS开发人员

  • 清理项目,然后关闭项目并将其打开

  • 现在启用自动管理签名
    //for example
    //Extension App id
    com.company
    
    //Containing App id
    com.company.extension