2017-02-06 11 views
5

दोनों डिवाइस विज्ञापन और ब्राउज़िंग। कनेक्शन स्थापित करने का प्रयास करते समय समस्या उत्पन्न होती है।एक्सकोड पर एक्सकोड पर कनेक्टिविटी कनेक्टिविटी

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

काम कर जब कनेक्ट करने का प्रयास लेकिन कुछ सेकंड के बाद, यह MCSessionState == .notConnected के साथ फिर से कहता रहा है करता है।

वाईफ़ाई, बीटी, और बीच में हर संयोजन के साथ दोनों की कोशिश की ...

बस कहा:

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

ज्यादा मदद नहीं था ... फिर भी कंसोल में हो रही है (बस iOS पर 10.2 डिवाइस, हालांकि ...):

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) 

(विज्ञापनदाता एप्लिकेशन का नाम है) 9.2 के साथ 10.2 & iPhone 6 के साथ iPhone 6S का उपयोग करना। मैकबुक प्रो पर मैकोज़ सिएरा v10.12.2 के साथ मैकबुक प्रो पर कोड चलाना 8.2.1 (स्विफ्ट 3)।

उत्तर

0

यदि दोनों डिवाइस विज्ञापन जारी रखने के बाद विज्ञापन और ब्राउज़ करना जारी रखते हैं तो वे एक-दूसरे को फिर से खोजते समय डिस्कनेक्ट कर सकते हैं। कनेक्शन बनाने के ठीक बाद, कॉल करके ब्राउज़िंग बंद करें:

MCNearbyServiceBrowser.stopBrowsingForPeers() 

यदि डिवाइस विज्ञापन जारी रखते हैं, तो अन्य डिवाइस अभी भी उनसे कनेक्ट हो सकते हैं।

2

क्या आपने विज्ञापनदाता और ब्राउज़र दोनों के लिए MCSession ऑब्जेक्ट का संदर्भ रखा था? उन BINDING_REQUEST असफल संदेश तब होते हैं जब एक उपयोग में एमसीएसशन ऑब्जेक्ट को हटा दिया जाता है।

2

मुझे एक ही समस्या थी और मुझे एक समाधान मिला। यह अभी भी कुछ त्रुटियों को दिखाता है लेकिन यह मेरे लिए काम करता है।

MCSession रूप initialising प्रयास इस प्रकार है:

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

तो MCSession के प्रमाणपत्र हैंडलर प्रतिनिधि विधि लागू इस प्रकार है:

func session(_ session: MCSession, didReceiveCertificate certificate: [Any]?, fromPeer peerID: MCPeerID, certificateHandler: @escaping (Bool) -> Void) { 
    certificateHandler(true) 
} 
संबंधित मुद्दे