为了兼容iOS10的推送问题选用Xcode8打包。项目是一个老项目,项目里面有消息推送,之前也没有像网上说的开启Capablities中的Push Notifications功能,也没什么问题。
本来以为一切会像想象中的那样美好:打包-->上传--->下班回家吃饭。然而,总是有那么点扯淡的事情发生。
问题来了:1、上传后收到iTunes Connect的亲切问候(😡),邮件如下:
意思说我没开Capablities中的通知,于是乎我就开了
准备再次提交的时候突然发现少了那个xxxx.entitlements文件(此时我依旧用的Xcode7),Xcode7中打开Push Notifications并不会给你自动生成这个权限文件的。转换Xcode8,果然Xcode8自动给生成了这个
可是我是要上AppStore的啊,development怎么能性能,于是乎在网上一阵搜索,在官网的文献给出如下解释:
官方的是development和production,可是我改成production之后就出现了这么个问题
点击fix后entitlements文件又改成了默认的development了。我的发布证书和pp文件没问题啊,检查了所有的内容都OK啊,这是怎么个回事(😡)?看网上有人说默认就行,于是先试试上传看行不行,然后就打包继续上传。
我以为马上就可以了。果然我还是太年轻了。等啊等终于等到ApplicationLoader进度条蜗牛速度前进了🐌,然而居然给我弹出来这个错误(😡)
这什么意思,第一条是网络超时,第二条啥意思,又是一阵的搜索,终于在stackoverflow了,可是看楼主并没采用,我试了第一个回答者的答方案(虽然我的Xcode8是官网下载的正式包,我还是觉得应该试试😞),我删除了DerivedData下本项目所有目录,rebuild,然后重新上传。依旧本人用ApplicationLoader上传。可能是饿了吧😖,我再次上传居然忘了改build version,于是我有事漫长的等待中,网络超时😭。后来试试了Xcode8直接upload,终于我看到了希望了,进度条终于动了,果然是泡面起作用啊。
我以为这次总算该可以了吧,谁知道又收到了邮件😲,我权限加入不够
于是在plist文件加入下一上述几个权限设置
否则iOS10+会崩溃的,Apple在10以后权限控制更加严格了啊。
终于搞完了,龟速上传成功后,就是等待,没想到这次倒是个小意外,第二天早上就审核通过了,等待发布状态了。看来第一个问题中entilements文件中development也是可以通过的,现在就等发布后测试推送看是否成功了。不过据有通过的人说是可以收到推送的,这是为什么呢,那production和development还有啥区别?希望知道的小伙伴告知一下。
第一次写文章,跟流水账一样,😌,感觉我的语文老师会被气死的。