项目中有xxx.Entitlements文件,Entitlements其实是一个配置文件,对于一些要开启的app功能,需要使用Entitlements文件来做配置。Entitlements文件管三个东西:iCloud、push notification、App沙盒(ios下app沙盒是自动配置的,并不需要Entitlements,所以这里实际上是指mac下的app沙盒)。
因为demo不需要用到xxx.Entitlements文件,所以就删除了xxx.Entitlements文件,这样做在模拟器上运行是没有任何问题的,但是在真机运行就会报如下错误:
Verify the value of the CODE_SIGN_ENTITLEMENTS build setting for target "XXXXXX" is correct and that the file exists on disk.
![](https://img.haomeiwen.com/i1643987/22eba86bd55b85c1.png)
解决办法如下:
还是在Build Setting中搜索 entitlements ,只需将路径删除即可正常真机运行,需要通知组件的话,再次添加通知组件即可,路径可以自动生成
![](https://img.haomeiwen.com/i1643987/c261c2cc95bec3f4.png)
需要说明的是 如果是个人注册的没交费的开发账号 点击 +Capability按钮是找不到通知组件的,原因是账号不支持通知组件。
注:为什么我们没有创建 xxxx.entitlements 文件,但是项目里却有 xxxx.entitlements 后缀的文件,下面就来说一下这个 .entitlements 的生成及作用。
其实原因很简单只要我们在 TARGETS --->Capabilities 里边打开了一些功能(如:push notification)就会自动生成xxxx.entitlements文件。如下图所示:
![](https://img.haomeiwen.com/i1643987/0cd7974ead16c805.png)
网友评论