ユーザーが選択した一定の間隔 (5 分、10 分、30 分、1 時間) でユーザーの位置を追跡する (そしてサーバーに送信する) アプリを提出しました。アプリはバックグラウンドでも動作する (リクエストを送信する) 必要があり、私はそれを として宣言しましたUIBackgroundMode = location
。バックグラウンドで一定の間隔でリクエストを送信できます。Apple はそれを拒否し、次のように提案しました。
お客様のアプリはバックグラウンド モードを使用していますが、そのモードを永続的に実行する必要がある機能が含まれていないことがわかりました。この動作は、App Store レビュー ガイドラインに準拠していません。
あなたのアプリは、Info.plist の UIBackgroundModes キーで位置情報のサポートを宣言していますが、永続的な位置情報を必要とする機能が含まれていません。
アプリがバックグラウンドにある間にリアルタイムの位置情報の更新を永続的に使用する必要がある機能を追加するか、UIBackgroundModes キーから「位置情報」設定を削除することが適切です。アプリケーションが永続的なリアルタイムの位置情報の更新を必要としない場合は、重要な変更位置情報サービスまたは地域監視位置情報サービスを使用することをお勧めします。
これらのオプションの詳細については、位置認識プログラミング ガイドの「重要な変更位置情報サービスの開始」および「形状ベースの領域の監視」セクションを参照してください。
ロケーション バックグラウンド モードを使用する機能を追加することを選択した場合は、アプリケーションの説明に次のバッテリー使用に関する免責事項を含めてください。
「バックグラウンドで実行されている GPS を継続して使用すると、バッテリーの寿命が大幅に短くなる可能性があります。」
場所を大幅に変更してUIBackgroundMode
からキーを削除するInfo.plist
と、アプリはバックグラウンドで強制終了され、イベントが発生した場合にのみ起動します。しかし、たとえば5分ごとにサーバーにリクエストを送信する必要があり、アプリはバックグラウンドで強制終了されます(ユーザーが移動せず、イベントがtrigger = no
サーバーに送信されたリクエストではないとしましょう)。