2016-09-18 60 views
98

我已经得到了我们在过去6个月中提交的版本dozends到一个应用程序和我们使用APNS“的APS-环境权利是从应用程序的签名失踪”。我从苹果以下电子邮件升级Xcode的8的Xcode 8日提交

尊敬的开发商,

我们已经发现了一个或多个问题与您最近交付 APP_NAME后。您交割 成功,但您可能希望更正您 未来交付了以下问题:

缺少推送通知授权 - 您的应用包括 苹果推送通知服务的API,但APS-环境权利 是从应用程序的签名中遗失。要解决这个问题,请确保您在供应门户中为您的推送通知启用了 App ID。 然后,使用 包含aps环境权利的分配资源调配配置文件为您的应用程序签名。这将创建正确的 签名,并且您可以重新提交您的应用。关于 的更多信息,请参阅本地和推送通知编程指南中的“供应和 开发”。如果您的应用不使用Apple推送通知 服务,则无需执行任何操作。您可以从将来的 提交中删除API以停止此警告。如果您使用第三方框架,您可能需要联系开发人员获取有关删除 API的信息。

你们已经纠正了这些问题后,您可以使用Xcode中或应用 装载机上传新的二进制到iTunes连接。

问候,

的App Store的团队

什么是奇怪的是我去developer.apple.com - >证书,标识&型材和我的AppId确实有推送通知仍然启用。我没有做过任何不同的工作,所以我很好奇,如果Xcode 8更新失败了。有任何想法吗?

BTW:他们把对推送通知编程指南在电子邮件破碎的联系,所以这不是一个好兆头。

回答

131

其实很简单。出于某种原因,它在Xcode 8上被禁用,但转到目标 - >功能并验证推送通知在该视图上都是正确的。对我来说,它有一个“修理我”我不得不点击,瞧。

+0

对我来说,这个“修复我”添加了一个明确的权利文件(我多年以来没有使用的东西),一旦我删除它,推送通知功能又被禁用。有没有人知道如何启用它而不必添加授权文件? – villapossu

+0

苹果文档在这里:https://developer.apple.com/library/content/releasenotes/DeveloperTools/RN-Xcode/Introduction.html#//apple_ref/doc/uid/TP40001051-CH1-DontLinkElementID_44建议“使用此授权,请在项目编辑器的功能窗格中启用推送通知,或手动将权利添加到您的权利文件中。“ – KayAnn

+4

关于这个问题的奇怪之处并不是解决方案,事实上在Xcode 7上这是启用的,升级后它被禁用了。 – Unome

26

有在Xcode 8,你的权利不再来自于应用程序标识符的改变,但在你的应用程序的目标选择的能力。所以,就像Unome(OP)所说的那样,你必须验证Push Notifications是否已打开。

对我来说,这不是一个“整我”按钮,但我有两个授权文件(一个用于开发,一个用于分配)。切换推送通知功能会将aps-environment密钥(值为development)添加到开发权利文件中,但不会将其添加到分发权利文件中。上传到iTunes Connect时,将同一个键复制到发行版可以消除警告电子邮件。

对于大多数项目来说,切换推送通知应该就足够了,或者如果它已经打开但密钥不在授权中,请尝试切换并重新打开。

+0

这是我所在的船,除了不管我在'.entitlements'文件中为当前配置/方案指定的内容,它总是使用'​​production'作为'aps-environment'。 –

+0

切换推送能力Notificaition崩溃我的Xcode 8! – djay

+1

@AlbertBori奇怪的是,我只能用它来展现发展,这很好,因为当它被存档时,它表现为'生产'。 – timgcarlson

72

我也有同样的问题,并且我确定推送通知在Xcode8中默认是关闭的。我没有注意到它。小心它。

capability

+0

你能告诉我为什么我的帐户中没有推送通知部分吗? – Anuj

10

和Xcode 8斗争的日子,我们无法弄清楚,为什么不加入aps-environment发展我们的调试版本之后。它在构建的应用程序中的权利部分中缺少用于调试测试的内容......尽管我们已启用新的Capability和权利文件。问题是需要在Xcode生成调试授权设置中为ANY SDK设置权利文件。

screenshot

+0

我不认为为'Debug'键设置一个值并为'Debug'>'Any SDK'设置一个值,因为后者用于覆盖特定SDK的值。 –

+0

这就是我的解决方案 – Himanth

+0

在这一整个早晨挣扎之后,这就是我遇到的问题。切换功能,生成供应配置文件,没有任何工作。这样做。 –

27

从Xcode的release notes

的Xcode 8不会自动将APS-环境权利从在构建时预置描述文件复制。这种行为是故意的。要使用此权利,请在项目编辑器的“功能”窗格中启用推送通知,或手动将权利添加到您的权利文件。 (28076333)

这是一个很大的变化,因为aps环境权利并不需要plist,但其他许多人却这样做总是很奇怪。

对于那些不想盲目按下“Fix Me”并且目前没有授权文件的用户,它只是一个plist文件,在项目的Build Settings中的“Code Signing Entitlements”

+1

我无法在链接的注释中找到该报价! –

+0

我刚刚证实,该文本仍然存在使用我的浏览器的查找功能... – mattyohe

+0

我不知道谁upvoted我的评论和什么是错的,但我现在也可以找到它。 –

3

我使用XCode 7.3.1从Apple获得了同样的电子邮件。我做了什么来解决这个问题是:

  1. 根据能力>设置PUSH通知ON如@Bruce Tsai回答中所述。
  2. 在内建设置>代码签名>代码签名标识设置用于调试和用于释放分配证书显影剂证书,如所示的图像中:

enter image description here enter image description here

+0

嗨,在能力我没有得到功能>设置推送通知 – Anuj

+0

@Anuj,我添加了一个屏幕应该在你的Xcode应该在哪里。 – Ruben

4

Automatically manage signing was off for me

自动管理签名已关闭,我检查并为我工作正常。

1

使用Xcode 9推送通知已启用。

我试过禁用/重新启用推送通知的功能。 (没有工作)

我试过禁用/重新启用自动管理签署。 (没有工作)

原来我不得不删除并重新添加我的配置文件。(see here how to do it您可能必须禁用/重新启用在病房后自动管理签署