2016-11-14 227 views
0

我试图让我的几个朋友来测试我的TestFlight应用程序。除了推送通知,这一切都很顺利。我似乎无法提取他们的推币。我进行了双重检查,他们已经授予应用程序许可以使用推送令牌。

在我看来,这一切看起来罚款:推送通知的iOS问题TestFlight

enter image description here

enter image description here

苹果并未但是发送以下电子邮件我上传的应用TestFlight后:

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


从TestFlight下载新的副本时,我能够提取自己的设备的Push令牌。
我不知道发生了什么,真的想解决这个问题。谁能帮我吗?
万一有帮助。这是我的代码:

func application(application: UIApplication, didRegisterForRemoteNotificationsWithDeviceToken deviceToken: NSData) { 

    let tokenChars = UnsafePointer<CChar>(deviceToken.bytes) 
    var tokenString = "" 

    for i in 0..<deviceToken.length { 
     tokenString += String(format: "%02.2hhx", arguments: [tokenChars[i]]) 
    } 

    Constant.pushToken = tokenString 

    if (KeychainWrapper.hasValueForKey("user_id")){ 
     let user = User() 
     user.id = Int(KeychainWrapper.stringForKey("user_id")!)! 
     ApiManager.sharedInstance.putPushToken(user){ (result, error) -> Void in 
      if error != nil { 
       //error 
      } else { 
       //success 
      } 
     } 
    } 
} 
+0

更改链接沙盒,从服务器端的苹果。 –

+0

结帐这样的:http://stackoverflow.com/questions/24044298/why-push-notifications-is-not-working-on-testflight?answertab=active#tab-top –

回答

1

您需要为此添加一个授权文件。在你的情况下,当你启用来自功能的推送通知时,它不会附加到你的项目。请关闭并打开推送通知选项。您可能会在项目中自动添加权利文件。

enter image description here

更新:是使用服务器沙箱 URL或disribution网址?

0

确保您与TestFlight beta测试分布图归档。

0
  • 检查您用于推送通知的服务。

  • 检查您是否已经注册为徽章通知服务|音响|警报。

  • 在receivedRemoteNotification添加一个调试器,并检查您是否能够得到通知。