Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/113.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
iphone设备令牌在MYSQL数据库中多次存储_Iphone_Ios_Push Notification - Fatal编程技术网

iphone设备令牌在MYSQL数据库中多次存储

iphone设备令牌在MYSQL数据库中多次存储,iphone,ios,push-notification,Iphone,Ios,Push Notification,我在iOS中提供APN,一切正常,问题是每次运行应用程序时,它都会给我设备令牌,然后将其存储在MYSQL数据库中 我的问题是,在我在苹果商店发布应用程序后,这会是相同的吗?我是否会在每次用户午餐时收到设备令牌 另一个问题是,如果应用程序已经准备好分发,我是否必须更改开发推送SSL证书?如果是,步骤是否相同 每次启动应用程序时都会注册设备令牌,因此,如果在didRegisterForRemoteNotificationsWithDeviceToken方法中将设备令牌发送到MySQL数据库,则每次启

我在iOS中提供APN,一切正常,问题是每次运行应用程序时,它都会给我设备令牌,然后将其存储在MYSQL数据库中

我的问题是,在我在苹果商店发布应用程序后,这会是相同的吗?我是否会在每次用户午餐时收到设备令牌


另一个问题是,如果应用程序已经准备好分发,我是否必须更改开发推送SSL证书?如果是,步骤是否相同

每次启动应用程序时都会注册设备令牌,因此,如果在
didRegisterForRemoteNotificationsWithDeviceToken
方法中将设备令牌发送到MySQL数据库,则每次启动时都会收到设备令牌。这一点很重要,因为如果用户删除该应用程序/禁用该应用程序的推送通知,则在尝试向其发送推送通知的一定次数失败后,您可以将该设备令牌标记为“非活动”,并将其从数据库中删除。(有助于此功能和所有其他推送功能,如果当前实现存在更多问题,值得一看。)

确保在MySQL数据库中使用
UPDATE
或等效命令,以便同一令牌不会多次添加到表中并填充它。或者,您可以将设备令牌字段设为主要字段,以便多次尝试添加同一令牌将失败,但这会更麻烦


至于开发推动证书,是的,您必须将其更改为生产证书。Dev证书只允许您连接到Apple的sandbox APNS服务器进行测试和调试。在提交到应用商店之前,您必须更改为使用实时服务器的生产证书。过程与此类似,您可以进入资源调配门户的“应用程序ID”部分,然后在该应用程序的“配置”部分,以与开发版相同的方式配置和下载生产推送证书。

谢谢,但如何知道设备是否处于非活动状态,请,必须使用和写入代码来处理对令牌的多个失败推送。例如,在表中包括一行,如“FailedPush”,每次对该令牌的推送失败时递增该行,或者如果推送成功,将其设置回0。如果连续X次失败,则将令牌标记为非活动并相应地处理它。此外,设备令牌对于该设备始终是唯一的!