【问题标题】:AppBoy iOS push notificationsAppBoy iOS 推送通知
【发布时间】:2016-11-19 18:50:51
【问题描述】:

我正在尝试设置 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("")
  }
}

还有这个……

func application(application: UIApplication, didRegisterForRemoteNotificationsWithDeviceToken deviceToken: NSData) {
  let token = deviceToken.hexString()

  Appboy.sharedInstance()?.registerPushToken(token)
}

但是,当我更新 AppBoy 中的 Segment 过滤器以按“Push Enabled”过滤时,我得到 0 个设备。 (我什至不确定 Push Enabled 是否是正确的过滤器?)

作为次要问题。我上传到 AppBoy 的证书告诉我它是“通用证书”和最新的通知传递方法。这是上传到 AppBoy 的正确证书吗?

我已使用我创建的细分创建了一个活动,它显示为已传递一条消息。

但无论我什么都不做,都会传到我的设备上。

我设备上安装的应用版本是通过 Crashlytics 下载和安装的版本。

谢谢

更新

好的,所以现在我的设备显示为“已启用推送”,但是当我尝试发送推送通知时,开发者控制台中的错误日志显示“错误发送到错误的推送令牌...”

我的证书是这样显示的...

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

【问题讨论】:

  • 我没用过AppBoy,但是看中的描述。屏幕截图似乎如果您上传通用证书,他们将使用生产网关。也许您需要上传旧式开发证书才能让他们使用开发网关?
  • @Paulw11 谢谢。最后,我设法让它与开发证书一起工作。这两种方法我都尝试过很多次,但由于某种原因,我最后一次尝试它成功了。

标签: ios apple-push-notifications swift2.3 appboy


【解决方案1】:

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

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

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

一个容易犯的错误是忘记在 Braze Dashboard 和您的应用授权设置中更新环境设置。在模拟器上开发和测试应用程序或加载到测试设备上时,请确保将 Braze 仪表板中证书详细信息上方的环境设置设置为开发。将其移至 TestFlight 和 App Store 后,您需要将其更新为 Production。

希望这会有所帮助。

【讨论】:

    猜你喜欢
    • 2017-04-19
    • 2011-08-07
    • 1970-01-01
    • 2018-06-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多