私は注意せず、サンドボックス トークンと本番デバイス トークンを同じ db テーブルに混在させています。これにより、本番アプリをインストールした一部のデバイスがプッシュ通知を受信できなくなります。
サンドボックス トークンとプロダクション トークンを db テーブルから分離する方法は? あなたの助けは大歓迎です!! ありがとう!
私は注意せず、サンドボックス トークンと本番デバイス トークンを同じ db テーブルに混在させています。これにより、本番アプリをインストールした一部のデバイスがプッシュ通知を受信できなくなります。
サンドボックス トークンとプロダクション トークンを db テーブルから分離する方法は? あなたの助けは大歓迎です!! ありがとう!
おそらく、何らかの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が作成されます。