iOS9からGKSession over Bluetoothが無効に
ユーザの方からおんぷ先生アプリが接続できないという報告があり調べていたところ、iOS9からGameKitのGKSessionがBluetoothでは利用できなくなっていることがわかった。
Bluetooth over GKSession or MultipeerConnectivi… | Apple Developer Forums
もともと iOS7から deprecated にはなっていたのだが、iOS9からはGKSessionがサポートしていたBluetooth上で使えなくなっているとのこと。
しかし同じLAN内だとWi-Fiではつながってしまうので、発見が遅れてしまった。
かわりに MultipeerConnectivity を使うことが推奨されているのだが、MultipeerConnectivity FrameworkはiOS7からのサポートなので、iOS5までしかアップデートできないiPad1はサポート外となってしまう。
アプリの設定で GKSessionとMultipeerConnectivityを切り替えて両方サポートすることも考えたが、iPad1では今のアプリを使い続けることもできるし、もし要望があればGKSession版を別途公開もできるということで MultipeerConnectivity に切り替えることにした。
当初、MCBrowserViewController や MCAdvertiserAssistant を使って実装していたが、UIがローカライズされていなかったり、問題が起きたときに調査しづらいので、結局 MCNearbyServiceBrowser や MCNearbyServiceAdvertiser などの少しローレベルなクラスを使って実装した。
[iOS 7] P2P 通信を手軽に実現する Multipeer Connectivity Framework を使ってみる | Developers.IO → これはホストとクライアントの区別なく書かれているので、わかりづらいことが判明。
第 3 回・iOSでMultipeerConnectivityを実装してみよう! | ギャップロ → のほうがわかりやすい。
Nearby Networking with Multipeer Connectivity – WWDC 2013 – Videos – Apple Developer → 30分あたりから、MCNearbyServiceAdvertiser や MCNearbyServiceBrowserを使う説明が始まる。
また、上を目指すプログラマーのためのiPhoneアプリ開発テクニック iOS 7編は MultipeerConnectivity を20ページ以上使って説明している。
関連記事
-
-
[iPhone5] 使用開始5日目の感想
au iPhone5を発売日翌日(9/22)に購入してから5日経ったので感想を書いてみる。 し
-
-
おんぷちゃん for iPad にオンライン授業サポート機能を追加
コロナウィルスの影響で、うちの子どもたちのピアノレッスンもオンライン授業になりまし
-
-
Objective-C 2.0のプロパティで再びはまる
Objective-C 2.0のプロパティに関してはまったことがあり、これはちょっと詳しく知っておく
-
-
[iOS SDK] 処理中の表示に便利 SVProgressHUD
以前 MBProgressHUD の記事を書いたが、たまに使うと使い方をすっかり忘れている。 やり
-
-
「iPhoneの動作が遅くなる場合があります」に対応する
年末年始は休みがあるのでブログ更新頻度が高い。以前から気になっていた、LogLocationsを起動
-
-
Topeak Ridecase for iPhone 7 Plus は2017年1月発売
(画像はiPhone 6 Plus 用 Ridecase)7月にTopeak Ridecase fo
-
-
iPhone XR予約開始
10/19(金)はiPhone XRの予約開始日だった。おそらく大量に作っているだろうということで予
-
-
おすすめ iPhone5用ケース iJacket
iPhone5購入時に同時に購入したケース(写真上)が1ヶ月程度でかなりみすぼらしい状態
-
-
Corona SDK を試してみた
どうやら結構いまさらなようだが、Corona SDK を試してみた。 Corona SDK は同じソ
-
-
Kickstarter で iPhone/Android で使える腕時計 Pebble に出資してみた
Kickstarter で28時間で100万ドルを調達したという Pebble E-Pape
