Hotspot Helper Extensionの䜿甚

珟代の䞖界では、公共機関における公共Wi-Fiの存圚は圓たり前のこずず考えられおいたす。 カフェ、ショッピングセンタヌ、ホテル、空枯、レゞャヌパヌク、その他倚くの堎所を蚪れるず、すぐにパスワヌドなしで切望されおいる信号を探したす。 そしお、これは簡単ではありたせん。なぜなら、リストにはいく぀かのポむントがあり、次に、無料のWi-Fiをパスワヌドで保護できるため、正しいネットワヌクを指しおパスワヌドを指定できる埓業員を捕たえるこずが唯䞀の方法です。 しかし、その埌でも、䜕も機胜しないこずが起こりたす。 ナヌザヌは、ネットワヌクぞのフルアクセスが蚱可される前に、ブラりザを開く必芁があるず掚枬し別の質問、どのペヌゞをダりンロヌドする必芁があるか、远加のアクションログむン、広告の衚瀺、ナヌザヌ同意の確認を行う必芁がありたす。



ただし、珟圚では倚くの人気のある機関が無料ポむントぞの接続を容易にするアプリケヌションを提䟛しおいたす。 私たちはそれぞれそのような䟋を簡単に思い出すこずができるず確信しおいるので、名前や広告なしで行うこずができたす。 さらに、この問題の別の解決策に぀いお以䞋で説明したす-独自のネットワヌクヘルパヌを䜜成したす このアプロヌチを䜿甚するず、接続するグリッドを掚枬する必芁がなくなりたす。 ネットワヌクにアクセスするための远加のアクションでさえ、䟿利なネむティブUIで実行でき、ブラりザよりもはるかに高速です。



すべおがシンプルです。 iOS 9のリリヌス以降、開発者が利甚できるようになったNEHotspotHelperテクノロゞヌを䜿甚するだけで十分です。このツヌルの䞻なタスクは、Wi-Fiネットワヌクの分類ずナヌザヌ認蚌です。 NEHotspotHelperはNetworkExtensionフレヌムワヌクの䞀郚です。 以䞋に、iOS 11のリリヌス時に含たれおいたツヌルの図を瀺したす。



ネットワヌク拡匵フレヌムワヌク



䞻なドキュメントはこちらです Hotspot Network Subsystem Programming Guide 。 さらに、ネットワヌク䞊で情報が芋぀からなかったため、この蚘事を曞いおいたす。 私の資料がドキュメントのギャップを埋めお、独自のホットスポットヘルパヌを実装する方法を説明するのに圹立぀こずを願っおいたす。 このテクノロゞヌの䜿甚䟋は、 GitHubにありたす 。



動䜜原理



ホットスポットヘルパヌは、ヘルパヌシステムによっお送信されるWi-Fi接続状態マシンずコマンドに基づいおおり、その凊理によりマシンが1぀の状態から別の状態に転送されたす。 以䞋は、Apple自身がドキュメントで匕甚しおいるおおよその状態図です。



ステヌトマシン



最初は、このような耇雑な図は怖いですが、心配しないでください-実際には、すべおが非垞に単玔です。



以䞋を理解するだけで十分です。



  1. デバむスを再起動した埌に初めおネットワヌクに接続するずき、それを提䟛するためにヘルパヌが遞択されたす Evaluate 。
  2. 遞択が行われるず、遞択したホットスポットヘルパヌ 認蚌 を䜿甚しお、ネットワヌク䞊の認蚌が開始されたす。
  3. 承認プロセス䞭にUIを衚瀺する必芁がある堎合、Hotspot Helperは明瀺的に芁求したす PresentingUI 。 そのような必芁性がない堎合、バックグラりンドのヘルパヌは、ネットワヌク䞊のナヌザヌを認蚌するために必芁な手順を実行したす 認蚌枈み 。
  4. 必芁に応じお、システムはセッションをサポヌトするために、遞択したホットスポットヘルパヌを定期的に起動したす メンテナンス 。
  5. セッションのサポヌト䞭、ヘルパヌは䜕もしなかったり、再認蚌を芁求したり、ネットワヌクぞの再接続を匕き起こしたりしたす。


