2017-02-06 34 views
5

Her iki aygıt da reklamları ve göz atma işlemlerini gerçekleştirir. Bağlantı kurmaya çalışırken sorun oluşuyor.Xcode ile iOS'ta çok yönlü bağlanabilirlik

func session(_ session: MCSession, peer peerID: MCPeerID, didChange state: MCSessionState) {} 

bağlanmaya çalışırken ancak birkaç saniye sonra, bu MCSessionState == .notConnected ile tekrar çağrıda zaman çalışma yapar.

Sadece eklendi ... WiFi, BT, ve aradaki her kombinasyonu ile hem çalıştı:

<key>NSAppTransportSecurity</key> 
<dict> 
    <key>NSAllowsArbitraryLoads</key> 
    <true/> 
    <key>NSTemporaryExceptionRequiresForwardSecrecy</key> 
    <false/> 
</dict> 

... Hala sadece iOS'ta (konsolda alma çok yardımcı olmadı 10.2 cihaz, gerçi ...):

2017-02-06 15:17:37.858063 Advertiser[1149:316236] [ViceroyTrace] [ICE][ERROR] ICEStopConnectivityCheck() found no ICE check with call id (1724768204) 
2017-02-06 15:17:39.727633 Advertiser[1149:316295] [ViceroyTrace] [ICE][ERROR] Send BINDING_REQUEST failed(C01A0041). 
2017-02-06 15:17:39.808822 Advertiser[1149:316295] [ViceroyTrace] [ICE][ERROR] Send BINDING_REQUEST failed(C01A0041). 
2017-02-06 15:17:39.948454 Advertiser[1149:316295] [ViceroyTrace] [ICE][ERROR] Send BINDING_REQUEST failed(C01A0041). 
2017-02-06 15:17:40.179569 Advertiser[1149:316295] [ViceroyTrace] [ICE][ERROR] Send BINDING_REQUEST failed(C01A0041). 
2017-02-06 15:17:40.591829 Advertiser[1149:316295] [ViceroyTrace] [ICE][ERROR] Send BINDING_REQUEST failed(C01A0041). 
2017-02-06 15:17:41.297454 Advertiser[1149:316295] [ViceroyTrace] [ICE][ERROR] Send BINDING_REQUEST failed(C01A0041). 
2017-02-06 15:17:42.547840 Advertiser[1149:316295] [ViceroyTrace] [ICE][ERROR] Send BINDING_REQUEST failed(C01A0041). 
2017-02-06 15:17:44.077537 Advertiser[1149:316295] [ViceroyTrace] [ICE][ERROR] Send BINDING_REQUEST failed(C01A0041). 
2017-02-06 15:17:45.601568 Advertiser[1149:316295] [ViceroyTrace] [ICE][ERROR] Send BINDING_REQUEST failed(C01A0041). 
2017-02-06 15:17:47.125030 Advertiser[1149:316295] [ViceroyTrace] [ICE][ERROR] Send BINDING_REQUEST failed(C01A0041). 
2017-02-06 15:17:48.110301 Advertiser[1149:316267] [GCKSession] Not in connected state, so giving up for participant [66CDDFCC] on channel [0]. 
2017-02-06 15:17:48.111331 Advertiser[1149:316267] [GCKSession] Not in connected state, so giving up for participant [66CDDFCC] on channel [1]. 
2017-02-06 15:17:48.111526 Advertiser[1149:316267] [ViceroyTrace] [ICE][ERROR] ICEStopConnectivityCheck() found no ICE check with call id (1724768204) 
2017-02-06 15:17:48.111705 Advertiser[1149:316267] [GCKSession] Not in connected state, so giving up for participant [66CDDFCC] on channel [2]. 
2017-02-06 15:17:48.111873 Advertiser[1149:316267] [ViceroyTrace] [ICE][ERROR] ICEStopConnectivityCheck() found no ICE check with call id (1724768204) 
2017-02-06 15:17:48.112042 Advertiser[1149:316267] [GCKSession] Not in connected state, so giving up for participant [66CDDFCC] on channel [3]. 
2017-02-06 15:17:48.113031 Advertiser[1149:316267] [ViceroyTrace] [ICE][ERROR] ICEStopConnectivityCheck() found no ICE check with call id (1724768204) 
2017-02-06 15:17:48.121016 Advertiser[1149:316267] [GCKSession] Not in connected state, so giving up for participant [66CDDFCC] on channel [4]. 
2017-02-06 15:17:48.121321 Advertiser[1149:316267] [ViceroyTrace] [ICE][ERROR] ICEStopConnectivityCheck() found no ICE check with call id (1724768204) 
2017-02-06 15:17:48.121506 Advertiser[1149:316267] [GCKSession] Not in connected state, so giving up for participant [66CDDFCC] on channel [5]. 
2017-02-06 15:17:48.121683 Advertiser[1149:316267] [ViceroyTrace] [ICE][ERROR] ICEStopConnectivityCheck() found no ICE check with call id (1724768204) 

(Reklamveren app adıdır) 9.2'lik ile 10.2 & iPhone 6 ile iPhone 6S kullanma. Maccode Pro'da kod çalıştırma Maccode Sierra v10.12.2 ile Xcode 8.2.1'den (Swift3).

cevap

0

Her iki aygıt da reklam yayınlamaya devam edip bağlantı kurduktan sonra göz atmaya devam ederse, birbirlerini yeniden keşfettiklerinde bağlantıyı kesebilirler. Sağ bağlantı yapılmasının ardından, arayarak gezen kapatın: cihazlar reklam vermeyi sürdürürse, diğer cihazlar hala onlara bağlanabilir

MCNearbyServiceBrowser.stopBrowsingForPeers() 

.

2

Hem reklamveren hem de tarayıcı için MCSession nesnesine bir referans tuttunuz mu? BINDING_REQUEST başarısız kullanım iletileri, bir kullanımda MCSession nesnesi ayrılmışsa oluşur.

2

Aynı problem vardı ve bir çözüm buldum. Hala bazı hatalar gösteriyor ama benim için çalışıyor. olarak MCSession initialising

deneyin aşağıdaki şu şekildedir:

let mcSession = MCSession(peer: self.mcPeerId, securityIdentity: nil, encryptionPreference: .none) 

sonra MCSession sertifikası işleyicisi temsilci yöntemini uygulamak:

func session(_ session: MCSession, didReceiveCertificate certificate: [Any]?, fromPeer peerID: MCPeerID, certificateHandler: @escaping (Bool) -> Void) { 
    certificateHandler(true) 
}