Не може едноставно да го приклучите iPhone на оддалечен Mac за Xcode
Оддалечената работна површина ви го покажува Xcode, а не iPhone на вашата маса. Поврзете го уредот со Mac-от што гради, а откривањето третирајте го одделно од преносот.
Вообичаената претпоставка е дека сесијата на оддалечена работна површина го преместува целото развојно опкружување на вашиот преносен сметач. Таа го преместува екранот, тастатурата и глувчето, и ништо друго. iPhone мора да стигне до Mac-от на кој работи Xcode, а тоа е одделна врска со свои барања за доверба, пренос и дозволи. Сè подолу произлегува од оваа поделба, и токму тука повеќето неуспешни поставки губат половина ден.
Мит: далечинското управување го преместува и уредот
Софтверот за оддалечена работна површина проследува екран и влезен тек, и на добра врска изгледа како 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-от, изберете го тоа, бидејќи наједноставната поддржана патека е онаа со најмалку слоеви за дебагирање.