2017-08-09 146 views
0

我工作的一个离子3项目,刚才让周围设置和测试通知。我没有iOS开发经验,所以我一直在关注如何正确完成所有正确的证书,配置文件和其他设置。应用程序ID和捆绑标识符:供应令人关注的问题

我有我已经加入到Xcode和迄今已让的Xcode(8.3.3版本)自动处理签约苹果开发者账号。

我执行通知作为Mixpanel整合的一部分,所以我一直在遵循本指南:https://mixpanel.com/help/reference/ios-push-notifications。本指南非常完整 - 它引导用户创建应用程序ID,添加推送,创建&签名所需的证书,创建配置文件,最后将其上传到Mixpanel。整个过程都很顺利。

当我连接我的设备以尝试和测试推送通知时,我开始出现问题 - 我没有在Xcode中添加推送通知功能,所以我这样做 - 但是,当我这样做时,我开始了在代码签名配置中出现错误,说明我的配置文件不包含该功能。奇怪的是,因为在Apple Developer网站上我的App ID的详细信息中,我看到启用了推送通知以进行开发。

经仔细检查,我认为这个问题是我的应用程序ID绑定标识符(在苹果开发的网站),并在Xcode中捆绑标识符不匹配。我的应用程序ID绑定标识符是:

<team_ID>.com.<domain>.app 

但在Xcode我捆绑标识符是:

com.<domain>.app 

在我创建的应用程序ID的时候,我想到的是需要在包标识符<team_ID>前缀应用程序ID设置 - 但我不认为这是正确的。我分别看到前缀在App ID信息:

App ID info

这是错误的做法?我感到困惑并将团队ID添加到我的App ID捆绑标识符的原因是因为我的捆绑标识符来自Xcode(com.<domain>.app)是不允许的。试图在创建一个App ID使用它时,我得到了错误:

error creating app id

要clear-我没有其他的应用程序的ID在该软件包标识符苹果开发者的个人资料。

我知道,因为我一直在使用它在Xcode今天之前,用相同的身份签署该标识符应该可用。为什么我不被允许使用它来创建应用程序ID?是不是指包ID和Xcode中的包ID必须相同?

最终的混乱点这里(对我)是,我决定改变在Xcode捆绑标识符匹配我的应用程序ID的(以确认,一旦他们匹配,建设将工作)。我这样做后,Xcode似乎接受新的包标识符,但我得到不同的构建错误 - 如果我更改我的签名身份,在签名配置中显示的错误没有意义 - 他们引用一个包标识符是不是一个略高于在Xcode:

weird config error

具体来说,为什么在错误的包标识符不匹配什么在配置设置在图像的顶部?我试过重新启动Xcode,这仍然发生。此时,如果我删除了推送功能,我甚至无法使用Xcode进行构建 - 我收到了一个神秘的Apple Mach-O Linker (ID) error,它在搜索时不会出现太多变化。

+0

您无法创建它的原因是因为其他一些苹果开发者帐户已经注册并正在使用com。 .app应用程序ID。一旦开发者帐户注册使用该应用程序ID,您将无法将其添加到您的帐户中。您正在使用自动代码签名,是否有可能最初使用其他开发者帐户登录过。如果是这样,Xcode可能已创建/保留您的其他帐户上的捆绑ID。我相信一旦它被注册到开发者账户,它将被保留120天。 – wottle

+0

你有团队账户和个人免费账户吗?现在我正在查看它,看起来您的免费开发者帐户下注册了捆绑ID(这对于推送通知不起作用),但可能是团队帐户的开发者,该帐户没有捆绑ID ID reserverd (您的个人帐户通过您在更换团队时采取的一些行动来解决这个问题)。我会将您的团队变更为付费开发者帐户,将您的套件ID更改为新的,并且可能会有效。 – wottle

回答

0

提供的答案和评论有很好的信息,但是唯一对我有用的是创建一个新的App ID,它与我在Xcode中设置的包标识符没有冲突。我认为在我的第一个App ID名称中包含我的团队前缀在这个用途中扮演了很重要的角色,因为我没有看到这种奇怪的行为,因为我们使用一个正常的包标识符创建了一个新的App ID。

1

正在使用的供应配置文件是针对您收到的错误消息中的软件包标识符进行配置的。为了解决这个问题,您可以:

  • 设置你的应用的软件包标识符您在 错误信息
  • 创建同捆标识的另一配置档案中看到一个你 想在您的应用程序使用

您还需要将推送通知添加到您的配置文件。下面是关于如何做到这一点一些指令:

  1. 转到Certificates, Identifiers & Profiles和Mac应用程序,从左边的弹出式菜单中选择 OS X。
  2. 在标识符下,选择应用程序ID。
  3. 选择与捆绑包ID匹配的显式应用程序ID。
  4. Push “通知”行和“分配”列中会出现一个绿色圆圈,后跟“已启用”。
+0

我没有按照第1点的说法来遵循你的意思。在Xcode中将我的应用程序的包标识符设置为我在错误消息中看到的那个标识符?情况已经如此 - 我试图在创建应用程序ID时使用Xcode中的包标识符,这是我收到错误消息的时候。 – dkhaupt

+0

@dkhaupt试试这里:https://developer.apple。com/account/ios/certificate并确保您的开发配置文件具有“推送通知功能” – Tony

+0

我的配置文件确实具有“推送通知”。我认为这与包标识符有关,并且似乎无论创建新的App ID时Xcode中的任何包标识符都不可用。我想我需要创建一个新的应用程序ID,暂时更改我的Xcode包标识符,然后在创建应用程序ID并进行正确设置后将其更改回来 – dkhaupt