用 Houston 在本地调试远程通知

2023-05-16

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’
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

用 Houston 在本地调试远程通知 的相关文章

  • Redis集群的原理和搭建

    前言 Redis 是我们目前大规模使用的缓存中间件 xff0c 由于它强大高效而又便捷的功能 xff0c 得到了广泛的使用 单节点的Redis已经就达到了很高的性能 xff0c 为了提高可用性我们可以使用Redis集群 本文参考了Rdis的
  • Java多线程爬虫爬取京东商品信息

    前言 网络爬虫 xff0c 是一种按照一定的规则 xff0c 自动地抓取万维网信息的程序或者脚本 爬虫可以通过模拟浏览器访问网页 xff0c 从而获取数据 xff0c 一般网页里会有很多个URL 爬虫可以访问这些URL到达其他网页 xff0
  • 关于js中的“Uncaught SyntaxError: Unexpected token

    我在js中为一个已经定义的数组重新定义新的一个维度的数组时 xff0c 调试器这样报错 只说结果 xff1a 肯定是在给已经定义的数组中的元素重新定义下一维度时 xff0c 多在前面加了一个 var 就像下面的这样 xff1a var gr
  • 学成在线--day03 CMS页面管理开发

    学成在线 第3天 讲义 CMS页面管理开发 1 自定义条件 1 1 需求分析 在页面输入查询条件 xff0c 查询符合条件的页面信息 查询条件如下 xff1a 站点Id xff1a 精确匹配 模板Id xff1a 精确匹配 页面别名 xff
  • Ubuntu下安装Inode后双击InodeClient无反映解决方法

    由于比较喜好linux编程环境 xff0c 所以准本一直使用linux 学校无线有时有有时没很不爽 xff0c 所以准本安装Inode xff0c 但是安装完Inode后双击是一直没反映 最后求助万能的百度 xff0c 谁知道百度的搜索不得
  • 使用GitHub托管网站,自定义域名

    1 如何使用GitHub托管 官网链接 xff1a 点击跳转 官网首页就有详细的搭建步骤 xff0c 总共5步便可搭建成功 访问 github用户名 github io 便可看到自己的网站 2 自定义域名的方法 1 申请一个域名 xff0c
  • ElasticsearchRestTemplate 基本使用

    随着数据量的增加和数据结构的复杂化 xff0c 传统的关系型数据库已经不能满足用户的需求 xff0c 而搜索引擎则成为了一种更加高效 可扩展的数据检索方案 而 Elasticsearch 则是一个流行的搜索引擎 xff0c 在 Java 生
  • Navcat无法连接mysql报错1449

    把mysql从5升级成8后第二次连接mysql就报错1449 不清楚什么原因 xff0c 反正肯定是升级数据库之后mysql用户被动了 xff0c 看了很多博客都没有用 xff0c 什么在navcat里新建用户 xff0c 数据库都连不上怎
  • Kafka —— java实现一生产者多消费者实例

    架构图 xff1a xff08 网图 xff0c 很通俗易懂了 xff0c 就不自己画了 xff0c 这里实现的是一个Producer 两个Consumer xff09 前提 xff1a 已经开启zookeeper 和kafka xff0c
  • 程序员玩游戏之三--天天爱消除非暴力脚本

    评论 xff1a 此款游戏成功在其好友排名上 好友的分数超过了你无疑会增加你的斗志 中级策略 xff1a 七手八脚多人一起点 这相当于多个CPU处理一个大任务了 xff0c 哈哈 终极策略 xff1a 自动化 机器总是比人快的多 你两个人一
  • 程序员玩游戏之四--娱网棋牌大连打滚子记牌器

    话说大连人都爱打滚子 xff0c 所以本人就做了一个打滚子记牌器 基本原理同 程序员玩游戏之一 自动对对碰 xff0c 故此处不再赘述 xff0c 只留下一张截图吧 代码请见资源地址 xff1a http download csdn net
  • 为SIGSEGV设置handler有用吗?

    背景 最近几天看到先辈们30年前留下了一块代码 xff0c 为SIGSEGV设置了handler xff0c 所以心中有了两个疑问 xff1a 为SIGSEGV设置handler有没有用 xff1f 能否跳过引起崩溃的那一句指令 xff1f
  • GDB调试技巧实战--为优化版release版本的函数寻找参数值

    在上一篇 GDB调试技巧实战 为release版本的函数寻找参数值 中 xff0c 我们探讨了一种为函数找参数的办法 xff0c 但是 xff0c 那是最理想的情况 编译时没有使用 fomit frame pointer 编译时没有开启优化
  • 通过实例了解uprobe及其对性能的影响

    前言 uprobe是用户空间探针的意思 xff0c 可以用来给用户程序的任何地方下探针 xff0c 不仅仅是函数粒度层级的 所以异常灵活 如果不熟悉ftrace uprobe 可参考以下文档 xff1a https www kernel o
  • bpftrace各维度捕捉SIGKILL信号

    一 问题 Ftrace 几乎适配任何主流内核版本 xff09 和 bpftrace xff08 要求内核版本4 1以上 xff09 中都有两个现成的脚本execsnoop bt killsnoop bt 我经常用他们从外部 xff08 不去
  • 图形化VS201x工程中的项目依赖关系

    目录 1 背景 2 入手 2 1 分析sln文件 2 2 给出正则表达式 3 程序 4 demo 5 补充 另外一种情况 6 补充 完整代码 1 背景 初次接手一个大工程时 往往因为复杂的项目依赖而遇到各种编译问题 同时如果能图形化其中的依
  • 深入应用python关键字yield--实现任务调度

    在此假设读者了解yield关键字的基本用法 如不了解请参照python文档或google之 大家知道遇到yield关键字时python会把当前的环境 xff0c 比如局部变量 全局变量等 xff0c 给记录下来以便以后能正确的继续向下运行
  • 刘慈欣(三体作者)写给200年以后的女儿的一封信

    原文地址 xff1a http blog sina com cn s blog 540d5e800101lcsb html 亲爱的女儿 xff0c 你好 xff01 这是一封你可能永远收不到的信 xff0c 我将把这封信保存到银行的保险箱中
  • 程序员玩游戏之二--篡改植物大战僵尸2的阳光值

    植物大战僵尸1几年前曾经风靡一时 xff0c 妇孺皆知 xff01 其续作奇幻时空之旅千呼万唤始出来 xff0c 不过从首发到目前都1月有余 xff0c 本人竟然还没玩过 于是昨晚下载了一个汉化版 本人系统为IOS5 0 1 xff0c a
  • 设计模式:生产者消费者模式

    在并发编程中使用生产者和消费者模式能够解决绝大多数并发问题 该模式通过平衡生产线程和消费线程的工作能力来提高程序的整体处理数据的速度 为什么要使用生产者和消费者模式 xff1f 在线程世界里 xff0c 生产者就是生产数据的线程 xff0c