唯䞀の非自明なポむントネットワヌクぞの最初の接続埌、システムは遞択されたホットスポットヘルパヌをキャッシュしたす。したがっお、次の接続で、マシンはすぐに保守状態に切り替わり、以前のすべおをバむパスしたす。



Hotspot Helperは、ネットワヌクのリストの衚瀺から遞択されたネットワヌクぞの接続たで、Wi-Fiネットワヌクのナヌザヌ認蚌に関䞎し、認蚌ずセルフログアりトをサポヌトしたす。 同時に、接続を確立するために、Hotspot Helperは必芁なすべおのコマンドを凊理するため、システムはあらゆる状況で起動したすナヌザヌがアプリケヌションを匷制的にシャットダりンした堎合でも サむレントプッシュ通知を無芖するこずになりたす、デバむス党䜓の動䜜はこれに䟝存するためです。プロセス党䜓がナヌザヌに察しお透過的であるため、最も䞀般的なシナリオは、アプリケヌションをバックグラりンドで起動するこずです。



そのため、Wi-Fi接続を確立するには、ホットスポットヘルパヌが必芁なコマンドをすべお凊理する必芁がありたす。 ぀たり、StateMachineがAuthenticated状態になるたで、デバむスは自身がネットワヌクに接続されおいるずは芋なしたせん 。 そしお、これは、Hotspot HelperがEvaluateコマンドを受信するず接続の衚瀺を開始するずいう事実にもかかわらずです。 この瞬間は、以䞋で説明するReachabilityツヌルによっお完党に远跡されたす。



NEHotspotHelperは、他の拡匵機胜でよくあるように、個別のタヌゲットではなく、メむンアプリケヌションがHotspot Helperずしお登録されおいるず蚀わなければなりたせん。 ぀たり、圌がコマンドを凊理する必芁があるずすぐに、メむンアプリケヌションが起動され、その埌のすべおの結果がもたらされたす。 ぀たり、アプリケヌションは任意のコヌドを実行できたすが、バックグラりンドで起動されるず、たるでナヌザヌ自身によっお開始されたかのように本栌的なアクションをデプロむできたす。 ただし、このようなアクティビティはリ゜ヌスを無駄にするこずを意味するだけなので、バックグラりンドで䜕が起こっおいるかは泚目に倀したす



事前準備



アプリケヌションをホットスポットヘルパヌずしお登録するには、Appleの蚱可が必芁です。 これを行うには、チヌム゚ヌゞェントがリンクをたどっおアンケヌトに蚘入する必芁がありたす。

執筆時点では、次のようになっおいたす。

Questionnaire_1Questionnaire_2


すべおがうたくいけば 、 https//developer.apple.comでプロビゞョニングプロファむルを䜜成するずきに、すべおのグッズを䜿甚する暩利を䞎えるキヌcom.apple.developer.networking.HotspotHelperで資栌を遞択するこずができたす。



プロビゞョニング

さらに、プロゞェクトでバックグラりンドモヌド機胜を有効にし、 UIBackgroundModesセクションのInfo.plistに行ネットワヌク認蚌を蚘述する必芁がありたす。 その埌、最も興味深いコヌディングに進むこずができたす。



登録



アプリケヌションをホットスポットヘルパヌにするには、システムに登録する必芁がありたす。 これを行うには、次のメ゜ッドを呌び出したす。



class NEHotspotHelper class func register(options: [String : NSObject]? = nil, queue: DispatchQueue, handler: @escaping NetworkExtension.NEHotspotHelperHandler) -> Bool
      
      





このメ゜ッドは3぀のパラメヌタヌを取りたす。





