2017-02-09 10 views
0

開発に使用されたことのないテストデバイスでは、 iOSのバックグラウンドフェッチは問題なく動作し続けます。バックグラウンドフェッチがすべてのデバイスで機能しない

しかし、開発に使用される他の2つのデバイスでは、フェッチが発生することがありますが、夜間でさえもしばしば発生しません。

誰も同じ奇妙な行動を経験しましたか? Wi-Fiが利用可能な場合にのみフェッチが行われますか、フェッチ動作に影響する他の要因がありますか?

+0

NSURLSessionを使用していますか –

+0

コードを共有できますか? –

答えて

0

このモードを有効にすることは、システムが アプリにバックグラウンドフェッチを実行する時間を保証するものではありません。システムは、 のアプリで他のアプリのニーズに合わせてコンテンツを取得する必要があり、 システム自体のバランスを取る必要があります。その情報を評価した後、システムは良い機会があるときには、アプリに時間 を与えます。

任意のコンテンツをダウンロードするときも、あなたがNSURLSession

を使用している確認してください、あなたがあなたのダウンロードを開始し、管理する NSURLSessionクラスを使用することをお勧めします。 このクラスを使用してアップロードを管理し、 タスクをダウンロードする方法については、URLセッションプログラミングガイドを参照してください。私は、データ保護は、私のWeb資格情報を読み取ることができる前にロックを解除するiPhoneを必要に切り替えていた:以下であることが判明し

https://developer.apple.com/library/content/documentation/iPhone/Conceptual/iPhoneOSProgrammingGuide/BackgroundExecution/BackgroundExecution.html

+0

「NSURLSession」は何故でしょうか? –

+0

NSURLSessionが提供するNSURLSessionは、アプリケーション間で共有するのではなく、セッションごとのキャッシュ、プロトコル、Cookie、および資格情報のポリシーを設定することができます。これにより、フレームワークとアプリケーションの一部のネットワークインフラストラクチャが互いに干渉することなく、独立して動作することができます。この利点は、バックグラウンドで個別に詳細な作業を行うことができます。詳細については、https://www.objc.io/issues/5-ios7/from-nsurlconnection-to-nsurlsession/ –

+0

を参照してください。AFNetworking 3.xではNSURLSessionを使用しています。それは問題ではなかった、私の答えを参照してください。あなたのお時間をありがとう! –

0

バックグラウンドフェッチを行う前に、これらの資格情報を確認してアプリがログインしているかどうかを確認しました。キーチェーンがロックされているため、このチェックに失敗しました。

バックグラウンドフェッチが散発的にしか機能しない2つのiPhoneでは、パスコード保護が有効になっていましたが、常に働いていたiPhoneではパスコード保護が無効になっていました。

私はこれが他の人に役立つことを願っています。 Here's私の悩みを議論している良い記事です。

関連する問題