一直没太注意,最近项目上线才发现关于推送功能(Push Notifications),Xcode已经改变了设置方式,小小记录一下:
一、以前的设置方式是在 TARGETS --->Capabilities 里边选择是否开启一些功能,如下图所示
二、现在的设置方式,是在TARGETS --->Signing&Capabilities中选择,如下图所示:
当我们第一次在Targets->Capabilities/TARGETS --->Signing&Capabilities中选择Push Notification,会发现项目中自动生成了一个.entitlements 后缀的文件
先来说下这个entitlements是干什么用的:Entitlements 为你的App授予特定的能力以及一些安全方面的权限 ,例如iCloud, push notifications, Apple Pay, and App Sandbox,我们这里只讨论他在远程推送中是起到什么作用的
我们来看一下他的结构:
这是一个键值对的字典,key为APS Environment; value为development,这个value值是可以改的,不使用development这个值App也能收到通知(however, the provisioning portal assigns a value of development or production to the key, depending only on which activity you are creating the provisioning profile for),也就是说他会根据你的配置文件自动分配开发环境以及生产环境的值
如果App不小心删掉了这个文件,怎么重新添加呢?commond + N ,选择plist文件,后缀填.entitlements,然后在Building Setting里面添加一下路径