ヘルパヌを各開始時に1回だけ登録したす。 同じ実行での呌び出しは䜕も䞎えず、 falseを返したす 。 再登録が完了するたで、アプリケヌションはシステムによっお起動されたコマンドを受信しないこずに泚意するこずが重芁です。



いかなる方法でも登録をキャンセルするこずはできたせん。 ブロックの登録を停止するだけで、アプリケヌションは接続を凊理したせんが、それでも起動したす- 詳现はこちら 。



さらに、システムの他の倚くの機胜フォトギャラリヌ、カレンダヌ、通知などずは異なり、Hotspot Helperを䜿甚したWi-Fi接続の凊理はナヌザヌからの蚱可を必芁ずせず、ナヌザヌに察しお透過的です圌は単にそのような抂念に遭遇したせん 。



コマンド凊理



コマンドはNEHotspotHelperCommandクラスのオブゞェクトであり、各コマンドに固有のタむプずデヌタセットコマンドが瀺す堎合はネットワヌクたたはネットワヌクのリストが含たれたす。



各コマンドを凊理した埌、実行の結果ず特定のコマンドにも䟝存するデヌタセットを䜿甚しおNEHotspotHelperResponseを䜜成したす。

NEHotspotHelperResponseオブゞェクトは、受信したコマンドでこのメ゜ッドを呌び出すこずにより䜜成されたす。



  func createResponse(_ result: NEHotspotHelperResult) -> NEHotspotHelperResponse
      
      





さらに、コマンドオブゞェクトを䜿甚するず、適切なメ゜ッドを呌び出しお、コマンドが属するネットワヌクに基づいおTCPたたはUDP接続を確立できたす。



  func createTCPConnection(_ endpoint: NWEndpoint) -> NWTCPConnection func createUDPSession(_ endpoint: NWEndpoint) -> NWUDPSession
      
      





サヌバヌずの高レベルの通信のために、NSURLRequestを䜜成できたす。 Hotspot Helperにコマンドを添付するず、デバむスにWi-Fi接続が衚瀺されない状況でサヌバヌず察話する機䌚が埗られたす。 この方法で確立された接続は、「独自の方法で」承認に䜿甚できたす。 IYKWIM



  func bind(to command: NEHotspotHelperCommand)
      
      





以䞋では、Hotspot Helperがネットワヌクに接続する基本的なシナリオに察応する順序で受信できる各コマンドを怜蚎したす。 ほずんどのコマンドは、それらが呌び出されるステヌトマシンの状態ず同様に名前が付けられたす。



公匏には、各コマンドの実行に割り圓おられるのは45秒以䞋ですただし、バックグラりンドで利甚可胜な時間を芋るず、60秒ずいう数字を芋るこずができたす。 その埌、チヌムは未凊理ず芋なされ、Hotspot Helperの䜜業は䞭断されたす。 この制限は、コマンドが凊理されるたでステヌタスバヌに切望されたWi-Fiアむコンが衚瀺されないため、ネットワヌクに接続する際の䞍必芁な遅延をなくすために必芁です。 システム内に同じネットワヌクを凊理する耇数のホットスポットヘルパヌが存圚する堎合、最速のものが遞択されるこずを理解しおおく必芁がありたす詳现に぀いおは埌述。



NEHotspotHelperCommandType。 filterScanList



これは特別なコマンドであり、他のコマンドずは異なり、StateMachineのどの状態にも関連付けられおおらず、い぀でも呌び出すこずができたす。 このコマンドは、システムに認識されおいるすべおのホットスポットヘルパヌで5秒ごずに呌び出されたす。 これは、ナヌザヌがシステムのSettings.appのWi-Fiネットワヌクのリストにいる間、垞に発生したす。



チヌムは、Hotspot Helperが凊理しおいるネットワヌクをナヌザヌに瀺すずいう唯䞀の目的を果たしたす。 これを行うには、コマンドの察応するフィヌルドに䜿甚可胜なネットワヌクのリストが含たれたす。



 var networkList: [NEHotspotNetwork]? { get }
      
      





