iOS - 缺少推送通知权利

时间:2016-03-22 16:06:43

标签: ios xcode xamarin certificate

当我尝试将我的应用程序上传到TestFlight

时,Apple一直向我发送这封邮件

缺少推送通知权利 - 您的应用似乎包含用于向Apple推送通知服务注册的API,但应用签名的权利不包含“aps-environment”权利。如果您的应用使用Apple推送通知服务,请确保在配置门户中为推送通知启用了您的应用ID,并在使用包含“aps-environment”权利的配置配置文件对应用进行签名后重新提交。有关详细信息,请参阅“本地和推送通知编程指南”中的“供应和开发”。如果您的应用不使用Apple推送通知服务,则无需执行任何操作。您可以从将来的提交中删除API以停止此警告。如果您使用第三方框架,则可能需要与开发人员联系以获取有关删除API的信息。

我正在尝试使用推送通知。

我的App ID看起来像这样。

我的配置文件设置为使用该应用程序ID。

那我怎么可能做错了? 如果XCode使用正确的配置文件,我该如何检查?

编辑我正在使用Xamarin Studio,因此我必须在XCode中正确设置配置文件

2 个答案:

答案 0 :(得分:1)

获取开发人员构建

让您的开发人员为您提供使用普通“iPhone Developer”密钥签名的.IPA文件。他们一直这样做,以便在他们拥有的物理设备上测试应用程序

按顺序获取工具

您需要以下内容:

  1. “移动配置资料”
  2. “Entitlements.plist”
  3. “iOS分发证书”
  4. iReSign OS X应用程序(或者您可以使用命令行)
  5. <强> 1。移动配置文件

    从Apple开发者会员中心内的“iOS Provisioning Profiles”下载(或创建然后下载)。

    enter image description here

    <强> 2。权利Plist

    你实际上需要自己制作。您将需要两个值来生成所需的字符串。您需要App ID Prefix和Bundle ID。您可以在会员中心找到它们“证书,标识符&amp;个人档案“

    打开您喜欢的文本/代码编辑器并将其放入。然后更新以下代码中的两个值并将其另存为“entitlements.plist”。

    <?xml version="1.0" encoding="UTF-8"?>
    <!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
    <plist version="1.0">
    <dict>
        <key>aps-environment</key>
        <string>development</string>
        <key>get-task-allow</key>
        <false/>
    </dict>
    </plist>
    

    如果您不使用推送通知,则需要删除以下两行:

    <key>aps-environment</key>
        <string>production</string>
    

    第3。 iOS分发证书

    你应该已经安装了这个。如果没有,您可以通过Xcode或会员中心安装它。

    1. Xcode&gt;偏好&gt;帐户
    2. 查找或添加您的Apple ID,然后单击“查看详细信息”
    3. “+”“iOS发布”(或iOS开发),然后刷新(左下角)

答案 1 :(得分:0)

您是否尝试过明确设置希望Xcode使用的配置文件?

enter image description here

不要在那里使用“XC:*”,而是指定Xcode在为App Store上传构建代码时使用的确切配置文件。