用 Houston 在本地调试远程通知

原创 2015年05月03日 02:04:07

Houston 的背景

Houston 在 GitHub 上的地址:https://github.com/nomad/Houston,作者又是Mattt Thompson,简直是惨无人道啊,又高产,又有质量这里写图片描述

Houston 能让我们在本地、甚至终端很方便的调试远程通知。


安装

首先在终端安装:

$ gem install houston

我第一次安装的时候报了错,但是第二次就安装成功了:

...
Installing ri documentation for houston-2.2.3
1 gem installed

安装成功后执行gem list命令可以看到 houston 和它的版本号:
这里写图片描述

然后也能执行apn命令了:

$ apn
error: undefined method `size' for nil:NilClass. Use --trace to view backtrace

准备证书

在正式的使用之前需要先准备好pem证书文件:

  1. Keychain Access里选择你的Push Services证书和通过它左侧的小箭头展开的私钥文件
  2. 选择这两个文件后,右键选择Export 2 items...
  3. 选择p12格式并将导出的文件命名为cert.p12
  4. 最后将这个p12文件转成pem文件
$ openssl pkcs12 -in cert.p12 -out apple_push_notification.pem -nodes -clcerts

如果你的 Keychain Access 里没有 Push Services 证书的话,你可能需要下载或创建一个:
1. 登录到 iPhone Developer Connection Portal(http://developer.apple.com/iphone/manage/overview/index.action )并点击 App IDs
2. 创建一个不使用通配符的 App ID ,这是因为通配符 ID 不能用于推送通知服务
3. 点击 App ID 旁的“Configure”,然后按下按钮生产 推送通知许可证。根据“向导” 的步骤生成一个签名并上传,最后下载生成的许可证
4. 通过双击 .cer 文件将你的 aps_developer_identity.cer 添加到 Keychain Access中
5. 添加后Push Services证书后就开始pem文件,步骤同上

然后就能在终端测试远程通知了。


发送远程通知

需要在apn命令里指定DeviceTokenpem证书路径。

普通文本

比如测试一下普通的文本通知:

$ apn push "<d10c67b0 079cfdc0 27b5dd81 2fd537ce 16831f40 ca55fa34 8b14ffde 626435f6>" -c ~/Desktop/apple_push_notification.pem -m "Hello"

成功后的终端提示:

1 push notification sent successfully

自定义参数

带参数的远程通知:

$ apn push "<d10c67b0 079cfdc0 27b5dd81 2fd537ce 16831f40 ca55fa34 8b14ffde 626435f6>" -c ~/Desktop/apple_push_notification.pem  -m "Hello" -d content-id=42

自定义多个参数

多个参数之间用逗号分隔:

$ apn push "<d10c67b0 079cfdc0 27b5dd81 2fd537ce 16831f40 ca55fa34 8b14ffde 626435f6>" -c ~/Desktop/apple_push_notification.pem  -m "Hello" -d content-id=42,icon=image.png

静默通知

$ apn push "<d10c67b0 079cfdc0 27b5dd81 2fd537ce 16831f40 ca55fa34 8b14ffde 626435f6>" -c ~/Desktop/apple_push_notification.pem  -s "" -n

静默通知要把 sound 设为空字符串,并且要启用content_available

终端可用选项

  • ‘-m’, ‘–alert ALERT’, ‘Body of the alert to send in the push notification’
  • ‘-b’, ‘–badge NUMBER’, ‘Badge number to set with the push notification’
  • ‘-s’, ‘–sound SOUND’, ‘Sound to play with the notification’
  • ‘-y’, ‘–category CATEGORY’, ‘Category of notification’
  • ‘-n’, ‘–[no]-newsstand’, ‘Indicates content available for Newsstand’
  • ‘-d’, ‘–data KEY=VALUE’, Array, ‘Passes custom data to payload (as comma-delimited “key=value” declarations)’
  • ‘-P’, ‘–payload PAYLOAD’, ‘JSON payload for notifications’
  • ‘-e’, ‘–environment ENV’, [:production, :development], ‘Environment to send push notification (production or development (default))’
  • ‘-c’, ‘–certificate CERTIFICATE’, ‘Path to certificate (.pem) file’
  • ‘-p’, ‘–[no]-passphrase’, ‘Prompt for a certificate passphrase’
版权声明:如需转载,请注明出处,谢谢!

iOS开发-本地通知与远程通知

App开发中经常会使用到推送,苹果和安卓区别是苹果用自己的APNS推送服务器,不论我们是集成第三方推送  还是用苹果系统的推送都要经过APNS推送服务器。 目前市场上比较流行的几个第三方推送: ...
  • u012701023
  • u012701023
  • 2016年12月05日 16:21
  • 2190

iOS远程通知详解

iOS远程通知详解
  • quanqinayng
  • quanqinayng
  • 2014年12月24日 14:33
  • 1220

swift远程通知

准备(一) 在https://developer.apple.com/上配置我们的远程推送证书 准备(二) 因为远程推送总的步骤为3步,1、向苹果请求得到deviceTo...
  • callzjy
  • callzjy
  • 2016年11月20日 03:45
  • 804

Hadoop 研发之远程调试详细剖析--WordCount V2.0

前言之前学习Hadoop时,曾经错误的以为开发的Hadoop程序必须在运行的Hadoop集群上才能运行和调试,基于这个错误认识,花费了较多的时间在mac上搭建伪分布式Hadoop集群和IDE集成开发环...
  • tterminator
  • tterminator
  • 2016年08月20日 17:25
  • 2315

(转)本地通知和远程推送

原博地址:http://blog.csdn.net/vbirdbest/article/details/52813539 ——本地推送通知 推送通知的作用? 在App退到...
  • wxdtan
  • wxdtan
  • 2017年01月06日 16:14
  • 598

VS2010进行远程调试C++

假设现在有A、B两台PC机。 VS2010安装在A机器上,也就是说A机器是开发使用的机器。 B机器是程序运行部署使用的机器,其IP为:192.168.1.129(局域网IP) 说明:如果B机器是外网I...
  • dsw846169600
  • dsw846169600
  • 2016年05月16日 14:41
  • 1169

visual studio 2013 远程调试配置实践

vs远程调试配置
  • Feng______
  • Feng______
  • 2015年11月15日 16:14
  • 8107

VS2013 利用msvsmon远程调试发布到服务器IIS上程序环境配置详解

最近在做项目中中引用了一个delphi写的生成excel的dll,在本地VS浏览导出Excel没问题,但是发布到服务器和本地IIS都不能导出,就想着看看到底是什么原因导致的,就捣鼓下本地VS远程调试发...
  • kongwei521
  • kongwei521
  • 2015年01月23日 11:18
  • 3850

使用Visual Studio 2015 进行远程调试

1.复制远程调试工具到远程电脑 根据远程电脑系统位数复制 x64 或 x86 文件夹到远程电脑任意位置 2.在远程电脑中打开复制后的x64 或 x86 文件夹,用管理员身份运行文件...
  • bailiningshuang
  • bailiningshuang
  • 2016年09月20日 10:54
  • 506

(九)Intellij 远程调试

题 how to tackle and debug issues in scenarios where they only occur in production (or other remote e...
  • lovesummerforever
  • lovesummerforever
  • 2015年12月17日 20:03
  • 4044
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:用 Houston 在本地调试远程通知
举报原因:
原因补充:

(最多只允许输入30个字)