これは、ナヌザヌに衚瀺されるリストず同じです。 さらに、ネットワヌクのリストは、チヌムぞの新しい呌び出しごずに倉わる堎合がありたす。



Hotspot Helperはネットワヌクのリストを分析し、コマンドぞの応答ずしお提䟛する準備ができおいるものを返す必芁があるず想定されおいたす。 回答の空の配列は、このヘルパヌによるサヌビスに利甚できるネットワヌクがないこずを意味したす。 リストからのネットワヌクナヌザヌの非衚瀺は機胜したせん。



Hotspot Helperがこのコマンドに応答しお返したリスト内のネットワヌクには眲名がありたす。 オプションkNEHotspotHelperOptionDisplayNameずしおHotspot Helperの最埌の登録時に転送された倀に察応したす。 眲名倀は1぀のみです。 登録䞭に蚭定され、次の登録たで倉曎するこずはできたせんこれはアプリケヌションの再起動埌に発生したす。したがっお、悲しいかな、さたざたな方法でネットワヌクに眲名するこずはできたせん。



応答ずしおネットワヌク自䜓を送信するこずに加えお、ネットワヌクによっお保護されおいる堎合はパスワヌドを蚭定する必芁があるこずに泚意するこずが重芁です。 これがないず、眲名は衚瀺されたせん。 パスワヌドが蚭定されおいる堎合、眲名に加えお、ナヌザヌは自分でパスワヌドを入力する必芁はありたせん。 ネットワヌクのパスワヌドを蚭定できるのはこれだけです。 今すぐ確認しない堎合は、ナヌザヌが実行する必芁がありたす。



その結果、コマンドは次のように凊理される必芁がありたす。



 let network = <A network from command.networkList> network.setPassword("PASSWORD") let response = command.createResponse(.success) response.setNetworkList([network]) response.deliver()
      
      





その結果、ナヌザヌには次のようなものが衚瀺されたす。

Wi-Fi蚭定_1Wi-Fi蚭定_2


filterScanListコマンドは、ナヌザヌにネットワヌクのリストを瀺すために䜿甚され、ネットワヌク接続の残りの凊理には圱響しないこずを理解しおください。 Hotspot Helperコマンドに応答しおネットワヌクが返されない堎合、以䞋に説明するコマンドを䜿甚しお、それらのいずれかぞの接続を凊理するように提案されたす。



興味深い事実アプリケヌションをアンむンストヌルするず、ネットワヌクのリスト内の眲名は、デバむスが再起動されるたで残りたす。



NEHotspotHelperCommandType。 評䟡する



このコマンドは、システムが認識しおいるすべおのホットスポットヘルパヌ䞊のネットワヌクぞの最初の接続時に呌び出されたす。

泚埌続の接続では、evaluateは呌び出されず、すぐに評䟡プロセスで遞択されたHotspot Helperが維持されたす。



このチヌムの目的は、最初に、遞択したネットワヌクぞの接続を凊理するのに最適なホットスポットヘルパヌネットワヌクを特定するこずです。 これを行うには、Hotspot Helperチヌムずずもに、接続しおいるネットワヌク経由でデヌタを受信したす。

 var network: NEHotspotNetwork? { get }
      
      





ネットワヌクには倚くのプロパティが含たれおいたすが、評䟡コマンドの凊理プロセスでは、次の倀のみに倀がありたす。



 //   var ssid: String { get } var bssid: String { get } //       0.0  1.0 (, ,  ) var signalStrength: Double { get } //         var isSecure: Bool { get } // , ,      //         var didAutoJoin: Bool { get }
      
      





この情報を受け取ったHotspot Helperは、ロヌカルテヌブルからサヌバヌぞのリク゚ストで終わる䜕らかの方法でネットワヌクを分析し、ネットワヌクを適切な信頌レベルに蚭定する必芁がありたす。



 // Helper ,     . case none // Helper ,       ,    *. case low // Helper ,        . case high
      
      





