Safari推送通知 - 即使正确,验证manifest.json中的哈希值也会失败

时间:2013-11-16 16:17:33

标签: safari apple-push-notifications

我根据Apple的Apple规范创建了一个包含相应文件的推送包。此清单文件表示存在的所有文件:

{
    "icon.iconset/icon_128x128.png": "78609fcff69688f969a38f957ac2f10fc79d6732",
    "icon.iconset/icon_128x128@2x.png": "78609fcff69688f969a38f957ac2f10fc79d6732",
    "icon.iconset/icon_16x16.png": "d348589e2cf37d8f23940f8545afe75a2e98b4ac",
    "icon.iconset/icon_16x16@2x.png": "d348589e2cf37d8f23940f8545afe75a2e98b4ac",
    "icon.iconset/icon_32x32.png": "e4418a1c5f2ecfbb702961515aaa65d5449b1c53",
    "icon.iconset/icon_32x32@2x.png": "e4418a1c5f2ecfbb702961515aaa65d5449b1c53",
    "website.json": "45be9c4a6f1bf96e27a9eecab219304b35c5ac24"
}

我已经在CLI上手动检查了sha1值,它们都是正确的,还有文件位置。然而,每当我尝试获得许可时,我仍然会从Safari中收到此错误:

{ '{"logs":': { '"Verifying hashes in manifest.json failed"]': '' } }

哪个也不是有效的JSON。任何想法为什么会失败?

2 个答案:

答案 0 :(得分:1)

我最近通过pushwoosh实现了推送通知。他们自动为我创建了包,我检查了他们是如何做到的。我的清单文件和你之间的唯一区别是在正常斜线之前的反斜杠。也许它可以为你带来不同。将此代码复制并粘贴到清单中(我已经添加了SHA1值):

{"icon.iconset\/icon_16x16.png":"d348589e2cf37d8f23940f8545afe75a2e98b4ac","icon.iconset\/icon_16x16@2x.png":"d348589e2cf37d8f23940f8545afe75a2e98b4ac","icon.iconset\/icon_32x32.png":"e4418a1c5f2ecfbb702961515aaa65d5449b1c53","icon.iconset\/icon_32x32@2x.png":"e4418a1c5f2ecfbb702961515aaa65d5449b1c53","icon.iconset\/icon_128x128.png":"78609fcff69688f969a38f957ac2f10fc79d6732","icon.iconset\/icon_128x128@2x.png":"78609fcff69688f969a38f957ac2f10fc79d6732","website.json":"45be9c4a6f1bf96e27a9eecab219304b35c5ac24"}

答案 1 :(得分:0)

我创建了一个小的ruby脚本,用于根据https://github.com/SymmetricInfinity/push_package/blob/master/lib/push_package.rb中的代码生成这些清单。

将脚本复制到包含icon.iconset目录和website.json的目录中。然后,您可以在该目录中运行ruby gen_manifest.rb,脚本将编写manifest.json。至少可能是一个完整性检查,看到一切都是正确的。脚本在这里:https://gist.github.com/adamvduke/7934457

如果您没有任何红宝石经验,请回复评论,我可以引导您完成它。