项目都迭代了好几个版本,这几天遇到一个同事的4s(9.3.5系统)和两位用户从App Store不能下载应用的情况,从网上找的类似于内存、网络、清浏览器历史记录、项目版本、app ID等常规方法去操作和修改,均没有解决部分用户无法下载的问题。
已上架应用是通过苹果审核了的,并且是部分用户能安装,部分不能安装,所以不存在安装包损坏的情况。
凡事反常必有妖。
借来同事的手机,真机调试时,跑不起来,一直报错。
看着像是info.plist文件有一个扩展属性不支持此手机,在小伙伴的分析帮助下 ,将项目中的iOS10推送通知的整个target删掉,居然跑起来了耶~
但是 ,我觉得一切都很奇怪,难道iOS10的推送通知一定要在iOS10系统下才能安装嘛,明明我写了对应的注册推送通知的方法啊。
然后,我就将之前的操作全部撤销,开始用不同系统的模拟器开始调试了。
大前提 “系统的deployment target = 8.0”
当我用iOS9.3.5的4s、5s、6s运行时,编译能通过,但是不能运行,一直报The operation couldn’t be completed. (LaunchServicesError error 0.)。
又按照网上的方法
第1种方法.点击当前的模拟器,点击IOS Simulator->Reset Content and Settings...->Reset,然后会重置模拟器,再编译代码可登录模拟器成功
第2种方法.点击Xcode->Product->Clean
第3种方法.将模拟器上的当前运行的app删除,再重新加载(长按模拟器的屏幕,点击当前报错的app 删除)
第4种方法.将/Users/weichangchen/Library/Developer/Xcode/DerivedData这个目录下的文件全删除百分百有效.
依然还是跑不起来。
不禁开始怀疑 :
难道是说 iOS10的推送通知,系统必须最低支持iOS10嘛 ?
就是这个时候 ,我开始想到了一个大前提 -> iOS10的推送通知,那么deployment target必然要>=iOS10。点开以前生成的两个iOS10推送通知的target,其中一个target赫然一个大大的8.0
所以 同学们 如果再碰到“应用无法安装”,不妨看看是不是自己将项目中其他target的deployment target设置为了10.0以下。
推送通知这个是我早就写好了的,不知道什么时候手残改动了也没改回去。
还是忍不住骂自己一句 zz--。