2012-07-10 39 views
0

我提供APNS在iOS和一切工作很好,問題是每次我運行它給我的設備令牌的應用程序,然後將其存儲在MYSQL數據庫的時間。iPhone設備令牌存儲不止一次在MYSQL數據庫

我的問題,這是怎麼回事是相同後,我在蘋果商店發佈應用程序,我該怎麼接收設備令牌每一個應用程序從用戶正在吃午飯的時間?

其他問題,如果應用程序是準備分發,我必須改變發展推SSL證書?如果是的話,它是同樣的步驟?

回答

1

設備令牌註冊每次啓動應用程序的時間,所以是的,你會在每次啓動,如果它在你的didRegisterForRemoteNotificationsWithDeviceToken方式發送到你的MySQL數據庫收到他們的設備令牌。這一點很重要,因爲如果用戶刪除應用程序/禁用該應用程序的推送通知,則在向其發送推送通知的嘗試失敗後,您可以將該設備標記標記爲「不活動」並將其從數據庫中刪除。 (Urban Airship有助於此功能以及所有其他推送功能,值得一看,如果您在當前實現中遇到更多麻煩)。

確保您在MySQL數據庫中使用的是UPDATE或等效命令,以便使用相同標記isn多次加入桌子並填滿。或者,您可以將「設備令牌」字段設置爲主,以便嘗試多次添加相同的令牌將會失敗,但這樣更加混亂。

至於發展推證,是的,你必須將它更改爲生產許可證。開發證書僅允許您連接到Apple的沙盒APNS服務器進行測試和調試。在提交到App Store之前,您必須更改爲使用實時服務器的生產證書。該過程類似,您可以進入Provisioning Portal的App IDs部分,並在該應用程序的Configure部分中配置和下載Production Push證書,方法與開發人員所做的相同。

+0

謝謝,但是如何知道設備是否處於非活動狀態,請問 – 2012-07-10 23:54:42

+0

也可以使設備令牌爲唯一 – 2012-07-10 23:55:39

+1

再次,您必須使用[APNS反饋服務](http://developer.apple.com/庫/ IOS /文檔/ NetworkingInternet /概念/ RemoteNotificationsPG/CommunicatingWIthAPS/CommunicatingWIthAPS.html#// apple_ref/DOC/UID/TP40008194-CH101-SW3),並編寫代碼來處理多次失敗推到一個令牌。例如,在表中包含一行,如「failedPushes」,每次推送該令牌失敗時增加該值,或者如果推送成功,則將其設置回0。如果連續失敗X次,請將該標記標記爲不活動並相應地處理它。此外,設備令牌對於該設備始終是唯一的! – andycam 2012-07-11 00:05:55