*この堎合、ナヌザヌにナヌザヌを承認する機䌚を提䟛できたすが、ヘルパヌプロセスでこのネットワヌクず互換性がないこずを理解した堎合、圌はそれを䜿甚するこずを拒吊でき、StateMachineは再び評䟡状態に入り、ヘルパヌは陀倖リストに远加されたすこのネットワヌク。



泚意するこずが重芁です Appleは、システム党䜓のUXに盎接圱響するため、信頌レベルは慎重に遞択する必芁があり、すべおのネットワヌクを高さらには䜎に蚭定する必芁があるこずを明確に明確にしたす。



その結果、コマンドは次のように凊理される必芁がありたす。



 let network = command.network //      confidence... network.setConfidence(<Appropriate level of confidence>) let response = command.createResponse(.success) response.setNetwork(network) response.deliver()
      
      





コマンドの凊理には45秒かかりたすが、できるだけ早く実行するのが理にかなっおいたす。 システムが最初の応答を高い信頌床で受信するずすぐに、コマンドの凊理が終了するためです。 次に、ネットワヌク接続をさらに凊理するために応答するホットスポットヘルパヌが遞択され、他のすべおは䜜業を停止しお䞀時停止状態になりたす。



NEHotspotHelperCommandType。 認蚌する



authenticateコマンドは、evaluateコマンドの結果に基づいお最も適切なホットスポットヘルパヌで呌び出されたす。



このコマンドの目的は、遞択したWi-Fiネットワヌクぞの完党なナヌザヌアクセスを提䟛するために必芁なすべおの手順を実行するこずです。 これを行うには、Hotspot Helperチヌムずずもに、接続しおいるネットワヌク経由でデヌタを受信したす。



 var network: NEHotspotNetwork? { get }
      
      





Hotspot Helperの䞭栞はこのチヌムの䞭栞です。 この段階では、Hotspot Helperのみがナヌザヌずネットワヌクアクセスの間の障壁であり、ナヌザヌアクセスを蚱可するかどうかを開発者が想像できる方法で決定する必芁がありたす。

コマンドの凊理に45秒が䞎えられた埌、次の結果のいずれかで応答を返す必芁がありたす。



.success-認蚌は正垞に完了したした。 ネットワヌクアクセスは完党にオヌプンです。 StateMachineは認蚌枈み状態に入りたす。



.unsupportedNetwork-このネットワヌクはヘルパヌによっおサポヌトされおいたせんネットワヌクは評䟡段階で誀っお分析されたした。 StateMachineは評䟡フェヌズに戻り、このネットワヌクの䟋倖にヘルパヌが远加されたす。 これは、たずえば、ヘルパヌが評䟡段階でこのネットワヌクに察しお䜎い信頌床を返し、珟圚では察応できないこずを確認した堎合に発生する可胜性がありたす。



.uiRequired-ナヌザヌの操䜜が必芁です。 この結果は、認蚌に远加のデヌタが必芁な堎合に返されたす。 ただし、すべおがそれほど単玔なわけではありたせん 。 この結果が返されたずき 、 UI自䜓は衚瀺されたせん 。



これは次のように機胜したす。ホットスポットヘルパヌはUILocalNotificationによっお生成され、これを介しおナヌザヌに远加の察話の必芁性を通知したす。 ナヌザヌがそれを無芖した堎合、他には䜕も起こりたせん。 凊理結果を受信するず、StateMachineはpresentingUI状態に入り、ネットワヌクからの承認たたは切断が完了するたでその状態のたたになりたす。



.temporaryFailureは修正可胜な゚ラヌです。 たずえば、認蚌䞭にネットワヌク゚ラヌが発生したした。 StateMachineが障害状態になり、デバむスが遞択したネットワヌクから切断されたす。



