Xcode साठी iPhone ला दूरच्या Mac मध्ये फक्त प्लग करता येत नाही
दूरचा डेस्कटॉप तुम्हाला Xcode दाखवतो, तुमच्या टेबलावरचा iPhone नाही. उपकरण बिल्ड करणाऱ्या Mac शी जोडा, आणि शोधनाला वाहतुकीपासून वेगळा विषय माना.
नेहमीची धारणा अशी आहे की दूरचे डेस्कटॉप सत्र संपूर्ण विकास वातावरण तुमच्या लॅपटॉपवर हलवते. ते स्क्रीन, कीबोर्ड आणि माउस हलवते, आणि दुसरे काहीही नाही. iPhone ला Xcode चालणाऱ्या Mac पर्यंत पोहोचावे लागते, आणि ती स्वतःच्या विश्वास, वाहतूक आणि परवानगी आवश्यकतांसह वेगळी जोडणी आहे. खालील सर्व या विभाजनातून येते, आणि बहुतेक अयशस्वी सेटअप अर्धा दिवस इथेच गमावतात.
गैरसमज: रिमोट कंट्रोल उपकरणही हलवते
दूरचे डेस्कटॉप सॉफ्टवेअर डिस्प्ले आणि इनपुट प्रवाह पुढे पाठवते, आणि चांगल्या जोडणीवर Mac तुमच्या समोर बसलेला असल्यासारखे वाटते. पण ते USB पाठवत नाही, आणि फोन Mac च्या नेटवर्कवर ठेवत नाही. सत्र Mac डेस्कटॉपवर संपते, जिथे Xcode ला स्वतःच्या नियमांनुसार उपकरण शोधावे लागते. फोन पिक्सेलसोबत प्रवास करतो असे गृहीत धरणे ही या रचनेतील सर्वात सामान्य चूक आहे.
दोन्ही जोडण्या स्वतंत्र आहेत, आणि एक परिपूर्ण असताना दुसरी अजिबात नसू शकते. डेस्कटॉप सत्र दुरुस्त केल्याने उपकरणाच्या मार्गाबद्दल काहीही कळत नाही.
काहीही कॉन्फिगर करण्यापूर्वी फोन प्रत्यक्षात कुठे आहे ते ठरवा
फोन Mac जवळ राहिला तर तिथे नेहमीची स्थानिक रचना करा: संगणकावर विश्वास ठेवा, उपकरणावर विकसक मोड सुरू करा, आणि यंत्रासमोर बसलेले असताना Xcode त्यावर बिल्ड करून चालवते याची खात्री करा. त्यानंतर दूरचा डेस्कटॉप आधीच चालणारा कार्यप्रवाह नियंत्रित करतो. ही सर्वात स्वस्त रचना आहे आणि हार्डवेअर परवानगी देतो तेव्हा निवडायची हीच.
फोन तुमच्यासोबत प्रवास करत असेल आणि Mac कार्यालयात राहिला तर Mac ला त्या उपकरणापर्यंत समर्थित मार्ग हवा. VPN दोन्ही टोकांमध्ये नेटवर्क मार्ग पुरवतो आणि दुसरे काहीही पुरवत नाही: जोडणी, विकसक मोड, स्वाक्षरी ओळख आणि उपकरण नोंदणी या सर्व वेगळ्या आवश्यकता राहतात. बोगद्याला जोडणीच मानू नका, तो स्टॅकमधील एक स्तर माना.
तुम्ही या दोन रचनांपैकी कशात आहात ते लिहून ठेवा. पुढील प्रत्येक तपासणी त्यावर अवलंबून आहे, आणि त्या मिसळल्यास चालू शकणार नाहीत अशा दुरुस्त्या तयार होतात.
शोधन आणि वाहतूक यांना दोन वेगळ्या समस्या माना
Xcode जोडलेली वायरलेस उपकरणे स्थानिक नेटवर्कवरील Bonjour द्वारे शोधते, आणि Connect via IP Address द्वारे ज्ञात पत्त्यावरील उपकरणापर्यंतही पोहोचू शकते. हे दोन वेगवेगळ्या अयशस्वी होण्याच्या पद्धती असलेल्या दोन यंत्रणा आहेत. यादीत कधीच न दिसणारे उपकरण आणि दिसूनही जोडण्यास नकार देणारे उपकरण हे एकच लक्षण नाही, दोन्ही हरवलेला फोन असेच वाचले जात असले तरी.
काहीही बदलण्यापूर्वी जाहिरात शोधा: dns-sd -B _apple-mobdev2._tcp जोडलेला फोन स्थानिक दुव्यावर प्रकाशित करत असलेल्या सेवेची यादी करते. काहीच दिसले नाही तर शोधन हा तुटलेला स्तर आहे, आणि पत्त्यावर आधारित जोडणी हाच उरलेला मार्ग. सेवा दिसली पण Xcode तरीही जोडू शकत नसेल, तर शोधन चालते आणि वाहतूक किंवा विश्वासाचे नाते अयशस्वी होते.
Apple ची वायरलेस उपकरण मदत एकाच नेटवर्कची आवश्यकता आणि पत्ता कार्यप्रवाह दोन्ही व्यापते, म्हणून जुन्या आवृत्तीतून लक्षात राहिलेल्या मेनू मार्गाचे अनुसरण करण्याऐवजी तुमच्या स्थापित आवृत्त्यांच्या तुलनेत ती वाचा. खालील यंत्रणा बदलत नसली तरी मेनू लेबल Xcode आवृत्त्यांमध्ये स्थान बदलतात.
Mac आपल्या जागेवरून काय पाहू शकतो ते तपासा
गणना तुमच्या लॅपटॉपवर नाही तर Mac वर चालवा, कारण उपकरण आवश्यक असलेले यंत्र Mac आहे. xcrun devicectl list devices Xcode पोहोचू शकणारी उपकरणे छापते, आणि system_profiler SPUSBDataType प्रत्यक्षात जोडलेले काय आहे ते दाखवते. दुसऱ्या यादीत दिसणारा पण पहिल्यात नसलेला फोन जोडलेला आहे पण जोडी केलेला नाही, ही नेटवर्कची नाही तर विश्वासाची समस्या आहे.
xcrun devicectl list devices
system_profiler SPUSBDataType | grep -i iphone
xcrun devicectl device info DEVICE_UDIDउपकरण दुसऱ्या सबनेटवर असेल तर Mac फोन प्रकाशित करत असलेल्या पत्त्यापर्यंत पोहोचू शकतो याची खात्री करा, आणि link-local IPv6 पत्ते एका दुव्यापुरते मर्यादित असतात आणि बोगद्यातून मार्गस्थ होत नाहीत हे लक्षात ठेवा. म्हणूनच फक्त VPN दूरचा फोन क्वचितच दिसू लागतो: उपकरण जाहिरात करत असलेला पत्ता फक्त त्याच्या स्वतःच्या विभागात अर्थपूर्ण असतो.
Apple ची तांत्रिक टिप्पणी TN3158 सांगते की आवृत्ती 15 पासून Xcode केबलने जोडलेल्या उपकरणाशी link-local IPv6 वर उभ्या नेटवर्क इंटरफेसद्वारे बोलते, त्यामुळे स्थानिक फिल्टरिंग प्रत्यक्षात प्लग केलेल्या फोनलाही अडथळा आणू शकते. अशी गोष्ट स्वतः बंद न करता फिल्टरिंग धोरणाच्या मालकाकडे न्या.
ते उपकरणाच्या चिन्हाने नाही, बिल्डने सिद्ध करा
यादीतील उपकरण नोंद, टूलबारमधील हिरवा निर्देशक किंवा यशस्वी जोडणी विनंती या मधल्या निरीक्षणे आहेत. Xcode परवानगी दिलेले बिल्ड स्थापित करते आणि डीबगर उपकरणावर चालणाऱ्या प्रक्रियेशी जोडते तेव्हा कार्यप्रवाह सिद्ध होतो.
संपूर्ण क्रम Mac वरून चालवा. xcrun devicectl device install app --device DEVICE_UDID build/MyApp.app IDE शिवाय स्थापित करते, ज्यामुळे Xcode इंटरफेसची समस्या उपकरणाच्या मार्गाच्या समस्येपासून वेगळी होते. त्यानंतर अॅप सुरू करा आणि त्याला कन्सोल जोडा. आदेश ओळीतील स्थापना चालली पण IDE चालत नसेल, तर उरलेली दोष नेटवर्कमध्ये नाही तर स्कीम किंवा स्वाक्षरी संरचनेत आहे.
रचना अरुंद ठेवा: एक अधिकृत विकसक, एक नोंदणीकृत Mac, एक उपकरण, आणि सत्र संपल्यावर संपणारा प्रवेश. रचना थांबल्यावर क्रेडेन्शियल्स रद्द करा. फोन फक्त Mac जवळ राहू शकत असेल तर तेच निवडा, कारण सर्वात सोपा समर्थित मार्ग म्हणजे डीबग करायचे सर्वात कमी स्तर उरलेला मार्ग.