bug再现:
按照小米推送的开发文档配置:
1.小米开放平台设置证书
2.添加SDK
3.Link Binary With Libraries引入库(此处发现libresolv.dylib, libxml2.dylib, libz.dylib都没有.dylib后缀的文件,只有.tbd后缀的文件,我就添加的.tbd后缀的文件)
4.Capabilities选项卡打开Push Notifications
5.Other Linker Flags 中增加 -ObjC
6.件Info.plist设置MiSDKAppID、MiSDKAppKey、MiSDKRun
7.AppDelegate注册推送服务、设置代理方法
配置完成后发现收不到推送,然后重新设置证书、更新SDK等各种方法都尝试了,依然坚决地收不到推送。
又给小米推送提了两次工单,第一次回复说设备没有注册成功,但是控制台明明都打印出来token了(腊鸡小米推送);第二次回复让我更新SDK到2.2.14,我按照给我的SDK地址下载更新,发现下载下来的和我的一样都是2.2.13(腊鸡小米推送)。
找bug:
然后我就把我的项目和Demo按照开发文档一步步对比,找不同之处。终于被我发现了一个不同之处:
在Link Binary With Libraries引入的库那儿,Demo有libresolv.dylib, libxml2.dylib, libz.dylib三个.dylib后缀的文件,但是却是灰色的,灰色的表示引入的这几个库不存在,也就是说当时写Demo的时候是有这几个库的,可能是由于Xcode版本更新删除了这几个库。
然后就找解决方法,终于在https://www.cnblogs.com/icalabash/p/4719125.html找到方案了:
在Other Linker Flags中添加。依据其命名规则,去掉前缀lib,和后缀.dylib,添加前缀-l,即-lresolv。
网友评论