一、前言
在前期完成 uni-app
实现 Android
原生APP-云打包集成极光推送(JG-JPUSH)操作后,接下来需要 uni-app
实现 IOS
原生APP-云打包集成极光推送(JG-JPUSH)。其操作步骤与Android端相差不多,实现细节略有不同。
二、资源
资源部分SDK
依赖与Android
相同。
需要额外新增的步骤是:生成IOS自定义基座需要IOS开发者证书,需要提前准备好。
三、集成
集成操作与Android
相同,这里不再赘述。
四、遇到的问题及解决措施
4.1 IOS开发者证书无推送权限
在制作IOS
自定义基座时,提示如下错误信息:
此错误的原因是在新版本XCode
编译环境中会校验profile
文件中是否配置使用Push功能。
如果应用中添加了“Push(消息推送)”模块(HBuilder
的manifest.json
文件“模块权限”->“模块设置”
中配置),profile
文件中则必需配置添加“Push Notifications
”能力。
针对以上问题,有以下两种解决方案:
- 删除Push功能,即在HBuilder的
manifest.json
文件“模块权限”->“模块设置”
中配置删除“Push(消息推送)”
模块;如果手动修改过manifest.json
文件,请切换到源码视图,将permissions
下的所有push
节点数据都删除。
- 更新
profile
文件,操作方法如下:1. 确保使用的
App IDs
打开“Push Notifications
”服务
登录苹果开发者网站,输入开发者账号、密码并登录;
左侧选择“
Certificates, IDs & Profiles
”,打开iOS证书管理界面;左侧“
Identifiers
”栏下选择“App IDs
”,打开应用ID管理界面;在右侧ID管理列表中选择需要使用的应用标识;
点击“Edit”按钮,在打开的服务列表中选中“
Push Notifications
”服务,点击“Done”保存;2. 重新生成
profile
文件
左侧“
Provisioning Profiles
”栏下选择“Distribution
”,打开发布profile
管理界面;在右侧
profile
管理表中选择需要更新的profile项;点击“Edit”按钮,打开
profile
编辑页面;确认配置项正确,点击“Generate”按钮重新生成profile文件;
3. 验证方法 简单验证
profile
文件是否配置Push
功能的方法是使用记事本打开profile
文件,搜索是否存在“aps-environment
”。
如果存在则表明配置Push
功能正确,重新提交云端打包即可。
提示⚠️:对于付费打包的用户,若第一次已经提示开发者证书无推送权限时,在未增加推送权限前就不要重复组自定义基座了,否则会重复扣费!
4.2 manifest中并没有配置push模块。但云端打包ios就是一直报Code Signing Error: Provisioning profile “***” doesn’t support the Push Notifications capability.
在Dcloud问题库也搜到了以上问题,但是并没有给出合理的解决方案。
4.3 App云端打包时,ios报profile文件与私钥证书文件不匹配
解决方案:尝试重新生成。
4.4 证书不受信任
集成推送服务后,提示证书不受信任:
经查阅资料,发现生成的SSL证书是2022年1月27日之后更新的,之前安装的Worldwide Developer Relations G3过期了,故需要安装G4证书。
下载地址:点击下载
下载Worldwide Developer Relations - G4 (Expiring 12/10/2030 00:00:00 UTC)
然后,双击添加到“钥匙串访问”,证书就正常了。
4.5 极光控制台推送信息失败
极光控制台在推送时,显示推送失败,失败原因为:token获取失败。
解决措施:需要在manifest.json
配置文件-APP模块配置处,勾选Push(消息推送)
配置,但是切记不勾选下方的任一二级菜单!
注意⚠️:此处使用的HBuilder版本为3.6.4.20220922
,使用其他版本可能会导致配置后依然无法获取到推送信息(可能是HBuilder版本问题,目前官方未给出回复)。
五、iOS证书的类型和作用
5.1 iOS证书的类型和作用
iOS证书主要分为四类:
- iOS开发证书
- iOS发布证书
- iOS推送证书
- iOS企业证书
1、iOS开发证书
iOS开发证书是用于测试APP,在开发过程中安装到苹果手机真机测试APP的运行情况。
2、iOS发布证书
当APP开发测试好后上线就需要用到iOS发布证书,用iOS发布证书打包的ipa才能上传到App Store审核。
3、iOS推送证书
iOS推送证书是用于推送通知的,平时我们在手机的系统栏下拉看到的那些消息就是推送通知,如果要做这个功能就需要配置推送证书。
4、iOS企业证书
iOS企业证书需要企业开发者账号才能申请,用于无法上架App Store的苹果APP打包签名使用。
常用的就是以上这4种iOS证书,当你需要什么功能的时候就知道用哪个类型的iOS证书。
5.2 iOS证书的构成和有效性
iOS证书由两个文件构成。.p12
文件和.mobileprovision
文件
.p12
文件相当于公钥,.mobileprovision
文件相当于私钥。
开发证书.p12
文件苹果规定只能申请2个,发布证书.p12
文件只能申请3个!iOS证书配置.mobileprovision
文件是没有任何数量限制的!
.p12
可以共用,一个p12可以对应无数个.mobileprovision
文件!所以就算.p12
申请一个也够用了,可以对应创建无数套iOS证书!
所以对于证书数量的担忧是没有意义的!不会限制你上架多少个APP!
ios证书的有效期是一年,在我们软件的和开发者后台都能看到到期时间。
5.3 iOS证书可以删除吗,到期怎么更新
iOS证书是可以随意删除的(不管有没有到期),不会影响已经上架的APP。
如果你还在测试APP。删除了测试用的开发证书,APP将打不开,当然这个也没什么关系,测试APP是要不停打包的,重新申请证书打包重新安装就可以了。
iOS证书到期了需不需要重新申请呢,具体看需要,如果你要更新已经上架的APP,更新版本,删除到期的证书重新申请打包上传更新。
如果不更新APP,到期了不管他也没什么关系,不会影响上架了的APP。
六、思路拓展
以上只是实现了极光控制台手动推送,当用户任务某一节点完成时,需要做到主动推送消息,就涉及到主动调用推送API,API应用可参考API说明。