AppBoy iOS推送通知

AppBoy iOS推送通知,ios,apple-push-notifications,swift2.3,appboy,Ios,Apple Push Notifications,Swift2.3,Appboy,我正在尝试设置iOS推送通知,但在过去的4个小时里我一直在兜圈子,结果一无所获 该应用程序是用Swift 2.3编写的 我设置了AppBoy应用程序 Appboy.startWithApiKey("blahblahblahblah", inApplication:application, withLaunchOptions:launchOptions) 我可以看到在我创建的细分市场中有iOS应用程序的用户 在代码中,我注册通知并使用此代码将设备令牌发送到AppBoy ext

我正在尝试设置iOS推送通知,但在过去的4个小时里我一直在兜圈子,结果一无所获

该应用程序是用Swift 2.3编写的

我设置了AppBoy应用程序

Appboy.startWithApiKey("blahblahblahblah", inApplication:application, withLaunchOptions:launchOptions)
我可以看到在我创建的细分市场中有iOS应用程序的用户

在代码中,我注册通知并使用此代码将设备令牌发送到AppBoy

extension NSData {
  func hexString() -> String {
    // "Array" of all bytes:
    let bytes = UnsafeBufferPointer<UInt8>(start: UnsafePointer(self.bytes), count:self.length)
    // Array of hex strings, one for each byte:
    let hexBytes = bytes.map { String(format: "%02hhx", $0) }
    // Concatenate all hex strings:
    return hexBytes.joinWithSeparator("")
  }
}
但是,当我更新AppBoy中段上的过滤器以按“已启用推送”进行过滤时,我得到0个设备。(我甚至不确定Push Enabled是否是正确的过滤器?)

作为第二个问题。我上传到AppBoy的证书告诉我这是一个“通用证书”,是传递通知的最新方法。这是上传到AppBoy的正确证书吗

我已经创建了一个带有我创建的片段的活动,它显示为有一条消息传递

但无论我做什么,我的设备都不会有任何反应

我的设备上安装的应用程序版本是通过Crashlytics下载并安装的版本

谢谢

更新 好的,现在我得到的设备显示为“已启用推送”,但当我尝试发送推送通知时,开发人员控制台中的错误日志显示“错误发送到错误的推送令牌…”

我的证书上是这样写的


谁能解释我做错了什么?我已经按照每个故障排除指南进行了三次检查,并多次重复每个步骤。

如果您收到接受应用程序推送通知的提示,但Braze仪表板中的用户配置文件未按预期更新,在将设备令牌传递回Braze之前,请确保已正确格式化设备令牌。下面的代码和更多详细信息

如果您担心要将哪个证书添加到Braze仪表板,我建议您使用从apple开发者帐户下载的.p8。详细说明

容易犯的错误是忘记更新Braze仪表板和应用程序权限设置中的环境设置。当您在模拟器上开发和测试应用程序或在测试设备上加载应用程序时,请确保Braze仪表板中证书详细信息上方的环境设置设置设置为Development。一旦您将其移动到TestFlight和应用商店,您需要将其更新到生产环境


希望这能有所帮助。

如果您收到接受应用程序推送通知的提示,但Braze仪表板中的用户配置文件未按预期更新,请确保在将设备令牌传递回Braze之前正确格式化设备令牌。下面的代码和更多详细信息

如果您担心要将哪个证书添加到Braze仪表板,我建议您使用从apple开发者帐户下载的.p8。详细说明

容易犯的错误是忘记更新Braze仪表板和应用程序权限设置中的环境设置。当您在模拟器上开发和测试应用程序或在测试设备上加载应用程序时,请确保Braze仪表板中证书详细信息上方的环境设置设置设置为Development。一旦您将其移动到TestFlight和应用商店,您需要将其更新到生产环境


希望这能有所帮助。

我没有使用AppBoy,但根据中的描述。屏幕截图如果你上传一个通用证书,他们会使用生产网关。也许你需要上传一个老式的开发证书才能让他们使用dev网关?@Paulw11谢谢。最后,我设法使它与开发证书一起工作。我两次都试了很多次,但由于某种原因,上次我试的时候它成功了。我没有使用AppBoy,但根据中的描述。屏幕截图如果你上传一个通用证书,他们会使用生产网关。也许你需要上传一个老式的开发证书才能让他们使用dev网关?@Paulw11谢谢。最后,我设法使它与开发证书一起工作。这两种方法我都试了很多次,但由于某种原因,上次我试的时候效果很好。
func application(application: UIApplication, didRegisterForRemoteNotificationsWithDeviceToken deviceToken: NSData) {
  let token = deviceToken.hexString()

  Appboy.sharedInstance()?.registerPushToken(token)
}
func application(_ application: UIApplication, didRegisterForRemoteNotificationsWithDeviceToken deviceToken: Data) {
    let deviceTokenString = String(format: "%@", deviceToken as CVarArg)
    Appboy.sharedInstance()?.registerPushToken(deviceTokenString)
}