Xcode6:embedded式二进制文件未使用与父应用程序相同的证书进行签名

添加Today App Extension Target后,我无法编译项目。 下面是错误:

error: Embedded binary is not signed with the same certificate as the parent app. Verify the embedded binary target's code sign settings match the parent app's. 

embedded式二进制签名证书:iPhone开发人员:(开发人员姓名)(电话号码)

家长应用签名证书:iPhone开发人员:(开发人员姓名)(电话号码)

但embedded式二进制证书和父应用程序的证书是一样的。 所以我现在很困惑

我必须在“目标”下select我的应用程序,然后进入“function”选项卡,然后单击“应用程序组”部分下的“修复问题”

在使用WatchKit的情况下,请确保您的Watch App在Watch App Target设置(在General> Identity> Team下)中select了正确的“Team”。 我已经设置了手机应用程序的团队,但不是手表应用程序的团队。

我在代码签名方面有差异。 我的扩展和主应用程序有不同的证书select。 一旦我设置使用分配,它工作正常。

在这里输入图像说明

我通过删除我的Apple ID帐户解决了这个问题

 Preferences -> Accounts 

然后用我的Apple ID重新login

如果您的Xcode工作正常,但在将扩展程序目标添加到项目后停止工作,则大部分时间是您的应用程序使用较旧的证书(仍对您的名称有效等)签名,而您的扩展程序是用一个具有延期权利的新证书。 这是错误的原因。 在这种情况下,您很可能拥有两个同名的证书,而且您可以执行以下操作:
1.Go to Xcode->Preference; 2.select帐户选项卡;
3.select你的Apple ID,然后点击View Details;
4.在身份列表窗口签名下,selectIOS Development,然后点击小configuration图标,然后selectRevoke;
5. Xcode将尝试下载一个新的证书。
在此之后,您可以做一个干净的生成,所以您的应用程序和扩展将使用新的证书进行签名。
在这里输入图像说明

我在Xcode 6中遇到了同样的问题,但在我的情况下,它是由于有两个活动的开发人员证书而发生的。 撤销一个已经解决了这个问题。

如果embedded式应用程序目标(如扩展程序或watchapp)没有在“ 常规”部分中select匹配的作为主iOS应用程序,则可能会出现此问题。

为所有相关目标select合适的团队为我解决了这个问题。

我有一个类似的问题。 对于我来说,问题是证书显示“由未知权威签名”。 我已经按照下面的步骤,它已经解决了。 问题是缺less苹果WWDR中间证书。

我们还必须安装苹果全球开发者关系发布的WWDR中间证书。 可以从门户网站下载,也可以直接从http://developer.apple.com/certificationauthority/AppleWWDRCA.cer下载。请确保将其添加到您的钥匙串中。;

要添加证书,请在Mac电脑上打开您的钥匙串实用程序软件,然后进入文件→导入项目,然后selectAppleWWDRCA.cer。

这个问题可能来自不less原因。 如果其他答案都没有为你工作 – 想要添加另一个似乎帮助我的似是而非的支票。 确保您签署的证书没有“永远信任”(如果设置是这样的话,您会看到一个绿色的“+”号)。

  1. 转到密钥链访问,双击您正在使用的证书。
  2. 展开“信任”下拉列表并将其设置为“始终信任”中的“使用系统默认值”。

如果您在项目中使用Swift,尤其如此,因为“始终信任”设置会中断相关的Swift库。

您需要为该目标创build供应configuration文件,并确保在其中包含相同的证书。

目标有自己的捆绑ID,你也需要创build一个AppId。 这解决了你遇到的同样的问题

最好

让Xcode处理configuration工作。 这解决了我的情况相同的问题。 http://aplus.rs/2014/embedded-binary-is-not-signed-with-the-same-certificate-as-the-parent-app/

如果这有助于任何人,我的修复是我已经更新了我的存档scheme发布时提交到商店,但从来没有把它改回adhoc进行testing。 编辑我的档案计划使用临时工作。

当我遇到这个问题时,我去了苹果会员中心,发现我创build的configuration文件(扩展名)被标记为“无效”。 我刚刚使用应用程序签署的相同证书重新创build了Provisioning Profile,然后通过Xcode> Preferences> Account> refresh将其下载。

一旦我有了新的configuration文件,我在构build设置中select了它们。 我select了刚刚创build的configuration文件,并在生成设置中的代码签名实体中select了相应的证书,并解决了问题。

请注意,该扩展程序有其自己的应用程序ID,因此它自己的供应configuration文件。

对于Xcode 8testing版3

我的内部版本号在我的Xcode项目文件中的不同目标上。

