手动部署A2IPNS服务教程

A2IPNS/A2PNS是一个将Android上的推送信息转发至iOS的服务。由Android/iOS app和一个云端PHP服务所构成。

A2IPNS/A2PNS在最初设计时就考虑到了万一app/云服务后继无人维护的情况下,一般用户也可以自行搭建环境继续使用这个推送转发服务。本文将会教你如何部署自己的推送转发服务。

需要准备的东西:

  1. A2PNS:Android app,可在GooglePlay上获取,或者自行编译。Android app几乎无需配置直接编译即可安装使用,所以本文不再赘述。
  2. A2IPNS:iOS app,需要自行编译。需要付费的Apple开发者账户以及配置签名证书以及配置推送功能。
  3. PHP环境:推送服务需要每隔一段时间更新JWT信息,所以需要搭建一个PHP环境。PHP环境可本地搭建,也可以使用免费的云服务例如Oracle Cloud Always free

操作方法:

  1. Github上下载A2IPNS所有源码。
  2. 访问Apple开发者中心,进入Certificates, IDs & Profiles。
  3. Identifiers里创建A2IPNS app用ID(例如net.bi119aTe5hXk.A2IPNS,这个AppID需要和Xcode中设置一致)。Capabilities里勾选Push Notifications。
  4. Keys里创建新项目,Enabled Services里选择Apple Push Notifications service (APNs),下载保存好.p8文件,并记录KeyID。
  5. 将A2IPNS/web里的所有文件上传至云端服务器。服务器环境需要安装有PHP和Composer
  6. 将刚才保存好的.p8文件上传至该目录。
  7. 执行composer install或者composer.phar install
  8. 编辑jwt_data.php,需要指定.p8文件路径,kid(KeyID),开发者的TeamID,这两个信息都可以在刚才的Apple开发者Certificates, IDs & Profiles页面查到。
  9. http/https直接访问该路径,查看网页是否正常。
    • 例如:{“id”:”net.bi119aTe5hXk.A2IPNS”,”iat”:1685452823,”jwt”:”eyJ0eXAiOiJKV1QiLCJhbGciOiJFUzI1NiIsImtpZCI6IldVVTZOM0g1RlEifQ.eyJpc3MiOiJIUjY2U0dRRVo0IiwiaWF0IjoxNjg1NDUyODIzfQ.7H9PPZIDKk5aHgX7kZBBHFdyYkp0aZ9dCHY-fjvzDGkLoRtWVvatucx-aF4Dbdpvkoxaj5z-jsfxw55imaOdQA”}
  10. Android下打开A2PNS app,右上角菜单选择设置,最后一项【设定自定义验证令牌服务器URL地址】(Set custom authentication token server URL)里将以上的连接填入并保存。
  11. 回到Certificates, IDs & Profiles页面,在Profiles里创建新项目,根据需要选择Ad Hoc或者App Store(本地或者登记设备选择AdHoc,如果想使用TestFlight则选择App Store。由于A2PNS app本身配置不走推送服务的dev通道,所以除非使用自行编译的修改过的A2PNS app,否则不要选择和配置Development用的Profile),选择A2IPNS的AppID后生成Profile并下载,导入至Xcode。
  12. Xcode里配置使用刚才导入的profile进行编译并安装至iOS设备。
  13. 打开A2IPNS和A2PNS,按照说明使用QR码配对并测试推送是否能正常转发。

以上操作完成后即可使用A2IPNS/A2PNS服务进行推送转发了。

注意PHP服务器必须保持在线,而且iOS app需要每年更新Apple开发者证书后重新编译安装一次。

作者: bi119aTe5hXk

bi~

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注

:b1 :b2 :b3 :b4 :b5 :b6 more »

此站点使用Akismet来减少垃圾评论。了解我们如何处理您的评论数据