8

私は注意せず、サンドボックス トークンと本番デバイス トークンを同じ db テーブルに混在させています。これにより、本番アプリをインストールした一部のデバイスがプッシュ通知を受信できなくなります。

サンドボックス トークンとプロダクション トークンを db テーブルから分離する方法は? あなたの助けは大歓迎です!! ありがとう!

4

1 に答える 1

7

おそらく、何らかのUDID(バンドルIDとデバイスのMACアドレスをハッシュすることで独自のUDIDを作成できます)と、トークンが「開発」か「本番」かを示す2番目のフィールドを使用してデータベーステーブルにキーを設定する必要があります。 "トークン。3番目のフィールドは実際のトークンにすることができます。

didRegisterForRemoteNotificationsWithDeviceTokenデリゲートメソッドのアプリデリゲートでは、アプリが開発モードと本番モードのどちらで実行されているかを判断するロジックを追加し、UDIDとアプリが実行されている「モード」に基づいてデバイストークンでデータベースを更新できます。

コードは次のようになります。

- (void)application:(UIApplication *)application didRegisterForRemoteNotificationsWithDeviceToken:(NSData *)deviceToken 
{
// Update the device token record in our database
#if !defined (CONFIGURATION_Distribution)
   // Update the database with our development device token
#endif

#if defined (CONFIGURATION_Distribution)
   // Update the database with our production device token
#endif
}

これを行うには、プロジェクト->ビルド設定に移動する必要があります。[プリプロセッサマクロ]セクションにCONFIGURATION_と入力し、Enterキーを押します。これにより、ビルド構成ごとにプリプロセッサマクロが作成されます。この場合、私のビルド構成はAdHoc、Debug、Distribution、およびReleaseです。

CONFIGURATION_AdHoc、CONFIGURATION_Debug、CONFIGURATION_Distribution、およびCONFIGURATION_Releaseが作成されます。

于 2012-11-25T22:24:29.290 に答える