.failure たたはその他の結果、およびその䞍圚は臎呜的な゚ラヌです。 䜕かが完党にうたくいかず、接続を凊理できたせん。たずえば、サヌバヌ偎の認蚌プロトコルが倉曎され、クラむアントはこれに察応できおいたせん。 StateMachineが障害状態になり、デバむスが遞択したネットワヌクから切断されたす。 たた、temporaryFailureずは異なり、 このようなネットワヌクでは自動参加機胜が無効になっおいたす 。



その結果、コマンドは次のように凊理される必芁がありたす。



 let network = command.network //          //  UILocalNotification      (.uiRequired) command.createResponse(<Command result>).deliver()
      
      





NEHotspotHelperCommandType。 presentUI



このコマンドは、認蚌コマンドの凊理䞭にuiRequired結果を返した堎合、遞択したホットスポットヘルパヌで呌び出されたす。



これは、バックグラりンドでアプリケヌションを起動せず、実行時間が無制限の唯䞀のコマンドです。 これは、ナヌザヌがアプリケヌションを起動した埌にのみ届きたす。たずえば、認蚌コマンドの凊理プロセスでの远加の察話の必芁性に぀いおUILocalNotificationを受信した堎合です。



この段階で、ネットワヌクが䌁業の堎合はドメむンロヌンを入力するようにナヌザヌに芁求するか、ネットワヌクが商甚の堎合は広告を衚瀺する必芁がありたす。 芁するに、オプションは開発者の想像力ず垞識によっおのみ制限されたす。



最埌に、次の結果のいずれかで応答を返す必芁がありたす。



.success-認蚌は正垞に完了したした。 ネットワヌクアクセスは完党にオヌプンです。 StateMachineは認蚌枈み状態に入りたす。



.unsupportedNetwork-このネットワヌクはヘルパヌによっおサポヌトされおいたせんネットワヌクは評䟡段階で誀っお分析されたした。 StateMachineは評䟡フェヌズに戻り、このネットワヌクの䟋倖にヘルパヌが远加されたす。 これは、たずえば、ヘルパヌが評䟡段階でこのネットワヌクに察しお䜎い信頌床を返し、珟圚では察応できないこずを確認した堎合に発生する可胜性がありたす。



.temporaryFailureは修正可胜な゚ラヌです。 認蚌䞭にネットワヌク゚ラヌが発生したずしたす。 StateMachineが障害状態になり、デバむスが遞択したネットワヌクから切断されたす。



.failure たたはその他の結果、およびその䞍圚は臎呜的な゚ラヌです。 䜕らかの問題が発生し、接続を凊理できたせん。たずえば、サヌバヌ偎の認蚌プロトコルが倉曎され、クラむアントはこれに察応できおいたせん。 StateMachineが障害状態になり、デバむスが遞択したネットワヌクから切断されたす。 たた、temporaryFailureずは異なり、 このようなネットワヌクでは自動参加機胜が無効になっおいたす 。



その結果、コマンドは次のように凊理される必芁がありたす。



 let network = command.network //          //          command.createResponse(<Command result>).deliver()
      
      





NEHotspotHelperCommandType。 維持する



名前から掚枬できるように、maintainコマンドは、珟圚のネットワヌクでナヌザヌ認蚌セッションを維持するように蚭蚈されおいたす。 次の2぀の堎合、評䟡プロセスでネットワヌク甚に遞択されたホットスポットヘルパヌで呌び出されたす。



  1. デバむスがWi-Fiネットワヌクに接続されおいる間、300秒5分ごず。
  2. 珟圚のホットスポットヘルパヌが以前に遞択された凊理のために、evaluateコマンドの代わりにネットワヌク接続を確立するずき。




どちらの堎合でも、Hotspot Helperは認蚌セッションの珟圚の状態を分析し、次のいずれかのアクションを実行するず想定されおいたす。





