应用研发平台EMAS 脚本测试了,可以收到推送,生产上的app收不到推送,那问题出在哪里,该如何解决?
我用控制台发送的消息id
appKey:333411977
消息id:8083792529690624
设备id:950120b49cfe41b392dd246edd54b25f
CERT_FILE=/Users/humiaomiao/work/12-8zhengshu/push/prod/prod.p12
CERT_PASSWORD='iDingxiao701)'
SANDBOX=false
BUNDLE_ID=com.idingxiao.net
DEVICE_TOKEN=ce60d70e4b8304a5de76a0d30af00e47868ec4fc86a4db8aba56cbfdbbdaa2bb
if [ "${SANDBOX}" = true ]; then
HOST=api.sandbox.push.apple.com
else
HOST=api.push.apple.com
fi
curl -v \
-d '{"aps":{"alert":"Test Push Message! --EMAS"}}' \
--cert-type P12 \
--cert ${CERT_FILE}:${CERT_PASSWORD} \
-H "apns-topic:${BUNDLE_ID}" \
https://${HOST}/3/device/${DEVICE_TOKEN}
查的原因是:DeviceTokenNotForTopic。DeviceToken和当前的bundleID不匹配。检查下控制台的bundleId 和 包的bundleId 是否一致。
此回答整理自“应用研发平台EMAS开发者交流群”。
将App上传App Store前,可以在注册的测试上,运行Ad Hoc环境的App,用以测试App生产环境的功能,包括生产环境的远程推送通知。
注册测试设备
每个开发者账号支持注册同一类型设备100个,用于真机测试,开发者对该流程都比较熟悉,在此不多做介绍。若不了解,可参考《苹果官方文档 - 注册测试设备》。
归档Ad Hoc App
Xcode选中App对应Target,Device选中Generic iOS Device;
Product > Archive,若有警告报出,请Fix后再做归档。
导出Ad Hoc App并签名
测试者不一定都有Xcode开发环境,需要生成iOS App file,即.ipa文件。
选择Window > Organizer,打开Archives organizer,并选中上述的App归档。
单击Export,选中Save for Ad Hoc Deployment,并单击Next。
在弹出的窗口中,选中开发组。
设备支持选择,根据需要选择支持的设备范围。
选择Rebuild from bitcode,单击Next。
输入文件名后,点击Export将.ipa导出到指定目录。
安装Ad Hoc App
Xcode Window > Devices,选中设备。
Installed App列表,单击+。
选中对应的.ipa文件并打开。
Ad Hoc App 生产环境通知测试
若Bundle Id和测试App相同,建议先将开发环境的App卸载,然后再安装Ad Hoc App。
通过控制台排查系统,可以查看指定设备的信息,包括设备上报的deviceToken,开发环境和生产环境App获取的deviceToken是不同的。
确认生产环境deviceToken上报到推送系统后,基于控制台或OpenAPI推送生产环境通知。
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。