Google Nearby APIを使用したiOSアプリを作成中です。あるデバイスがサブスクリプションを開始し、近くの別のデバイス(両方のiOSデバイス)からパブリケーションをピックアップすると、サブスクライブしているデバイスが他のデバイスから解放されたパブリケーションを取得する可能性があることに気付きました(明らかにリリースされた私のアプリで)。公開するときにUUIDを送信しています。サブスクライバが受信した古い(つまり前の実行の)UUIDが確実に見えます。
https://stackoverflow.com/a/32540735には、「セッション」が10分のバケットに分割されていると説明されていますが、この問題はAndroidにのみ関連するようです。 iOS周辺がベータ版であることがわかりました。これはバグでしょうか?iOS端末でまだ受信している公開済みの出版物
アイデア?ありがとう。
問題は数分後に消えます。したがって、パブリケーションをnilに設定するだけでは十分ではありません。サーバーに通知するのに十分な時間を許す必要があります。ユーザーがアプリケーションを強制終了したり、バックグラウンドに置いた場合は不可能です。 – Urilicious
アプリがバックグラウンドにプッシュされたときにサーバーを正常に呼び出すことができるはずです([UIApplication -beginBackgroundTaskWithExpirationHandler:](https://developer.apple.com/library/ios/documentation/UIKit/Reference/UIApplication_Class/ #// apple_ref/occ/instm/UIApplication/beginBackgroundTaskWithExpirationHandler :)を実行して、実行時間が実質的に長くなるようにします。 しかし、パブリケーションがアクティブな間に殺された場合、私たちは何もできません。 公開オブジェクトへの別の参照がないことを確認できますか? –
私はそう信じています。私のAppDelegate.applicationDidEnterBackgroundでは、すべてのパブリッシャー、サブスクライバー、さらにGNEMessageManagerをnilに設定しているので、バックグラウンドにGNSアクティビティはありません(これはビデオ[ここ](https: //www.youtube.com/watch?v=hultDpBS22s)、Android onPauseでの公開を解除し、登録を解除すると言っています)。私のデバッグでは、当時の私の出版社はゼロになっています。 – Urilicious