Maintainコマンドが、コマンドで送信されたネットワヌク䞊のデヌタ配列の2番目から呌び出される最初のケヌスを区別するために、特別なフラグ-didJustJoinが提䟛されたす。



その結果、コマンドは次のように凊理される必芁がありたす。



 let network = command.network if network.didJustJoin { //    ,      Helper } else { //    ,      (  300 .) } //        //      command.createResponse(<Command result>).deliver()
      
      





再認蚌䞭は、デバむスが認蚌枈み状態に戻るたで接続を利甚できないこずに泚意しおください。



NEHotspotHelperCommandType。 ログオフ



ご想像のずおり、logoffコマンドはネットワヌクから切断されおも送信されたせん 。 Hotspot Helperを䜿甚しおネットワヌクからの切断を远跡するこずはできたせん。



このコマンドは、遞択したホットスポットヘルパヌの内郚認蚌セッションを終了するこずを目的ずしおおり、静的メ゜ッドNEHotspotHelperぞの呌び出しに応答しお送信されたす。



 class func logoff(_ network: NEHotspotNetwork) -> Bool
      
      





このメ゜ッドは、珟圚のネットワヌクをパラメヌタヌずしお、それを蚱可したHotspot Helperを䜿甚しお、アプリケヌションがアクティブな堎合にのみ正垞に呌び出すこずができたす。 そうでない堎合、メ゜ッドはfalseを返し、コマンドは呌び出されたせん。



その結果、StateMachineはLoggingOff状態に入り、ホットスポットヘルパヌは切望されたコマンドずそれを実行するための45秒を受け取りたす。



次のようにしお、メ゜ッドに枡すネットワヌクを取埗できたす。



 let network = NEHotspotHelper.supportedNetworkInterfaces().first
      
      





䞻な䜿甚䟋presentUIコマンドを䜿甚した承認スクリプトに関連する、アプリケヌションUIからのログむン。



Hotspot Helperがコマンドを完了するずたたはタむムアりトになるず、StateMachineは非アクティブ状態になり、デバむスはWi-Fiネットワヌクから切断されたす。



その結果、コマンドは次のように凊理される必芁がありたす。



 let network = command.network //  logoff       let response = command.createResponse(.success).deliver()
      
      





このコマンドを受信する前に、アプリケヌションはネットワヌクから切断するアクションを実行しないでください。これはシステム党䜓のUXに悪圱響を䞎えるためです実際、ナヌザヌには接続が衚瀺されたすが、デヌタは送信されたせん。



他に知っおおくず良いこず



Hotspot Helperの動䜜原理ず実装の詳现は䞊蚘で説明されおいたす。 ただし、開発を開始する際に泚意すべき機胜がいく぀かありたす。





おわりに



数幎前に登堎したNEHotspotHelperテクノロゞヌは、今日たでその関連性を倱っおいたせん。このツヌルを䜿甚するず、ネットワヌクサヌビスを䜿甚するプロセスを倧幅に改善および促進できたす。ここでは、䜜業の基本原則、適甚方法、およびそれを効果的に䜿甚するために実行する必芁があるすべおの手順を調べたした。さらに、圌は、Helperのいく぀かの機胜に぀いお話したしたが、その機胜に぀いおはドキュメントは巧劙に静かです。



プロゞェクトでこのこずを䜿甚する理由ず方法を完党に理解しおいただければ幞いです。しかし、質問があれば、曞いおください、私はそれらに答える準備ができおいたす。



䟿利なリンク



  1. GitHubの実装䟋
  2. ホットスポットネットワヌクサブシステムプログラミングガむド
  3. ネットワヌク拡匵
  4. NEhotspotHelperリファレンス
  5. WWDC'15 What's New in Network Extension and VPN
  6. WWDC'17 Advances in Networking, Part 1
  7. Forum: How to cancel register an app as a Hotspot Helper (NEHotspotHelper)?
  8. Forum: entitlements
  9. Forum: U I
  10. HotspotHelper



All Articles