1.最近运行老程序,有段代码获取苹果健康数据,莫名其妙的闪退了,看crash原因是*** Terminating app due to uncaught exception ‘NSInvalidArgumentException’, reason: ‘NSHealthShareUsageDescription must be set in the app’s Info.plist in order to request read authorization for the following types: HKQuantityTypeIdentifierStepCount’
看原因是权限字段未在info.plist中配置,忙去翻plist文件看,记得原来一直配置的好好的字段都在
Privacy - Health Share Usage Description
Privacy - Health Update Usage Description
懵逼中…
2.寻找解决办法
试试问题万能解决大法—重启Xcode,依然无果
那用排除法,老代码新问题,先去甩锅给系统,看系统更新设置啥的问题…
想起最近更新了ios12和Xcode10,找了个ios11的机器跑了代码试了下,果然没问题.
一边自己试验各种办法,一边baidu,google找方法,结果大多都是老的帖子讲添加权限字段在info里就好.
最后,翻到jinrui_w简书帖子将info.plist中权限描述,改为英语才好使
注意:貌似随便写英语也不好使,我试过要包含visit read "health"才好使
目前按此方法已解决,如有更好的办法,请指正
参考 :https://www.jianshu.com/p/0bd210adcf40