如何在不使用TestFlight的情况下测试macOS App生产环境推送通知?
无需TestFlight测试macOS App生产环境APNS推送的方法
答案是存在,你可以通过导出Developer ID签名的应用包完成测试,核心逻辑是Developer ID签名的macOS应用默认会使用生产环境APNS,不需要依赖TestFlight或App Store上架。
前置准备
- 已在Apple Developer后台为对应App ID配置生产环境APNS推送证书,且证书已正确导入当前打包设备的钥匙串中
- 项目Xcode配置的Signing & Capabilities中已添加Push Notifications功能,无需手动修改
com.apple.developer.aps-environment参数值,Xcode会根据签名方式自动适配
操作步骤
- 打开项目后在Xcode顶部菜单栏选择
Product->Archive完成应用归档 - 归档结束后在弹出的Organizer窗口选中对应归档包,点击右侧的
Distribute App按钮 - 分发方式选择
Developer ID选项,后续步骤选择Export(不要选择上传到App Store Connect) - 按照页面提示完成签名配置,导出签名后的
.app安装包 - 将导出的安装包拷贝到未安装过同Bundle ID调试版应用的测试Mac上安装运行
- 此时应用注册推送拿到的device token对应生产APNS环境,使用生产推送证书调用APNS生产接口发送推送即可验证功能是否正常
注意事项
- 不要直接用Xcode运行的调试版应用测试,调试版默认使用开发环境APNS,entitlement会被自动设置为development
- 测试前请完全卸载测试设备上所有通过Xcode直接安装的同Bundle ID应用,避免缓存导致环境判断异常
- 使用Xcode自动签名时,系统会自动生成对应生产环境的entitlement配置,无需手动调整参数
内容的提问来源于stack exchange,提问作者Sisky
相关产品推荐
相关产品推荐

