带有 Rpush gem 的 IOS/SWIFT 推送通知:生产中的无效令牌 (8)

Posted

技术标签:

【中文标题】带有 Rpush gem 的 IOS/SWIFT 推送通知:生产中的无效令牌 (8)【英文标题】:IOS/SWIFT Push notification with Rpush gem: Invalid token (8) on production 【发布时间】:2017-06-16 23:46:26 【问题描述】:

我实际上是在我的项目中添加推送通知,我使用 ruby​​ on rails 和 Rpush 执行此操作。我的问题是,在本地一切正常,但在 Heroku 上的生产服务器上,我收到此错误 Notification 7 failed with error: Invalid token (8)

我按照此步骤在 Apple 上生成我的证书:developer apple certificate 这一步是在 Rpush Github 上获取我的 pem 文件:github.com/rpush

这是我在 ios 设备上推送通知的代码:

def push_notif_ios(user, ss)
  if !Rpush::Apns::App.find_by_name("ios-appName_#Rails.env")
    app = Rpush::Apns::App.new
    app.name = "ios-appName_#Rails.env"
    app.certificate = File.read(File.join(Rails.root, 'app/assets/config', "#Rails.env.pem"))
    app.environment = "#Rails.env" # APNs environment.
    app.password = "appPassword_#Rails.env"
    app.connections = 1
    app.save!
  end
  n = Rpush::Apns::Notification.new
  n.app = Rpush::Apns::App.find_by_name("ios-appName_#Rails.env")
  n.device_token = ss.supplier.user.device_code # 64-character hex string
  n.alert = "Nueva solicitud de appName de: #user.name, por el servicio de: #ss.service.name"
  # n.data =  foo: :bar 
  n.save!
end

在这里我肯定会得到一个正确的 device_token,它是从特定设备获得的,因为它正在开发中。

有人可以帮我解决这个问题吗?提前谢谢你。

【问题讨论】:

【参考方案1】:

无关,但如果这对您不起作用,您可以随时尝试One Signal

【讨论】:

【参考方案2】:

我不知道它是否可以帮助其他人,但我解决它的方式是:

    heroku pg:reset heroku run rake db:migrate heroku run rake db:seed

并且知道正在成功发送推送通知!

【讨论】:

以上是关于带有 Rpush gem 的 IOS/SWIFT 推送通知:生产中的无效令牌 (8)的主要内容,如果未能解决你的问题,请参考以下文章

使用 Rails RPUSH gem 为 APNS 编码 JWT 密钥

ios Swift 2:扩展 - 带有文本字段的警报

iOS Swift - 带有滑块的移动图像

带有约束的滚动视图中的iOS Swift stackview

带有基本身份验证的 iOS swift Web 服务调用

iOS Swift Core Data 生成带有项目命名空间的 NSManagedObject