随机推荐

  • activemq 应用实践——queue

    首先创建发送端程序SenderTestBase和接收端程序ReceiveTestBase 发送端 xff1a SenderTestBase java package test import java util Date import jav
  • swig包装c++步骤

    使用Swig封装C 43 43 到Python的心得 01 收藏 一 xff0e 简述 前一段时间由于工作需要重点学习了一下用Swig来封装C 43 43 代码到Python的知识 xff0c 期间遇到一些问题 xff0c 也有一些心得体会
  • PS CC2019 安装过程中遇到 Command line option syntax error. Type Command /? for Help.

    背景前言 昨天买了一块高漫WH850 的数位板 手绘板 板子都买了 肯定要安装PSCC 2019 了 但是在安装过程中遇到一个问题 那就是Command line option syntax error Type Command for H
  • 【上传】Nginx 上传文件

    本文包含知识点 xff1a 1 nginx服务搭建 2 nginx文件上传模块搭建 3 文件重命名服务搭建 3 nginx整体配置 4 测试 引言 一般可以应用在上传不是跟频繁的场景 xff0c 都可以采用Nginx上传文件 我们都知道 x
  • 推荐一些非常非常实用的linux命令(持续更)

    终生学习是我追求的目标 1 通过yum命令只下载rpm软件包但不安装 PS xff1a 适合在没有外网的情况下自制本地yum源 xff0c 前提是先做好镜像 方法一 xff1a yumdownloader 如果只想通过 yum 下载软件的软
  • Android 根据打包环境不同,显示不同的应用名称

    可以动态的设置应用名称和应用图标 1 在app的buid gradle中设置resValue 值 productFlavors span class token punctuation span dev span class token p
  • springboot整合guava实现本地缓存

    springboot整合guava实现本地缓存 一 Springboot缓存 SpringBoot支持很多种缓存方式 xff1a redis guava ehcahe jcache等等 二 guava介绍 Guava Cache 是 Goo
  • Java 中如何使用枚举来消除 if/else

    今天 xff0c 准备重新学习一下 Java 中的枚举类型 为什么现在要去重新学习呐 xff1f 因为在刚开始学习 Java 的时候 xff0c 对于枚举这一块的学习不太重视 xff0c 工作之后发现用到枚举的地方挺多的 xff0c 就有了
  • Lottie- 让Android动画实现更简单

    Lottie是什么 xff1f Lottie是Airbnb开源的一个支持 Android iOS 以及 ReactNative xff0c 利用json文件的方式快速实现动画效果的库 这么看可能很难理解 xff0c 接下来我将详细的讲解如何
  • 使用HC05蓝牙模块实现数据无线传输,看完包会

    由于需要将单片机采集到的数据无线传输到上位机 xff0c 考虑到成本原因 xff0c 故采用HC05蓝牙模块进行数据传输 一 开发工具 单片机 两块HC05蓝牙模块 一个USB转TTL模块 xff0c 电脑上安装串口调试软件 xff08 推
  • 【路径规划】(4) 蚁群算法,附python完整代码

    大家好 xff0c 今天和各位分享一下蚁群算法 xff0c 并基于 tkinter 完成一个旅行商问题 完整代码可以从我的 GitHub 中获得 xff1a https github com LiSir HIT Mathematical P
  • 利用Jekyll在GitHub Pages上部署博客

    开始之前 我觉得阮一峰的 搭建一个免费的 xff0c 无限流量的Blog github Pages和Jekyll入门 是一个很经典的入门 xff0c 每个Jekyll初学者都应该先去看一看 xff0c 另外 GitHub Pages官网以及
  • CSDN博客导出工具 Mac By Swift

    写这个的目的主要是用于了解Swift语言本身 xff0c 以及如何与Objc和第三方框架交互 需要先使用CSDN账号来登录 xff0c 可以导出所有的博客文章 xff0c 添加YAML头信息的时候 xff0c 会在头信息里面包含文章对应的标
  • 如何避免在Block里用self造成循环引用

    一般来说我们总会在设置Block之后 xff0c 在合适的时间回调Block xff0c 而不希望回调Block的时候Block已经被释放了 xff0c 所以我们需要对Block进行copy xff0c copy到堆中 xff0c 以便后用
  • Xcode及模拟器SDK下载

    现在不会有人想在 Xcode 里安装旧版的模拟器了 xff0c 本篇不再维护 如果你嫌在 App Store 下载 Xcode 太慢 xff0c 你也可以选择从网络上下载 xff1a Xcode下载 xff08 Beta版打的包是不能提交到
  • Mac下最好用的文本编辑器

    友情提醒 xff1a 图多杀猫 以前在Windows下一直用gVim xff0c 可以用键盘控制一切 xff0c 操作起来是又快又爽 xff0c 还支持一大堆插件 xff0c 想怎么玩就怎么玩 后来转Mac后 xff0c 也沿袭着之前的习惯
  • iOS8 Core Image In Swift:更复杂的滤镜

    iOS8 Core Image In Swift xff1a 自动改善图像以及内置滤镜的使用 iOS8 Core Image In Swift xff1a 更复杂的滤镜 iOS8 Core Image In Swift xff1a 人脸检测
  • 使用CocoaPods过程中的几个问题

    当把CocoaPods生成的workspace移动到上层目录时 xff0c 需要改下Pods xcconfig和工程里的一些设置 xff0c 就通常没什么难度 当遇到这个问题时 xff1a Could not automatically s
  • 仿网易云音乐的播放进度条

    仿网易云音乐的播放进度条 xff0c 有三种状态 xff1a 播放 暂停和拖动 xff0c 只是实现了动画和主要的交互逻辑 xff0c 其他细节 xff08 如暂停音乐的播放等 xff09 还需要自己完善 xff1a DKPlayerBar
  • 用 Houston 在本地调试远程通知

    Houston 的背景 Houston 在 GitHub 上的地址 xff1a https github com nomad Houston xff0c 作者又是Mattt Thompson xff0c 简直是惨无人道啊 xff0c 又高产