Řešení potíží s připojením pro hostitele sestavení Xamarin.iOS
Tato příručka obsahuje postup řešení potíží, ke kterým může dojít pomocí nového správce připojení, včetně problémů s připojením a SSH.
Umístění souboru protokolu
-
Mac –
~/Library/Logs/Xamarin.Messaging-[VERSION.BUILD]
-
Windows –
%LOCALAPPDATA%\Xamarin\Logs
Soubory protokolu lze najít tak, že v sadě Visual Studio přejdete na nápovědu > Xamarin > protokoly ZIP.
Kde je hostitelská aplikace sestavení Xamarinu?
Hostitel sestavení Xamarin ze starších verzí Xamarin.iOS již není potřeba. Visual Studio teď automaticky nasadí agenta přes vzdálené přihlášení a spustí ho na pozadí. Není k dispozici žádná další aplikace, která se bude spouštět na počítačích Mac nebo Windows.
Řešení potíží se vzdáleným přihlášením
Důležitý
Tyto kroky řešení potíží jsou primárně určené pro problémy, ke kterým dochází při počátečním nastavení v novém systému. Pokud jste připojení dříve používali úspěšně v určitém prostředí a pak připojení náhle nebo přerušovaně přestalo fungovat, můžete (ve většině případů) přeskočit přímo na kontrolu, jestli některé z následujících postupů pomůže:
- Ukončete zbývající procesy, jak je uvedeno níže ve části Chyby kvůli běžícím procesům hostitele sestavení.
- Vymažte agenty podle popisu v části Vymazání agentů zprostředkovatele, IDB, sestavení a návrháře. Poté použijte kabelové připojení k internetu a připojte se přímo přes IP adresu, jak je popsáno v části Nelze se připojit k MacBuildHost.local. Zkuste to prosím znovu..
Pokud žádný z těchto možností problém nevyřeší, postupujte podle pokynů v kroku 9 a vytvořte novou zprávu o chybě.
Zkontrolujte, jestli máte na Macu nainstalované kompatibilní verze Xamarin.iOS. Chcete-li to provést pomocí sady Visual Studio 2017, ujistěte se, že jste v distribučním kanálu Stable v sadě Visual Studio pro Mac. V sadách Visual Studio 2015 a starších se ujistěte, že používáte stejný aktualizační kanál v obou prostředích IDE.
- V sadě Visual Studio pro Mac přejděte na Visual Studio pro Mac > Vyhledat aktualizace... pro zobrazení nebo změnu kanálu aktualizací.
- V sadě Visual Studio 2015 a starších verzích zkontrolujte distribuční kanál v části Tools > Options > Xamarin > Other.
Ujistěte se, že je na Macu povoleno Vzdálené Přihlášení. Nastavte přístup pro Jenom tito uživateléa ujistěte se, že je váš uživatel Mac součástí seznamu nebo skupiny:
Zkontrolujte, jestli brána firewall umožňuje příchozí připojení přes port 22 – výchozí hodnota pro SSH:
Pokud jste zakázali Automaticky povolit podepsanému softwaru přijímat příchozí připojení, OS X zobrazí během procesu párování dialogové okno s žádostí o povolení
mono-sgen
nebomono-sgen32
přijímat příchozí připojení. Nezapomeňte v tomto dialogovém okně kliknout na Povolit:Ověřte, že jste přihlášeni k uživatelskému účtu na počítači Mac a máte aktivní relaci grafického uživatelského rozhraní.
Ujistěte se, že se připojujete k Macu s uživatelským jménem místo úplným jménem. Tím se zabrání známému omezení pro celé názvy, které obsahují zvýrazněné znaky.
Uživatelské jméno najdete spuštěním příkazu
whoami
v Terminal.app.Například na následujícím snímku obrazovky bude název účtu zoed a nebude Zoe Drakou:
Zkontrolujte správnost IP adresy, kterou používáte pro Mac. IP adresu najdete v části předvolby systému sdílení > sdílení > vzdáleného přihlášení na Macu.
Jakmile potvrdíte IP adresu Počítače Mac, zkuste
ping
na tuto adresu vcmd.exe
ve Windows:ping 10.1.8.95
Pokud příkaz ping selže, nebude mac směrovatelný z počítače s Windows. Tento problém bude potřeba vyřešit na úrovni konfigurace místní sítě mezi 2 počítači. Ujistěte se, že oba počítače jsou ve stejné místní síti.
Dále otestujte, jestli se klient
ssh
z OpenSSH může úspěšně připojit k Macu z Windows. Jedním ze způsobů, jak tento program nainstalovat, je nainstalovat Git pro Windows. Pak můžete spustit příkazový řádek Git Bash a pokusit sessh
do Macu pomocí uživatelského jména a IP adresy.ssh zoed@10.1.8.95
Pokud krok 8 úspěšně proběhne, můžete zkusit spustit jednoduchý příkaz, například
ls
, přes připojení:ssh zoed@10.1.8.95 'ls'
Měl by se zobrazit seznam obsahu domovského adresáře na Macu. Pokud příkaz
ls
funguje správně, ale připojení sady Visual Studio stále selže, můžete zkontrolovat sekci „Známé problémy a omezení“ o komplikacích specifických pro Xamarin. Pokud žádný z těchto problémů neodpovídá vašemu problému, vytvořte novou zprávu o chybě v komunitě vývojářů tak, že přejdete na Nápovědu > Odeslat zpětnou vazbu > Nahlásit problém v sadě Visual Studio a připojte protokoly popsané v části Zkontrolujte podrobné soubory protokolu.Pokud krok 8 selže, můžete v Terminálu na Macu spustit následující příkaz a zjistit, jestli server SSH přijímá připojení:
ssh localhost
Pokud krok 8 selže, ale krok 10 proběhne úspěšně, je problémem pravděpodobně to, že kvůli konfiguraci sítě není port 22 na Mac build hostiteli přístupný z Windows. Mezi možné problémy s konfigurací patří:
Nastavení brány firewall OS X zakáže připojení. Nezapomeňte pečlivě zkontrolovat krok 3.
V některých případech může konfigurace jednotlivých aplikací pro bránu firewall OS X skončit také v neplatném stavu, kdy nastavení zobrazená v předvolbách systému neodráží skutečné chování. Odstranění konfiguračního souboru (/Library/Preferences/com.apple.alf.plist) a restartování počítače může pomoct obnovit výchozí chování. Jedním ze způsobů, jak soubor odstranit, je zadat /Library/Preferences v části Přejít > Přejít do složky ve Finderu a potom přesunout soubor com.apple.alf.plist do koše.
Nastavení brány firewall jednoho ze směrovačů mezi počítačem Mac a počítačem s Windows blokuje připojení.
Samotný Systém Windows zakáže odchozí připojení ke vzdálenému portu 22. To by bylo neobvyklé. Bránu Windows Firewall je možné nakonfigurovat tak, aby nepovolil odchozí připojení, ale výchozí nastavení je povolit všechna odchozí připojení.
Hostitel sestavení Mac nepovoluje přístup k portu 22 ze všech externích hostitelů prostřednictvím pravidla
pfctl
. To není pravděpodobné, pokud nevíte, že jste v minulosti nakonfigurovalipfctl
.
Pokud krok 8 selže a krok 10 selže, je pravděpodobné, že proces serveru SSH na Macu není spuštěný nebo není nakonfigurovaný tak, aby se aktuální uživatel přihlásil. V tomto případě nezapomeňte před prozkoumání složitějších možností pečlivě zkontrolovat nastavení vzdáleného přihlášení z kroku 2.
Známé problémy a omezení
Poznámka
Tato část platí jenom v případě, že jste se úspěšně připojili k hostiteli sestavení Mac pomocí uživatelského jména a hesla počítače Mac pomocí klienta OpenSSH SSH, jak je popsáno v krocích 8 a 9 výše.
Neplatné přihlašovací údaje Zkuste to prosím znovu."
Známé příčiny:
- Omezení – Tato chyba se může zobrazit při pokusu o přihlášení k hostiteli sestavení pomocí účtu Full Name, pokud název obsahuje znak s diakritikou. Jedná se o omezení SSH.NET knihovny, kterou Xamarin používá pro připojení SSH. alternativní řešení: Viz krok 5 výše.
Nejde se ověřit pomocí klíčů SSH. Nejprve se zkuste přihlásit pomocí přihlašovacích údajů.
Známá příčina:
-
omezení zabezpečení SSH – tato zpráva nejčastěji znamená, že jeden ze souborů nebo adresářů v plně kvalifikované cestě $HOME/.ssh/authorized_keys na Macu má oprávnění k zápisu pro jiných nebo členů skupiny.
Běžná oprava: Spusťte
chmod og-w "$HOME"
na příkazovém řádku terminálu na Počítači Mac. Pro podrobnosti o tom, který konkrétní soubor nebo adresář způsobuje problém, spusťtegrep sshd /var/log/system.log > "$HOME/Desktop/sshd.log"
v Terminálu. Poté otevřete soubor sshd.log z Plochy a vyhledejte "Ověřování odmítnuto: nesprávné vlastnictví nebo režimy".
"Pokoušíte se připojit..." nikdy se nedokončí
- Chyba – K tomuto problému může dojít v Xamarinu 4.1, pokud přihlašovací shell v místní nabídce Rozšířené možnosti pro uživatele Mac v Předvolby systému > Uživatelé & Skupiny je nastavena na jinou hodnotu než /bin/bash. (Od Xamarinu 4.2 tento scénář místo toho vede k chybové zprávě "Nepovedlo se připojit".) alternativní řešení: Změňte přihlašovacího prostředí zpět na původní výchozí /bin/bash.
"Nelze se připojit k MacBuildHost.local. Zkuste to prosím znovu."
Nahlášené příčiny:
Chyba – Několik uživatelů vidělo tuto chybovou zprávu spolu s podrobnější chybou v protokolových souborech: "Při konfiguraci SSH pro uživatele došlo k neočekávané chybě. Operace relace vypršela," když se pokoušeli přihlásit k hostiteli sestavení pomocí uživatelského účtu domény služby Active Directory nebo jiného účtu adresářové služby. Řešení problému: Místo toho se přihlaste k hostiteli sestavení pomocí místního uživatelského účtu.
Chyba – Někteří uživatelé viděli tuto chybu při pokusu o připojení k hostiteli sestavení poklikáním na název počítače Mac v dialogovém okně připojení. Možné alternativní řešení: Ručně přidejte Mac pomocí IP adresy.
Chyba – Někteří uživatelé narazili na tuto chybu při použití bezdrátového síťového připojení mezi hostitelem buildu Mac a Windows. Možné alternativní řešení: Přesuňte oba počítače do kabelového síťového připojení.
chyba – V Xamarinu 4.0 se tato zpráva zobrazí vždy, když soubor $HOME/.bashrc na Macu obsahuje chybu. (Počínaje Xamarinem 4.1 přestanou mít chyby v souboru .bashrc vliv na proces připojení.) alternativní řešení: Přesuňte soubor .bashrc do záložního umístění (nebo ho odstraňte, pokud víte, že ho nepotřebujete).
chyba – Tato chyba se může zobrazit, pokud je přihlašovací shell v místní nabídce Rozšířené možnosti pro uživatele Mac v Předvolby systému > Uživatelé & Skupiny nastavena na jinou hodnotu než /bin/bash. alternativní řešení: Změňte přihlašovací shell zpět na původní výchozí /bin/bash.
Omezení – Tato chyba se může zobrazit, pokud je hostitel buildu Mac připojený ke směrovači, který nemá přístup k internetu (nebo pokud Mac používá DNS server, kde dojde k vypršení časového limitu při pokusu o reverzní DNS vyhledávání Windows počítače). Visual Studio se bude pokoušet přibližně 30 sekund načítat otisk prstu SSH, ale nakonec se nepodaří se připojit.
Možné alternativní řešení: Do souboru sshd_config přidejte "UseDNS no". Před změnou nezapomeňte o tomto nastavení SSH přečíst. Viz například unix.stackexchange.com/questions/56941/what-is-the-point-of-sshd-usedns-option.
Následující kroky popisují jeden způsob, jak změnit nastavení. Abyste mohli provést kroky, musíte být přihlášeni k účtu správce na Macu.
Potvrďte umístění souboru sshd_config spuštěním
ls /etc/ssh/sshd_config
als /etc/sshd_config
v příkazovém řádku terminálu. U všech zbývajících kroků nezapomeňte použít umístění, které vrátit "Žádný takový soubor nebo adresář".Spuštěním
cp /etc/ssh/sshd_config "$HOME/Desktop/"
v terminálu zkopírujte soubor na plochu.Otevřete soubor z plochy v textovém editoru. V terminálu můžete například spustit
open -a TextEdit "$HOME/Desktop/sshd_config"
.Do dolní části souboru přidejte následující řádek:
UseDNS no
Odeberte všechny řádky, které říkají
UseDNS yes
, aby se nové nastavení projevilo.Uložte soubor.
Spuštěním
sudo cp "$HOME/Desktop/sshd_config" /etc/ssh/sshd_config
v terminálu zkopírujte upravený soubor zpět na místo. Pokud se zobrazí výzva, zadejte heslo.Zakažte a znovu povolte Vzdálené přihlášení v části Předvolby systému > Sdílení > Vzdálené přihlášení, abyste restartovali server SSH.
Vyčištění agentů zprostředkovatele, IDB, Build a Designer na Macu
Pokud se v souborech protokolu při instalaci, nahrání nebo spuštění některého z agentů Mac zobrazí problém, můžete zkusit odstranit složku XMA mezipaměti a vynutit tak opětovné nahrání sady Visual Studio.
V terminálu na Macu spusťte následující příkaz:
open "$HOME/Library/Caches/Xamarin"
Ctrl-klikněte na složku XMA a vyberte Přesunout do koše.
Ve Windows je také mezipaměť, kterou může být užitečné vymazat. Otevřete příkazový řádek jako správce ve Windows:
del %localappdata%\Temp\Xamarin\XMA
Zprávy s upozorněním
Tato část popisuje několik zpráv, které se můžou zobrazit ve výstupních oknech a protokolech, které můžete obvykle ignorovat.
"Došlo k neshodě mezi nainstalovaným Xamarin.iOS ... a místní Xamarin.iOS
Pokud jste potvrdili, že mac i Windows se aktualizují na stejný distribuční kanál Xamarinu, toto upozornění je ignorovatelné.
Spuštění příkazu ls /usr/bin/mono se nezdařilo: ExitStatus=1
Tato zpráva je ignorovatelná, pokud mac běží OS X 10.11 (El Capitan) nebo novější. Tato zpráva není problém s operačním systémem OS X 10.11, protože Xamarin také kontroluje /usr/local/bin/mono, což je správné očekávané umístění pro mono
v OS X 10.11.
Služba Bonjour 'MacBuildHost' neodpověděla svou IP adresou.
Tato zpráva je ignorovatelná, pokud si nevšimnete, že dialogové okno připojení nezobrazuje IP adresu hostitele buildu Mac. Pokud IP adresa v dialogovém okně chybí, můžete ručně přidat MAC adresu.
Neplatný uživatel z verze 10.1.8.95 a input_userauth_request: neplatný uživatel [předběžné ověření]"
Můžete si všimnout těchto zpráv, pokud se podíváte do sshd.log. Tyto zprávy jsou součástí normálního procesu připojení. Zobrazují se, protože Xamarin používá uživatelské jméno a dočasně při načítání otisku prstu SSH .
Okno výstupu a soubory protokolu
Pokud Visual Studio při připojování k hostiteli sestavení narazí na chybu, jsou 2 umístění, kde lze zkontrolovat další zprávy: okno Výstupu a soubory protokolu.
Výstupní okno
Okno Výstup je nejlepším místem, kde začít. Zobrazí zprávy o hlavních krocích připojení a chybách. Zobrazení zpráv Xamarinu v okně Výstup:
- V nabídkách vyberte Zobrazit > Výstup nebo klikněte na kartu Výstup.
- Klikněte na Zobrazit výstup z rozevírací nabídky.
- Vyberte Xamarin.
Soubory protokolu
Pokud okno Výstup neobsahuje dostatek informací k diagnostice problému, jsou soubory protokolu dalším místem, kde je potřeba hledat. Soubory protokolu obsahují další diagnostické zprávy, které se nezobrazují v okně Výstup. Zobrazení souborů protokolu:
Spusťte Visual Studio.
Důležitý
Všimněte si, že .svclogs nejsou ve výchozím nastavení povolené. Abyste k nim měli přístup, budete muset spustit Visual Studio s podrobnými protokoly, jak je uvedeno v průvodci protokoly verzí. Další informace naleznete v blogu o řešení potíží s rozšířeními pomocí protokolu aktivit.
Pokus o připojení k serveru sestavení
Po dosažení chyby připojení sady Visual Studio shromážděte protokoly z nápovědy > Xamarin > protokoly ZIP:
Když otevřete soubor .zip, zobrazí se seznam souborů podobný následujícímu příkladu. U chyb připojení jsou nejdůležitější soubory *Ide.log a *Ide.svclog soubory. Tyto soubory obsahují stejné zprávy ve dvou mírně různých formátech. .svclog je XML a je užitečný, pokud chcete procházet zprávy. .log je prostý text a je užitečný, pokud chcete zprávy filtrovat pomocí nástrojů příkazového řádku.
Pokud chcete procházet všechny zprávy, vyberte a otevřete soubor .svclog:
Soubor .svclog se otevře v prohlížeči Microsoft Service Trace Viewer. Zprávy můžete procházet podle vlákna a zobrazit související skupiny zpráv. Pokud chcete procházet vlákno, nejprve vyberte kartu Graf a potom klikněte na rozevírací nabídku režim rozložení a vyberte Vlákno:
Podrobné soubory protokolu
Pokud normální soubory protokolu stále neposkytují dostatek informací k diagnostikování problému, zkuste jako poslední možnost povolit podrobné protokolování. Podrobné protokoly jsou také upřednostňované u zpráv o chybách.
Ukončete Visual Studio.
Spuštěním následujícího příkazu na příkazovém řádku spusťte Visual Studio s podrobným protokolováním:
devenv /log
Pokus o připojení k hostiteli sestavení ze sady Visual Studio
Jakmile visual Studio dosáhne chyby připojení, shromážděte protokoly z nápovědy nápovědy > Xamarin > protokoly ZIP.
Spuštěním následujícího příkazu v terminálu na Macu zkopírujte všechny nedávné zprávy protokolu ze serveru SSH do souboru na ploše:
grep sshd /var/log/system.log > "$HOME/Desktop/sshd.log"
Pokud tyto podrobné soubory protokolu neposkytují dostatek vodítek k přímému vyřešení problému, vytvořte novou zprávu o chybě a připojte soubor .zip z kroku 5 i .log souboru z kroku 6.
Řešení potíží s automatickým zřizováním pro Mac
Soubory protokolů integrovaného vývojového prostředí (IDE)
Pokud narazíte na potíže s používáním automatického zřizování mac, podívejte se na protokoly integrovaného vývojového prostředí sady Visual Studio 2017 uložené v %LOCALAPPDATA%\Xamarin\Logs\15.0.
Řešení potíží s chybami sestavení a nasazení
Tato část popisuje několik problémů, ke kterým může dojít po úspěšném připojení sady Visual Studio k hostiteli sestavení.
Nejde se připojit k adrese '192.168.1.2:22' s uživatelem 'macuser'.
Známé příčiny:
funkce zabezpečení Xamarin 4.1 – k této chybě dojde, pokud po použití Xamarinu 4.1 nebo novějšího přejdete na Xamarin 4.0. V takovém případě bude tato chyba doprovázena dalším upozorněním " Privátní klíč je šifrovaný, ale přístupové heslo je prázdné". Jedná se o úmyslnou změnu z důvodu nové funkce zabezpečení v rámci Xamarinu 4.1. Doporučenéopravy: Odstraňte id_rsa a id_rsa.pub z %LOCALAPPDATA%\Xamarin\MonoToucha pak se znovu připojte k hostiteli sestavení Mac.
omezení zabezpečení SSH – pokud je tato zpráva doprovázena dalším upozorněním "Nepodařilo se autentizovat uživatele pomocí existujících klíčů SSH", nejčastěji to znamená, že jeden ze souborů nebo adresářů v plně kvalifikované cestě $HOME/.ssh/authorized_keys na Macu má oprávnění k zápisu pro ostatní nebo členy skupiny. Běžná oprava: Spusťte
chmod og-w "$HOME"
na příkazovém řádku terminálu na Počítači Mac. Podrobnosti o konkrétním souboru nebo adresáři, který způsobuje problém, zjistíte spuštěnímgrep sshd /var/log/system.log > "$HOME/Desktop/sshd.log"
v Terminálu, poté na ploše otevřete soubor sshd.log a hledejte text "Ověřování odmítnuto: chybné vlastnictví nebo režimy".
Řešení nelze načíst ze sdílené síťové složky.
Řešení budou zkompilována pouze v případě, že jsou v místním systému souborů Windows nebo namapované jednotce.
Řešení uložená ve sdílené síťové složce můžou vyvolat chyby nebo úplně odmítnout kompilaci. Všechny soubory .sln používané v Visual Studio by měly být uloženy na místním systému souborů Windows.
Kvůli tomuto problému se vyvolá následující chyba:
error : Building from a network share path is not supported at the moment. Please map a network drive to '\\SharedSources\HelloWorld\HelloWorld' or copy the source to a local directory.
Chybějící zřizovací profily nebo chyba "Nepodařilo se vytvořit knihovnu fat"
Na Macu spusťte Xcode a ujistěte se, že je váš vývojářský účet Apple přihlášený a že se stáhne váš vývojový profil pro iOS:
Pokus o operaci soketu na nedostupnou síť.
Nahlášené příčiny:
- Vylepšení – Tato chyba může zabránit úspěšnému sestavení, když Visual Studio používá adresu IPv6 pro připojení k build serveru. (Připojení sestavovacího hostitele zatím nepodporuje adresy IPv6.)
Modul plug-in Xamarin.iOS sady Visual Studio se po přeinstalaci beta/alfa kanálu nepodaří načíst
K tomuto problému může dojít, když Visual Studio nedokáže aktualizovat mezipaměť komponent MEF. Pokud tomu tak je, může vám instalace tohoto rozšíření sady Visual Studio pomoct: https://visualstudiogallery.msdn.microsoft.com/22b94661-70c7-4a93-9ca3-8b6dd45f47cd
Tím vymažete mezipaměť součástí sady Visual Studio MEF, aby se vyřešily problémy s poškozením mezipaměti.
Chyby způsobené existujícími procesy hostitele sestavení na Macu
Procesy z předchozích připojení hostitele sestavení můžou někdy kolidovat s chováním aktuálního aktivního připojení. Pokud chcete zkontrolovat všechny existující procesy, zavřete Visual Studio a pak v terminálu Mac spusťte následující příkazy:
ps -A | grep mono
K ukončení existujících procesů použijte následující příkaz:
killall mono
Vymazání mezipaměti sestavení systému Mac
Pokud řešíte problém se sestavením a chcete se ujistit, že chování nesouvisí s žádným dočasným souborem sestavení uloženým na Macu, můžete odstranit složku mezipaměti sestavení.
V terminálu na Macu spusťte následující příkaz:
open "$HOME/Library/Caches/Xamarin"
Podržením klávesy Control klikněte na složku mtbs a vyberte Přesunout do koše: