2013-02-11 157 views
89

我提交的应用程序时,它得到了拒绝,我得到的消息缺少推送通知授权

缺少推送通知授权 - 您的应用似乎与苹果推送通知服务注册 ,但应用程序签名的 权利不包括“APS环境”权利。如果您的 应用使用Apple推送通知服务,请确保您的应用ID是 在提供门户中启用了推送通知,并在使用分配置备配置文件012xx包含“aps环境”权利对您的应用签名后重新提交 。

我检查了我的ad-hoc provisiong我在那里发现了APS-环境和生产然而,当我打开发行配置,我不觉得这样的。

这是错误信息和苹果拒绝的原因,我该如何解决?

回答

69

是的,这是App Store拒绝的原因。如果您的专用配置配置文件具有aps-environment密钥,这意味着您的应用在Apple Provisioning Portal中配置正确。您只需在本地计算机上删除App Store分发概要文件,然后从Provisioning Portal重新下载并安装分发概要文件。这个新的应该包含aps-environment密钥。

+0

只是为了清除更多的雾,这相当说明,“分布配置文件必须有aps环境等”,并且当我在文本编辑器中打开配置时,我应该找到它在那里.. – 2013-02-11 07:11:57

+0

我是否需要生成一个新的ssl证书,特别是当我从我的分布配置文件中更改了某些内容? – 2013-02-12 09:37:36

+2

不,不需要新的开发人员证书。当为推送通知启用分发时(由于您的专用配置文件具有aps-environment密钥,您必须在某个时刻完成分发),iTunes Provisioning Portal会生成一个包含aps-environment密钥的新应用商店分发配置文件。您可能刚刚没有下载并安装最新版本。 – tom 2013-02-12 17:49:08

2

检查程式编号是按启用或不developer.apple.com iOS中Provisioning户 如果没有则启用,配置你的推送SSL证书应用ID下载它, 并在您的钥匙串再次重新安装然后下载您的分布配置文件安装在您的Xcode Liabrary

20

我得到这个消息的原因不同 - 我通过Xcode提交了一个应用程序,而没有首先创建专门为应用程序的App Store发布配置文件。我相信如果你安装了一个,Xcode会自动使用通配符App Store配置文件。但是一个应用使用推送通知需要自己的配置文件。

解决的办法是为应用程序创建一个新的App Store发布配置文件。然后,您下载它,将它拖到Xcode上,然后修改您的项目“生成设置”>“代码签名”>“发布”以使用新配置文件。

2

在我的情况下,即使我创建了一个myapp.profile并手动将它设置为xcode,并且当我选择“show in finder”并找到embedded.mobileprovision并检查以确保文件中存在aps-environment ,错误仍然存​​在。

然后我去了开发者中心,发现XC:myapp.profile的状态是无效的。我更新它并安装了XC:myapp.profile,它工作正常。

我想xcode试图管理配置文件,并且您需要在将二进制文件提交到存储时检查配置文件,并确保它是正确的。而根据其他答案,它可能是由于各种原因造成的,所以它可能真的很烦人。

UPDATE:

一旦你与下载配置文件签字确认这aps-environment在那里当您尝试提交App Store,你应该能够配置文件和代码签名实体改为自动和iOS Developer。希望它能在Xcode 7中得到改进。

+0

我已经检查了所有的配置文件,也XC:配置文件被更新,它不包括任何asp环境的关键,我仍然一次又一次得到同样的问题。任何帮助将不胜感激。是的,我不需要在应用程序中实施任何推送通知 – 2015-08-04 09:13:35

+0

您可以通过检查供应配置文件的二进制内容并查看字符串“aps-environment”是否在里面吗?如果它在里面,你需要找到一些方法来摆脱它,否则你需要确保你的个人资料是你的应用程序签名。无论哪种方式都有一个问题。 – 2015-08-05 01:05:10

+1

我已经检查了两次,并试图找出更多,但没有运气。没有那样的字符串,但经过2天的搜索和尝试,我得到了一件事符合这个问题是与Xcode 7测试版不与我的代码:)通过Xcode 6.4相同的构建是完全正常工作,并没有电子邮件从Apple报告所以问题出在Xcode 7 beta 4而不是代码或配置文件。 – 2015-08-07 10:38:20

36

的第一APP ID

确保在生产端的ID推送通知使

如出现在画面

enter image description here

第二个证书

从生产节创建两个证书与您的ID(启用推送通知)

App Store和特设证书

苹果推送通知服务SSL(沙盒)证书

enter image description here

第三提供配置文件小号

从分配部分中创建的App Store资料与ID

最后

当你上传你的bin,你必须检查什么的provisioning profile使用 并有许多权利

enter image description here

这一切的情况下会导致此问题 希望这是你

+1

这就是我所错过的。我必须在Apple开发人员站点中使用带有推送通知的App ID创建新的供应配置文件。使用新的配置文件,最终将aps-environment权限添加到我的应用程序中。谢谢! – 2016-05-09 17:44:24

+1

拯救生命!这是我遇到的问题。 – Wouter125 2016-05-18 12:13:21

+0

感谢更清晰的新手ios开发者 – snaikar 2016-05-23 15:59:19

0

这发生在我身上突然,因为我的应用程序的分布特征已经到期很有帮助。 Xcode开始使用通配符配置文件,但没有启用推送通知权利。我没有收到任何警告。修复很简单;我只需在Apple Developer Member Center中为我的应用生成另一个分发配置文件,下载它,然后双击安装到Xcode中。

4

,我也面临着甚至我没有用我的app.Making 新的供应配置文件在所有推送通知,也没有为me.What我没有工作,这个问题是: -

1 。仅适用于Ad hoc & App Store创建新的新证书。

2.然后使用此证书制作分发配置文件并将配置文件与Xcode集成。

然后新提交的构建与此配置文件批准没有任何警告。

+0

我试过了 - 没有帮助。仍然得到失踪推送通知的事情..我不使用推送通知! – Adam 2016-07-11 15:40:49

7

对于那些遇到这个问题,究竟是谁在使用推送通知在他们的应用程序:

我们的推送证书是最近即将到期,所以我们在苹果列出的标准方式创建的新的开发/生产推送证书(在这里我不会详细讨论这个问题,当更新你的推送证书再次使用时,网络上有很多关于它的信息)。

但是这样做后,这个问题就出现了。无论我们做了什么,我们都会在提交我们的应用后收到Apple发送的这封电子邮件。当我们检查Apple会员中心的Distribution Provisioning Profile的设置时,一切都很正常(为我们的prod/dev启用了我们的App ID,并且我们的分发配置文件仍然连接到了这个App ID,我们刚刚创建按照标准惯例,新推出新的认证证书)。

最后,这是最终解决它,我:

  1. 创建一个新的发行配置文件指向您的应用程序ID(留在机智当前的一个)
  2. 在Xcode中,刷新您的配置通过设置>帐户>配置文件选择您的帐户>详细信息>单击刷新图标
  3. 手动创建你的应用的权利plist文件:
    • 文件菜单>新建文件...
    • 选择iOS版>资源>属性列表
    • 名称的新文件“foo.entitlements”(通常,“富”为目标名称)
    • 点击(+)旁边的“应享权利文件”添加顶级项目(由于文件扩展名,属性列表编辑器将使用正确的模式)
  4. 确保此权利文件正用于目标的“生成设置”(目标>生成设置>搜索“权利”在CODE_SIGN_ENTITLEMENTS中设置您刚才创建的权利文件的路径)
  5. 确保配置教授您的目标中的代码/签名标识已正确设置为您的相应分发资源调配配置文件/签名标识(这应该是显而易见的)
  6. 我不是100%确定这是否会影响它(不应该由于目标设置覆盖项目设置,但我这样做反正),请确保您的项目的供应配置文件/签约身份匹配您的目标的
  7. 在权利文件,你做,请右键单击空文件并选择“显示原始键/值”
  8. 添加一个称为“aps-environment”的权利文件的新条目,并将其值设置为“production”
  9. 一个关键注意事项,如果您以前使用钥匙串访问组权限,则需要在这里添加该密钥,因为由于某种原因,手动执行此操作时它会被清除。确保该值与以前版本中使用的值相同(可以通过在管理器中查找以前的版本来找到该值,尝试提交到应用商店,选择您的团队,然后在提交应用之前点击旁边的箭头“(X)Entitlements”字符串以扩展权利并查看钥匙串访问组权利的价值
  10. 将您的应用归档并尝试将其提交到最终的“提交”按钮。看到这个应用程序现在使用您在成员中心创建的新配置配置文件构建。现在取消此配置。
  11. 回到苹果的会员中心,并删除您在步骤1
  12. 早在Xcode中创建新的供应配置文件,重复步骤2,再次刷新您的配置文件列表中
  13. 现在再次存档您的应用程序,您应该看到该应用程序是使用您想要使用的旧的分发配置配置文件构建的,并且正确拥有aps环境权利。提交并完成。

我知道这是不是尽可能详细,它应该是理所应当具备的截图,我会尽力的时候,我可以用截图来更新它,但暂时我在一段时间紧缩是对的现在想要得到我在那里做的事情。还有一种很可能的情况是,我列出的一些或大部分步骤都没有必要,我把它们放在这里是因为我做了它们,它们可能导致了最终的解决方案。

+0

谢谢。对我而言,#8被设定为发展,这可能是我们的问题。 – ingage 2016-11-16 05:47:15

+0

非常感谢,浪费了整整一天的时间,步骤#​​4是个问题,由于某种原因,没有指定CODE_SIGN_ENTITLEMENTS,授权仅在应用商店上传时被忽略。 – 2018-01-03 20:17:36

0

这里有一些非常好的建议。

参考Mina在最初归档我的应用程序后提供的上一个屏幕截图,上载过程中提到的配置文件包含通配符(XC。*)。这是错误的。

为了解决这个问题,花了相当多的努力。我不得不执行Mina Fawzy提供的Simon Woodside &的建议。

如果您有与您的项目相关的任何现有证书和设置配置文件,现在应该是将它们全部删除并将其全部撤销的好时机。给自己一个新的开始。

Mina Fawzy的详细建议非常好。执行Mina的建议,如果正确执行,应在网上照顾你。

输入Simon的建议。我需要在项目中检查两件事。使用的XCode,去这里:

项目 - >构建设置 - >代码签名

审查代码签名身份发放模板性能。确保将这两个属性设置为项目名称的属性。不要让XCode为您自动选择,并且不要使用某些通用代码签名标识(例如Iphone Developer)。

确定您确实可以在决定存档之前将应用程序安装到您的设备上。

33

在Xcode 8,你需要在你的目标能够在功能选项卡推动,扶持的各项规定和证书一切之上: Xcode 8 "the aps-environment entitlement is missing from the app's signature" on submit

我的博客文章关于这个here

+7

这是经典的苹果。在我提交一个构建版本两个小时后,他们发送了一个关于我早已解决的问题(在Dev Portal中启用了推送通知应用程序服务)的错误消息,并通过指向404的链接进行了解释。然后,事实证明,真实问题是他们在升级到他们软件的新版本时(我被锁定)没有迁移我的设置。 呃。 – 2016-10-21 18:25:59

+3

同样的故事在这里。我们几乎将这个错误消息视为苹果的错误。 – Vaiden 2016-10-31 13:27:18

1

这是什么修复了我。 (我已经尝试打开/关闭功能,重新创建配置文件等)。

生成设置选项卡,在代码签名应享权利,我.entitlements文件没有被链接的所有部分。一旦我将它添加到Any SDK部分,错误就解决了。

enter image description here

6

从@Vaiden给出的答案继,在Xcode 8,你可以通过选择目标,然后点击“修复问题”解决这一问题。当然,您仍然需要在Apple Developer portal中设置推送通知(您可以使用新的“自动管理签名”选项简化该过程,这可以为您节省下载配置配置文件的麻烦)。

Fix me option

0

,我从Capabilities使Push Notification和改造的所有证书后,具有最大的问题是,目标名称何地存储项目分开2串组成的文件夹名称乘太空。删除空间后,所有的工作很好!

0

我有同样的问题,我的解决方案是从目标 - >功能添加推送通知权利。