环境

  • Unity 2017.4.2f2
  • JPush 3.2.6
  • macOS 10.13.6
  • Xcode 10

文档

极光推送

fastlane

App Store Deployment - fastlane docs

SDK 下载

GitHub - jpush/jpush-unity3d-plugin: JPush’s officially supported Unity3d plugin (Android & iOS). 极光推送官方支持的 Unity3d 插件(Android & iOS)。

IDFA

IDFA 是什么?

如果应用内有广告显示,那么需要使用这个字段,以便支持广告追踪。

游戏不需要,所以无需支持。

iOS集成极光之后,提交审核IDFA配置 - 狮兄的技术博客 - CSDN博客

集成

大部分只需要按照官网文档照做即可,部分问题可以参考以下内容:


使用后处理脚本设置项目选项

Unity iOS Xcode自动打包-腾讯游戏学院


设置 mm 文件宏定义

Enable UNITY_USES_REMOTE_NOTIFICATIONS - Unity Answers


宏定义 Bug 介绍

Regarding UNITY_USES_REMOTE_NOTIFICATIONS and missing callbacks for push registration - Unity Forum


开启推送功能

“Missing Push Notification Entitlement” with sigh · Issue #6544 · fastlane/fastlane · GitHub

Unity API PBXProject.AddCapability 可以用于添加推送功能,要先准备好含有推送配置的 entitlements 文件。


清理图标数字角标

1
2
JPush.JPushBinding.SetBadge(0); // 设置 JPush 服务器中存储的角标(badge)值,该方法不会修改当前应用本地的角标值。
JPush.JPushBinding.SetApplicationIconBadgeNumber(0); // 设置应用本地显示的角标值。

当程序恢复运行时,需要清理角标数字。

调试

1
2
Failed to register for remote notifications:
未找到应用程序的“aps-environment”的授权字符串

是由于未在 entitlements 文件中配置 aps-environment 字符串。

注意:此错误提示与官网文档中的 code=3000 "未找到应用程序的“aps-environment”的授权字符串" 错误提示产生的原因不同。

About Entitlements

如果需要修改 apsenvironment 的值为开发环境或生产环境,可以参考 Enabling Push Notifications

apsenvironment 有效可用值为 developmentproduction


Not get deviceToken yet. Maybe: your certificate not configured APNs? or current network is not so good so APNs registration failed? or there is no APNs register code? Please refer to JPush docs.

未成功注册设备,注意后面的提示是成功注册并上传的,所以无需处理。


GitHub - shaojiankui/SmartPush: SmartPush,一款iOS苹果远程推送测试程序,Mac OS下的APNS工具APP,iOS Push Notification Debug App

使用此软件确定推送证书是否有效,克隆后使用 Xcode 运行。输入 keychain 密码时需要选择 Always allow,否则会不断提示输入密码。

注意如果一切正常,不会出现任何红色的错误提示,会提示消息发送成功,客户端会收到通知。