iOS目标显示“Build 3”

我的iOS目标有一个版本3,但我的手表应用程序目标和我的共享扩展目标都构build版本1。

Thingy Watch目标显示内部版本号1,不符合iOS目标内部版本号。

我所做的只是匹配所有目标的内部编号(全部更改为3),并解决了问题。

希望这可以帮助。

我尝试在iPhone5中运行项目,但应用程序扩展不支持32位体系结构。所以当我在iPhone5S中构build项目时,我可以构build项目!

刷新我的configuration文件为我修复(首选项 – >帐户 – >双击帐户 – >点击左下angular的刷新button)

打开你的钥匙链,这是苹果全球开发者关系authentication机构 ,如果我select总是信任 ,Xcode档案失败。 当我更改为系统默认值时,Xcode成功存档。 是的,你会享受!

出于某种原因,我的开发人员证书被存储在我的钥匙串中两次。 删除其中一个修复了这个问题。

我有同样的问题。

因此,我为WatchKit应用程序的每个包ID和configuration做了configuration概要文件:

  • 观看应用程序开发
  • 手表扩展开发

  • 观看应用程序制作

  • 手表扩展产品

/!\请小心,因为开发者平台上的手表应用程序的应用程序ID是这样的:

com.example.projectname.watchkitapp.watchkitextension

当我创buildwatchkit应用程序在Xcode的包ID是:

com.example.projectname.watchkitapp

也许这是自从WatchOS 2.0以来发生了变化。

我不得不去:

Xcode->首选项 – >帐户 – >查看详细信息 – >select所有供应configuration文件 – >删除完成后按键盘上的DEL键完成按下载全部button!

我在Xcode 7.1中遇到了同样的问题。 该应用程序有一个手表扩展,因此一个应用程序组。 对我有效的是:

  1. 转到~/Library/MobileDevice/Provisioning Profiles
  2. 删除那里列出的所有configuration文件
  3. 转到Safari的iOS开发人员中心,重新生成所有configuration文件
  4. 返回到Xcode => Preferences => Apple ID,然后select与该应用程序关联的Apple ID
  5. 点击“查看详情…”(右下)
  6. 下载刚刚创build的供应configuration文件
  7. 清理并重新构build

我相信我的configuration文件混在一起,因为我正在使用Xcode的“修复自动”function,以解决与Capabilities => Associated Domains有关的另一个问题。

在你的Mac上打开KeyChain Access,从你自己的证书中删除另外一个不同的证书。这个问题在你在Xcode的另一个帐号中登陆后会出现。

我也面临同样的问题,我通过以下程序解决了它:

首先,我重新创build我的团队开发证书(因为我们更新了根证书)

2,编辑Iphone Apps开发证书,一定要包括你刚创build的证书。

3,做相同的watchkit扩展和手表套件

4,去你的Xocde“偏好设置”,双击你的“团队名称”,删除旧的Iphone证书,watchApps,watchExtention

5,下载你的新证书并安装。

然后它工作。

在我的情况下,我的应用程序和我的小工具configuration文件签署了不同的证书。 所以我不得不去iOS开发者站点,select父应用程序供应configuration文件 – >编辑,并select相同的证书作为小部件。 然后点击“生成”和“下载”。 你有下载它,双击它来安装在XCode。 然后在“生成设置” – >“Provisionigconfiguration文件”中为您的父应用select新的configurationconfiguration文件。 最后重build你的项目!

对我来说,这是因为我的一些configuration文件已过期。 在developer.apple.com上创build新的configuration文件,删除旧的configuration文件,在Xcode中将它们设置为自动,错误消失。

在我的情况下,我的扩展目标使用的configuration文件包含与父目标使用的configuration文件不同的证书。 这正是抱怨的错误信息!

原因是我为扩展configuration文件生成了一个新的证书。

因此,请login到developer.apple.com以查看这些configuration文件是否包含不同的证书。

经过一整天,根本证书中的“ Apple Worldwide Developer Relations Certification Authority ”已被删除 。 我从另一台机器出口一个,安装,一切工作正常。

如果你使用任何扩展(在我的情况下,我使用的是OneSignal扩展),那么你的父应用程序包将是com.app.xyz,但对于扩展/小部件,你的包ID将是com.app.xyz.extension

所以我们将创build一个包标识为com.app.xyz.extension的应用程序ID,我们将为这个应用程序ID创buildconfiguration文件。

我们将使用我们用于父应用程序的相同的开发和生产证书。

这里是链接,可以有助于configurationconfiguration文件的小部件

最后我不使用自动设置。 所以我手动设置了configuration文件和证书