Xamarin.iOS 빌드 호스트에 대한 연결 문제 해결Connection Troubleshooting for a Xamarin.iOS Build Host

이 가이드에서는 연결 및 SSH 문제를 포함하여 새 연결 관리자를 사용하는 동안 발생할 수 있는 문제를 해결하는 단계별 지침을 제공합니다.This guide provides troubleshooting steps for issues that may be encountered using the new connection manager, including connectivity and SSH issues.

로그 파일 위치Log File Location

  • Mac – ~/Library/Logs/Xamarin-[MAJOR.MINOR]Mac – ~/Library/Logs/Xamarin-[MAJOR.MINOR]
  • Windows – %LOCALAPPDATA%\Xamarin\LogsWindows – %LOCALAPPDATA%\Xamarin\Logs

로그 파일은 Visual Studio에서 도움말 > Xamarin > Zip 로그로 이동하여 찾을 수 있습니다.The log files can be located by browsing to Help > Xamarin > Zip Logs in Visual Studio.

Xamarin 빌드 호스트 앱의 위치Where's the Xamarin Build Host App?

오래된 Xamarin.iOS 버전의 Xamarin 빌드 호스트는 더 이상 필요 없습니다.The Xamarin Build Host from older versions of Xamarin.iOS is no longer required. 이제 Visual Studio는 원격 로그인을 통해 자동으로 에이전트를 배포하고 백그라운드에서 실행합니다.Visual Studio now automatically deploys the agent over Remote Login and runs it in the background. Mac 또는 Windows 컴퓨터에서 실행되는 추가 앱은 없습니다.There is no additional app that will run on either the Mac or Windows machines.

원격 로그인 문제 해결Troubleshooting Remote Login

중요

다음 문제 해결 단계는 새 시스템에서 초기 설치 중에 발생하는 문제에 주로 사용됩니다.These troubleshooting steps are primarily intended for problems that happen during the initial setup on a new system. 이전에 특정 환경에서 연결을 성공적으로 사용했는데 연결이 갑자기 또는 일시적으로 중지되는 경우 대부분은 바로 다음 방법을 사용하여 문제를 해결할 수 있습니다.If you had previously been using the connection successfully in a particular environment and then the connection suddenly or intermittently stops working, you can (in most cases) skip straight to checking if any of the following helps:

  1. Mac에 호환되는 Xamarin.iOS 버전이 설치되어 있는지 확인합니다.Check that you have compatible Xamarin.iOS versions installed on your Mac. Visual Studio 2017에서 이렇게 하려면 Mac용 Visual Studio의 안정적인 배포 채널에 있는지 확인합니다.To do this with Visual Studio 2017 ensure that you are on the Stable distribution channel in Visual Studio for Mac. Visual Studio 2015 이하인 경우 두 IDE에서 동일한 배포 채널에 있는지 확인합니다.In Visual Studio 2015 and earlier make sure that you are on the same distribution channel on both IDEs.

    • Mac용 Visual Studio인 경우 Mac용 Visual Studio > 업데이트 확인... 으로 이동하여 업데이트 채널을 확인하거나 변경합니다.In Visual Studio for Mac, go to Visual Studio for Mac > Check for Updates... to view or change the Update channel.
    • Visual Studio 2015 이하인 경우 도구 > 옵션 > Xamarin > 기타에서 배포 채널을 확인합니다.In Visual Studio 2015 and earlier, check the distribution channel under Tools > Options > Xamarin > Other.
  2. Mac에서 원격 로그인이 설정되었는지 확인합니다.Make sure that Remote Login is enabled on the Mac. 이 사용자만에 대한 액세스를 설정하고, Mac 사용자를 목록 또는 그룹에 포함합니다.Set access for Only these users, and make sure your Mac user is included in the list or group:

  3. 방화벽이 SSH의 기본 포트인 포트 22를 통해 들어오는 연결을 허용하는지 확인합니다.Check that your firewall allows incoming connections through port 22 - the default for SSH:

    서명된 소프트웨어가 들어오는 연결을 수신하도록 자동으로 허용을 해제하면 OS X은 연결 과정에서 들어오는 연결을 수신할 수 있도록 mono-sgen 또는 mono-sgen32를 허용해 줄 것을 요청하는 대화 상자를 표시합니다.If you have disabled Automatically allow signed software to receive incoming connections, OS X will present a dialog during the pairing process asking to allow mono-sgen or mono-sgen32 to receive incoming connections. 이 대화 상자에서 허용을 클릭합니다.Be sure to click Allow on this dialog:

  4. 해당 Mac에서 사용자 계정으로 로그인하여 GUI 세션이 활성화되었는지 확인합니다.Confirm that you are logged in to the user account on that Mac and have an active GUI session.

  5. _전체 이름_이 아닌 _사용자 이름_으로 Mac에 연결합니다.Make sure you are connecting to the Mac with the username rather than the Full Name. 이렇게 하면 악센트 부호가 있는 문자가 포함된 전체 이름의 알려진 제한을 피할 수 있습니다.This avoids a known limitation for full names that include accented characters.

    _사용자 이름_은 Terminal.app에서 whoami 명령을 실행하여 찾을 수 있습니다.You can find your username by running the whoami command in Terminal.app.

    예를 들어 아래 스크린샷에서 계정 이름은 Amy Burns가 아닌 amyb입니다.For example, from the screenshot below, the account name will be amyb and not Amy Burns:

  6. Mac에 사용하는 IP 주소가 올바른지 확인합니다.Check that the IP address you are using for the Mac is correct. IP 주소는 Mac의 시스템 기본 설정 > 공유 > 원격 로그인에서 찾을 수 있습니다.You can find the IP address under System Preferences > Sharing > Remote Login on the Mac.

  7. Mac의 IP 주소를 확인한 후에는 Windows의 cmd.exe에서 해당 주소에 대한 ping을 시도합니다.Once you have confirmed the IP address of the Mac, try a ping to that address in cmd.exe on Windows:

    ping 10.1.8.95
    

    ping이 실패하면 Windows 컴퓨터에서 해당 Mac을 _라우팅_할 수 없는 것입니다.If the ping fails, then the Mac is not routable from the Windows computer. 이 문제는 두 컴퓨터 간의 로컬 영역 네트워크 구성 수준에서 해결해야 합니다.That problem will need to be solved at the level of the local area network configuration between the 2 computers. 두 컴퓨터가 같은 로컬 네트워크에 있는지 확인합니다.Ensure that both machines are on the same Local Network.

  8. 다음으로, OpenSSH의 ssh 클라이언트가 Windows에서 Mac에 연결할 수 있는지 테스트합니다.Next, test if the ssh client from OpenSSH can connect successfully to the Mac from Windows. 이 프로그램을 설치하는 한 가지 방법은 Windows용 Git를 설치하는 것입니다.One way to install this program is to install Git for Windows. 그런 후 Git Bash 명령 프롬프트를 시작하고 사용자 이름 및 IP 주소를 사용하여 해당 Mac으로 ssh를 시도할 수 있습니다.You can then start a Git Bash command prompt and attempt to ssh in to the Mac with your username and IP address:

    ssh amyb@10.1.8.95
    
  9. 8단계가 성공하면 연결에 대해 ls 같은 간단한 명령을 실행해 볼 수 있습니다.If step 8 succeeds, you can try running a simple command like ls over the connection:

    ssh amyb@10.1.8.95 'ls'
    

    그러면 Mac의 홈 디렉터리에 있는 콘텐츠가 나열됩니다.This should list the contents of your home directory on the Mac. ls 명령은 제대로 작동하지만 Visual Studio 연결이 실패하는 경우 Xamarin의 복잡성에 대한 알려진 문제 및 제한 사항 섹션을 확인하세요.If the ls command works correctly but the Visual Studio connection still fails, you can check the Known Issues and Limitations section about complications specific to Xamarin. 어떤 것도 문제와 일치하지 않은 경우 Visual Studio에서 도움말> 의견 보내기> 문제 신고로 이동하여 개발자 커뮤니티에서 새로운 버그 보고서를 제출하고 자세한 정보 로그 파일에 설명된 로그를 첨부하세요.If none of those match your problem, please file a new bug report on Developer Community by going to Help > Send Feedback > Report a problem in Visual Studio and attach the logs described under Check the Verbose Log Files.

  10. 8단계가 실패하면 Mac의 터미널에서 다음 명령을 실행하여 SSH 서버가 모든 연결을 수락하는지 확인할 수 있습니다.If step 8 fails, you can run the following command in Terminal on the Mac to see if the SSH server is accepting any connections:

    ssh localhost
    
  11. 8단계는 실패하지만 10단계가 성공하는 경우 네트워크 구성 때문에 Windows에서 Mac 빌드 호스트의 포트 22에 액세스할 수 없는 문제일 가능성이 높습니다.If step 8 fails but step 10 succeeds, then the problem is most likely that port 22 on the Mac build host is not accessible from Windows due to the network configuration. 가능한 구성 문제는 다음과 같습니다.Possible configuration issues include:

    • OS X 방화벽 설정에서 연결을 허용하지 않습니다.The OS X firewall settings are disallowing the connection. 3단계를 다시 확인해야 합니다.Be sure to double-check step 3.

      경우에 따라 시스템 환경 설정에 표시되는 설정이 실제 동작을 반영하지 않아 OS X 방화벽에 대한 앱별 구성의 상태가 올바르지 않을 수도 있습니다.Occasionally the per-app configuration for the OS X firewall can also end up in an invalid state where the settings shown in System Preferences do not reflect the actual behavior. 구성 파일(/Library/Preferences/com.apple.alf.plist)을 삭제하고 컴퓨터를 다시 부팅하면 기본 동작을 복원하는 데 도움이 될 수 있습니다.Deleting the configuration file (/Library/Preferences/com.apple.alf.plist) and rebooting the computer can help restore the default behavior. 파일을 삭제하는 한 가지 방법으로, Finder의 이동 > 폴더로 이동에서 /라이브러리/기본 설정을 입력한 후 com.apple.alf.plist 파일을 휴지통으로 이동합니다.One way to delete the file is to enter /Library/Preferences under Go > Go to Folder in Finder, and then move the com.apple.alf.plist file to the Trash.

    • Mac 컴퓨터와 Windows 컴퓨터 사이의 라우터 중 하나의 방화벽 설정이 연결을 차단합니다.The firewall settings of one of the routers between the Mac and the Windows computer is blocking the connection.

    • Windows 자체에서 원격 포트 22에 대한 아웃바운드 연결을 허용하지 않습니다.Windows itself is disallowing outbound connections to remote port 22. 이 상황은 흔치 않습니다.This would be unusual. 아웃바운드 연결을 허용하지 않도록 Windows 방화벽을 설정할 수 있지만, 기본 설정은 모든 아웃바운드 연결을 허용하는 것입니다.It is possible to configure the Windows Firewall to disallow outbound connections, but the default setting is to allow all outbound connections.

    • Mac 빌드 호스트는 pfctl 규칙을 통해 모든 외부 호스트에서 포트 22로 액세스하는 것을 허용하지 않습니다.The Mac build host is disallowing access to port 22 from all external hosts via a pfctl rule. 과거에 pfctl을 구성한 것을 알고 있지 않는 이상, 이 가능성은 높지 않습니다.This is unlikely unless you know you have configured pfctl in the past.

  12. 8단계가 실패하고 10단계도 실패하면 Mac의 SSH 서버 프로세스가 실행되고 있지 않거나 현재 사용자의 로그인을 허용하도록 구성되지 않았을 가능성이 있습니다.If step 8 fails and step 10 fails, then the problem is likely that the SSH server process on the Mac is not running or is not configured to allow the current user to log in. 이 경우 복잡한 다른 가능성을 조사하기 전에 2단계의 원격 로그인을 다시 한 번 확인해야 합니다.In this case be sure to double-check the Remote Login settings from step 2 before you investigate any more complicated possibilities.

알려진 문제 및 제한 사항Known Issues and Limitations

참고

이 섹션은 위의 8단계 및 9단계에서 설명한 대로 OpenSSH SSH 클라이언트를 사용하여 Mac 사용자 이름과 암호로 Mac 빌드 호스트에 성공적으로 연결한 경우에만 적용됩니다.This section only applies if you have already connected successfully to the Mac build host with your Mac username and password using the OpenSSH SSH client, as discussed in steps 8 and 9 above.

"잘못된 자격 증명입니다."Invalid credentials. 다시 시도하세요."Please try again."

알려진 원인:Known causes:

  • 제한 – 이름에 악센트 부호가 포함된 경우 전체 이름 계정을 사용하여 빌드 호스트에 로그인하려고 시도하면 이 오류가 발생할 수 있습니다.Limitation – This error can appear when attempting to log in to the build host using the account Full Name if the name includes an accented character. 이는 Xamarin이 SSH 연결에 사용하는 SSH.NET 라이브러리의 제한 사항입니다.This is a limitation of the SSH.NET library that Xamarin uses for the SSH connection. 해결 방법: 위의 5단계를 참조하세요.Workaround: See step 5 above.

"SSH 키를 사용하여 인증할 수 없습니다."Unable to authenticate with SSH keys. 먼저 자격 증명으로 로그인해 보세요."Please try to log in with credentials first"

알려진 원인:Known cause:

  • SSH 보안 제한 - 이 메시지는 Mac의 정규화된 경로 $HOME/.ssh/authorized_keys의 파일 또는 디렉터리 중 하나에서 기타 또는 그룹 구성원에 대한 쓰기 권한이 설정되었음을 의미하는 경우가 가장 많습니다.SSH security restriction – This message most often means that one of the files or directories in the fully qualified path of $HOME/.ssh/authorized_keys on the Mac has write permissions enabled for other or group members. 일반적인 해결 방법: Mac의 터미널 명령 프롬프트에서 chmod og-w "$HOME" 명령을 실행합니다.Common fix: Run chmod og-w "$HOME" in a Terminal command prompt on the Mac. 문제를 일으키는 파일 또는 디렉터리에 대한 세부 정보를 보려면 터미널에서 grep sshd /var/log/system.log > "$HOME/Desktop/sshd.log" 명령을 실행하고, 데스크톱에서 sshd.log 파일을 연 후 "인증 거부됨: 소유권 또는 모드가 잘못됨"을 찾아봅니다.For details about which particular file or directory is causing the problem, run grep sshd /var/log/system.log > "$HOME/Desktop/sshd.log" in Terminal, and then open the sshd.log file from your Desktop and look for "Authentication refused: bad ownership or modes".

"연결하는 중..."이 완료되지 않음"Trying to connect..." never completes

  • 버그 #52264시스템 환경 설정 > 사용자 & 그룹의 Mac 사용자에 대한 고급 옵션 상황에 맞는 메뉴의 로그인 셸/bin/bash 이외의 값으로 설정된 경우 Xamarin 4.1에서 이 문제가 발생할 수 있습니다.Bug #52264 – This problem can happen on Xamarin 4.1 if the Login shell in the Advanced Options context menu for the Mac user in System Preferences > Users & Groups is set to a value other than /bin/bash. (Xamarin 4.2부터는 이 시나리오가 "연결할 수 없음" 오류 메시지로 연결됩니다.) 해결 방법: 로그인 셸/bin/bash의 원래 기본값으로 변경합니다.(Starting with Xamarin 4.2, this scenario instead leads to the "Couldn't connect" error message.) Workaround: Change the Login shell back to the original default of /bin/bash.

"MacBuildHost.local에 연결할 수 없습니다."Couldn't connect to MacBuildHost.local. 다시 시도하세요."Please try again."

보고된 원인:Reported causes:

  • 버그 - 일부 사용자가 Active Directory 또는 다른 디렉터리 서비스 도메인 사용자 계정을 사용하여 빌드 호스트에 로그인하려고 시도하면 이 오류 메시지와 함께 로그 파일에 "사용자에 대해 SSH를 구성하는 동안 예기치 않은 오류가 발생했습니다. 세션 작업 시간이 초과되었습니다."라는 구체적인 오류 메시지가 표시되는 것을 목격했습니다.Bug – A few users have seen this error message along with a more detailed error in the log files "An unexpected error occurred while configuring SSH for the user ... Session operation has timed out" when attempting to log in to the build host using an Active Directory or other directory service domain user account. 해결 방법: 로컬 사용자 계정을 사용하여 빌드 호스트에 로그인합니다.Workaround: Log in to the build host using a local user account instead.

  • 버그 - 일부 사용자가 [연결] 대화 상자에서 Mac 이름을 두 번 클릭하여 빌드 호스트에 연결하려고 시도하면 이 오류가 발생하는 것을 목격했습니다.Bug – Some users have seen this error when attempting to connect to the build host by double-clicking the name of the Mac in the connection dialog. 가능한 해결 방법: IP 주소를 사용하여 수동으로 Mac을 추가합니다.Possible workaround: Manually add the Mac using the IP address.

  • 버그 #35971 – 일부 사용자가 Mac 빌드 호스트와 Windows 간에 무선 네트워크 연결을 사용하는 동안 이 오류를 경험했습니다.Bug #35971 – Some users have run across this error when using a wireless network connection between the Mac build host and Windows. 가능한 해결 방법: 두 컴퓨터를 유선 네트워크 연결로 이동합니다.Possible workaround: Move both computers to a wired network connection.

  • 버그 #36642 – Xamarin 4.0에서는 Mac의 $HOME/.bashrc 파일에 오류가 있을 때마다 이 메시지가 표시됩니다.Bug #36642 – On Xamarin 4.0, this message will appear anytime the $HOME/.bashrc file on the Mac contains an error. (Xamarin 4.1부터는 .bashrc 파일의 오류가 더 이상 연결 프로세스에 영향을 주지 않습니다.) 해결 방법: .bashrc 파일을 백업 위치로 이동합니다(또는 이 파일이 필요 없는 경우 파일을 삭제).(Starting with Xamarin 4.1, errors in the .bashrc file will no longer affect the connection process.) Workaround: Move the .bashrc file to a backup location (or delete it if you know you don't need it).

  • 버그 #52264시스템 환경 설정 > 사용자 및 그룹의 Mac 사용자에 대한 고급 옵션 상황에 맞는 메뉴의 로그인 셸/bin/bash 이외의 값으로 설정된 경우 이 오류가 발생할 수 있습니다.Bug #52264 – This error can appear if the Login shell in the Advanced Options context menu for the Mac user in System Preferences > Users & Groups is set to a value other than /bin/bash. 해결 방법: 로그인 셸/bin/bash의 원래 기본값으로 변경합니다.Workaround: Change the Login shell back to the original default of /bin/bash.

  • 제한 – Mac 빌드 호스트가 인터넷에 액세스할 수 없는 라우터에 연결되어 있는 경우(또는 Windows 컴퓨터의 역방향 DNS 조회가 요청되면 Mac에서 사용 중인 DNS 서버의 시간이 초과되는 경우) 이 오류가 발생할 수 있습니다.Limitation – This error can appear if the Mac build host is connected to a router that has no access to the internet (or if the Mac is using a DNS server that times out when asked for the reverse-DNS lookup of the Windows computer). Visual Studio가 SSH 지문을 검색하고 결국 연결에 실패할 때까지 약 30초가 걸립니다.Visual Studio will take roughly 30 seconds to retrieve the SSH fingerprint and eventually fail to connect.

    가능한 해결 방법: sshd_config 파일에 “UseDNS no”를 추가합니다.Possible workaround: Add "UseDNS no" to the sshd_config file. 변경하기 전에 이 SSH 설정에 대해 꼭 읽어보아야 합니다.Be sure to read about this SSH setting before changing it. unix.stackexchange.com/questions/56941/what-is-the-point-of-sshd-usedns-option 예제를 참조하세요.See for example unix.stackexchange.com/questions/56941/what-is-the-point-of-sshd-usedns-option.

    다음 단계는 설정을 변경하는 방법 중 한 가지를 설명합니다.The following steps describe one way to change the setting. 단계를 완료하려면 Mac에서 관리자 계정으로 로그인해야 합니다.You will need to be logged in to an administrator account on the Mac to complete the steps.

    1. 터미널 명령 프롬프트에서 ls /etc/ssh/sshd_configls /etc/sshd_config 명령을 실행하여 sshd_config 파일의 위치를 확인합니다.Confirm the location of the sshd_config file by running ls /etc/ssh/sshd_config and ls /etc/sshd_config in a Terminal command prompt. 나머지 단계에서는 "해당 파일 또는 디렉터리 없음" 오류 메시지를 반환하지 않는 위치를 사용해야 합니다.For all of the remaining steps, be sure to use the location that does not return "No such file or directory".

    2. 터미널에서 cp /etc/ssh/sshd_config "$HOME/Desktop/" 명령을 실행하여 데스크톱으로 파일을 복사합니다.Run cp /etc/ssh/sshd_config "$HOME/Desktop/" in Terminal to copy the file to your desktop.

    3. 데스크톱의 텍스트 편집기에서 파일을 엽니다.Open the file from your Desktop in a text editor. 예를 들어 터미널에서 open -a TextEdit "$HOME/Desktop/sshd_config" 명령을 실행할 수 있습니다.For example you can run open -a TextEdit "$HOME/Desktop/sshd_config" in Terminal.

    4. 파일 맨 아래에 다음 줄을 추가합니다.Add the following line at the bottom of the file:

      UseDNS no
      
    5. 새 설정이 적용되도록 UseDNS yes를 표시하는 줄을 제거합니다.Remove any lines that say UseDNS yes to make sure the new setting takes effect.

    6. 파일을 저장합니다.Save the file.

    7. 터미널에서 sudo cp "$HOME/Desktop/sshd_config" /etc/ssh/sshd_config 명령을 실행하여 편집된 파일을 원래 위치로 복사합니다.Run sudo cp "$HOME/Desktop/sshd_config" /etc/ssh/sshd_config in Terminal to copy the edited file back into place. 암호를 요구하는 메시지가 표시되면 암호를 입력합니다.Enter your password if prompted.

    8. 시스템 환경 설정 > 공유 > 원격 로그인에서 원격 로그인을 해제했다가 다시 설정하여 SSH 서버를 다시 시작합니다.Disable and re-enable Remote Login under System Preferences > Sharing > Remote Login to restart the SSH server.

Mac에서 브로커, IDB, 빌드 및 디자이너 에이전트 지우기Clearing the Broker, IDB, Build, and Designer Agents on the Mac

Mac 에이전트와 관련된 "설치", "업로드" 또는 "시작" 단계에서 로그 파일에 문제가 발생하는 경우 Visual Studio가 에이전트를 강제로 다시 시작하도록 XMA 캐시 폴더를 삭제하는 방법을 시도해 볼 수 있습니다.If your log files show a problem during the "Installing", "Uploading", or "Starting" steps for any of Mac agents, you can try deleting the XMA cache folder to force Visual Studio to re-upload them.

  1. Mac의 터미널에서 다음 명령을 실행합니다.Run the following command in Terminal on the Mac:

    open "$HOME/Library/Caches/Xamarin"
    
  2. 컨트롤 키를 누른 상태로 XMA 폴더를 클릭하고 휴지통으로 이동을 선택합니다.Control-click the XMA folder and select Move to Trash:

  3. 또한 Windows에는 지우는 것이 더 좋은 캐시가 있습니다.There is a cache on Windows as well that it may help to clear. Windows에서 관리자 권한으로 명령 프롬프트를 엽니다.Open a cmd prompt as Administrator on Windows:

    del %localappdata%\Temp\Xamarin\XMA
    

경고 메시지Warning Messages

이 섹션에서는 출력 창 및 일반적으로 무시해도 되는 로그에 나타날 수 있는 몇 가지 메시지에 대해 설명합니다.This section discusses a few messages that can appear in the Output windows and logs that you can usually ignore.

"...설치된 Xamarin.iOS와 로컬 Xamarin.iOS가 일치하지 않습니다.""There is a mismatch between the installed Xamarin.iOS ... and the local Xamarin.iOS"

Mac과 Windows를 동일한 Xamarin 배포 채널로 업데이트한 것을 확인했다면 이 경고를 무시해도 됩니다.As long as you have confirmed that both Mac and Windows are updated to the same Xamarin distribution channel, this warning is ignorable.

“'ls /usr/bin/mono' 실행 실패: ExitStatus=1”"Failed to execute 'ls /usr/bin/mono': ExitStatus=1"

Mac에서 OS X 10.11(El Capitan) 이상을 실행 중이면 이 메시지를 무시해도 됩니다.This message is ignorable as long as the Mac is running OS X 10.11 (El Capitan) or newer. OS X 10.11에서는 이 메시지가 표시되어도 아무 문제 없습니다. OS X 10.11의 mono에 대한 올바른 예상 위치인 /usr/local/bin/mono를 Xamarin에서도 검사하기 때문입니다.This message is not a problem on OS X 10.11 because Xamarin also checks /usr/local/bin/mono, which is the correct expected location for mono on OS X 10.11.

"Bonjour 서비스 'MacBuildHost'가 IP 주소에 응답하지 않았습니다.""Bonjour service 'MacBuildHost' did not respond with its IP address."

[연결] 대화 상자에 Mac 빌드 호스트의 IP 주소가 표시되는 한, 이 메시지를 무시해도 됩니다.This message is ignorable unless you notice that the connection dialog does not display the IP address of Mac build host. 대화 상자에 IP 주소가 없는 경우 수동으로 Mac을 추가할 수 있습니다.If the IP address is missing in that dialog, you can still manually add the Mac.

"10.1.8.95의 사용자 a는 잘못된 사용자입니다." 및 "input_userauth_request: 잘못된 사용자 a [사전 인증]""Invalid user a from 10.1.8.95" and "input_userauth_request: invalid user a [preauth]"

sshd.log를 살펴볼 때 이 메시지를 발견할 수 있습니다.You might notice this messages if you look in the sshd.log. 이러한 메시지는 정상적인 연결 프로세스의 일부입니다.These messages are part of the normal connection process. Xamarin이 _SSH 지문_을 검색할 때 임시로 사용자 이름 a를 사용하기 때문에 이러한 메시지가 표시됩니다.They appear because Xamarin uses the username a temporarily when retrieving the SSH Fingerprint.

출력 창 및 로그 파일Output Window and Log Files

Visual Studio가 빌드 호스트에 연결할 때 오류가 발생하면 출력 창 및 로그 파일 2곳에서 추가 메시지를 확인해야 합니다.If Visual Studio hits an error when connecting to the build host, there are 2 locations to check for additional messages: the Output window and the log files.

출력 창Output Window

출력 창은 시작하기에 가장 좋은 위치입니다.The Output window is the best place to start. 출력 창에는 주 연결 단계 및 오류에 대한 메시지가 표시됩니다.It displays messages about the main connection steps and errors. 출력 창에서 Xamarin 메시지를 보려면:To view the Xamarin messages in the Output window:

  1. 메뉴에서 보기 > 출력을 선택하거나 출력 탭을 클릭합니다.Select View > Output from the menus or click the Output tab.
  2. 다음에서 출력 보기 드롭다운 메뉴를 클릭합니다.Click the Show output from drop-down menu.
  3. Xamarin을 선택합니다.Select Xamarin.

로그 파일Log Files

출력 창의 정보가 문제를 진단하기에 충분하지 않은 경우 그 다음으로 살펴볼 위치는 로그 파일입니다.If the Output window does not include enough information to diagnose the problem, the log files are the next place to look. 로그 파일에는 출력 창에 나타나지 않는 추가 진단 메시지가 포함되어 있습니다.The log files contain additional diagnostic messages that do not appear in the Output window. 로그 파일을 보려면:To view the log files:

  1. Visual Studio를 시작합니다.Start Visual Studio.

    중요

    .svclogs는 기본적으로 사용되지 않습니다.Note that .svclogs are not enabled by default. 이 파일에 액세스하려면 버전 로그 가이드에 설명된 대로 자세한 로그를 사용하여 Visual Studio를 시작해야 합니다.To access them you will need to start Visual Studio with verbose logs as explained in the Version Logs guide. 자세한 내용은 활동 로그를 사용하여 확장 문제 해결 블로그를 참조하세요.For more information, refer to the Troubleshooting Extensions with the Activity Log blog.

  2. 빌드 호스트에 연결을 시도합니다.Attempt to connect to the build host.

  3. Visual Studio에서 연결 오류가 발생하면 도움말 > Xamarin > Zip 로그에서 로그를 수집합니다.After Visual Studio hits the connection error, collect the logs from Help > Xamarin > Zip Logs:

  4. .zip 파일을 열면 아래 예제와 비슷한 파일 목록이 표시됩니다.When you open the .zip file, you will see a list of files similar to the example below. 연결 오류에서 가장 중요한 파일은 *Ide.log*Ide.svclog 파일입니다.For connection errors, the most important files are the *Ide.log and *Ide.svclog files. 두 파일에는 동일한 메시지가 약간 다른 형식으로 포함되어 있습니다.These files contain the same messages in two slightly different formats. .svclog는 XML이고, 메시지를 탐색하려는 경우에 유용합니다.The .svclog is XML and is useful if you want to browse through the messages. .log는 일반 텍스트이고, 명령줄 도구를 사용하여 메시지를 필터링하려는 경우에 유용합니다.The .log is plain text and is useful if you want to filter the messages using command line tools.

    모든 메시지를 탐색하려면 .svclog 파일을 선택하여 엽니다.To browse through all the messages, select and open the .svclog file:

  5. Microsoft Service Trace Viewer에서 .svclog 파일이 열립니다.The .svclog file will open in Microsoft Service Trace Viewer. 메시지를 스레드 단위로 검색하면서 관련 메시지 그룹을 살펴볼 수 있습니다.You can browse the messages by thread to see related groups of messages. 스레드 단위로 검색하려면 Graph 탭을 선택한 다음, 레이아웃 모드 드롭다운 메뉴를 클릭하고 스레드를 선택합니다.To browse by thread, first select the Graph tab, then click the Layout Mode drop-down menu and select Thread:

자세한 정보 표시 로그 파일Verbose Log Files

일반 로그 파일이 제공하는 정보가 문제를 진단하기에 충분하지 않은 경우 마지막 방법으로 자세한 정보 로깅을 사용하도록 설정합니다.If the normal log files still do not provide sufficient information to diagnose the problem, one last technique to try is to enable verbose logging. 자세한 정보 로그는 버그 보고서에서도 선호되는 정보입니다.The verbose logs are also preferred on bug reports.

  1. Visual Studio를 종료합니다.Quit Visual Studio.

  2. 개발자 명령 프롬프트를 시작합니다.Start a Developer Command Prompt.

  3. 명령 프롬프트에서 다음 명령을 실행하여 자세한 정보 로깅으로 Visual Studio를 시작합니다.Run the following command in the command prompt to launch Visual Studio with verbose logging:

    devenv /log
    
  4. Visual Studio에서 빌드 호스트에 연결을 시도합니다.Attempt to connect to the build host from Visual Studio.

  5. Visual Studio에서 연결 오류가 발생하면 도움말 > Xamarin > Zip 로그에서 로그를 수집합니다.After Visual Studio hits the connection error, collect the logs from Help > Xamarin > Zip Logs.

  6. Mac의 터미널에서 다음 명령을 실행하여 SSH 서버에 있는 최근 로그 메시지를 데스크톱에 있는 파일로 복사합니다.Run the following command in Terminal on the Mac to copy any recent log messages from the SSH server into a file on your Desktop:

    grep sshd /var/log/system.log > "$HOME/Desktop/sshd.log"
    

자세한 정보 로그 파일이 제공하는 정보가 문제를 직접 해결하기에 충분하지 않은 경우 새 버그 보고서를 작성하고 5단계의 .zip 파일과 6단계의 .log 파일을 첨부해 주세요.If these verbose log files do not provide enough clues to resolve the issue directly, please file a new bug report and attach both the .zip file from step 5 and the .log file from step 6.

자동 Mac 프로비전 문제 해결Troubleshooting automatic Mac provisioning

IDE 로그 파일IDE log files

자동 Mac 프로비전을 사용하는 데 문제가 발생하면 %LOCALAPPDATA%\Xamarin\Logs\15.0에 저장된 Visual Studio 2017 IDE 로그를 살펴보세요.If you encounter any trouble using automatic Mac provisioning, take a look at the Visual Studio 2017 IDE logs, stored in %LOCALAPPDATA%\Xamarin\Logs\15.0.

빌드 및 배포 오류 문제 해결Troubleshooting Build and Deployment Errors

이 섹션에서는 Visual Studio가 빌드 호스트에 성공적으로 연결된 후 발생할 수 있는 몇 가지 문제를 다룹니다.This section covers a few problems that can happen after Visual Studio connects successfully to the build host.

"사용자 'macuser'로 주소 '192.168.1.2:22'에 연결할 수 없습니다.""Unable to connect to Address='192.168.1.2:22' with User='macuser'"

알려진 원인:Known causes:

  • Xamarin 4.1 보안 기능 - Xamarin 4.1 이상을 사용한 후 Xamarin 4.0으로 다운그레이드하면 이 오류가 발생합니다.Xamarin 4.1 security feature – This error will happen if you downgrade to Xamarin 4.0 after using Xamarin 4.1 or higher. 이 경우 오류와 함께 추가 경고 "개인 키는 암호화되었지만 암호가 비어 있습니다."가 표시됩니다.In this case the error will be accompanied by the additional warning "Private key is encrypted but passphrase is empty". 이는 Xamarin 4.1의 새로운 보안 기능으로 인한 의도적인 변경 내용입니다.This is an intentional change due to a new security feature in Xamarin 4.1. 권장 해결 방법: %LOCALAPPDATA%\Xamarin\MonoTouch에서 id_rsaid_rsa.pub을 삭제한 후 Mac 빌드 호스트에 다시 연결합니다.Recommended fix: Delete id_rsa and id_rsa.pub from %LOCALAPPDATA%\Xamarin\MonoTouch, and then reconnect to the Mac build host.

  • SSH 보안 제한 – 이 메시지와 함께 추가 경고 "기존 ssh 키를 사용하여 사용자를 인증할 수 없습니다."가 표시되는 경우 Mac의 정규화된 경로 $HOME/.ssh/authorized_keys의 파일 또는 디렉터리 중 하나에서 기타 또는 그룹 구성원에 대한 쓰기 권한이 설정되었음을 의미하는 경우가 가장 많습니다.SSH security restriction – When this message is accompanied by the additional warning "Could not authenticate the user using the existing ssh keys", it most often means one of the files or directories in the fully qualified path of $HOME/.ssh/authorized_keys on the Mac has write permissions enabled for other or group members. 일반적인 해결 방법: Mac의 터미널 명령 프롬프트에서 chmod og-w "$HOME" 명령을 실행합니다.Common fix: Run chmod og-w "$HOME" in a Terminal command prompt on the Mac. 문제를 일으키는 파일 또는 디렉터리에 대한 세부 정보를 보려면 터미널에서 grep sshd /var/log/system.log > "$HOME/Desktop/sshd.log" 명령을 실행하고, 데스크톱에서 sshd.log 파일을 연 후 "인증 거부됨: 소유권 또는 모드가 잘못됨"을 찾아봅니다.For details about which particular file or directory is causing the problem, run grep sshd /var/log/system.log > "$HOME/Desktop/sshd.log" in Terminal, and then open the sshd.log file from your Desktop and look for "Authentication refused: bad ownership or modes".

네트워크 공유에서 솔루션을 로드할 수 없습니다.Solutions cannot be loaded from a Network Share

솔루션이 로컬 Windows 파일 시스템 또는 매핑된 드라이브에 있는 경우에만 컴파일됩니다.Solutions will only be compiled if they are on the local Windows file system or a mapped drive.

네트워크 공유에 저장된 솔루션은 오류를 throw 하거나 컴파일을 완전히 거부합니다.Solutions that are saved in a network share might throw errors, or completely refuse to compile. Visual Studio에서 사용되는 모든 .sln 파일은 로컬 Windows 파일 시스템에 저장해야 합니다.Any .sln files used in Visual Studio should be saved on the local Windows file system.

이 문제 때문에 다음 오류가 throw 됩니다.The following error is thrown because of this problem:

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.

관련 버그: #36195related bug: #36195

프로비전 프로필이 없거나 "the a fat 라이브러리를 만들지 못했습니다" 오류Missing Provisioning Profiles or "Failed to create the a fat library" Error

Mac에서 Xcode를 시작한 후 Apple 개발자 계정에 로그인되었는지 그리고 iOS 개발 프로필이 다운로드되었는지 확인합니다.Launch Xcode on the Mac and ensure that your Apple developer account is logged in and your iOS Development Profile is downloaded:

"연결할 수 없는 네트워크에서 소켓 작업을 시도했습니다.""A socket operation was attempted to an unreachable network"

보고된 원인:Reported causes:

  • 향상된 기능 #36118 - Visual Studio에서 IPv6 주소를 사용하여 빌드 호스트에 연결하는 경우 이 오류 때문에 성공한 빌드가 차단될 수 있습니다.Enhancement #36118 – This error can prevent successful builds when Visual Studio is using an IPv6 address to connect to the build host. (빌드 호스트 연결에서는 아직 IPv6 주소를 지원하지 않습니다.)(The build host connection does not yet support IPv6 addresses.)

베타/알파 채널을 다시 설치한 후 Xamarin.iOS Visual Studio 플러그 인이 로드되지 않음Xamarin.iOS Visual Studio plugin fails to load after reinstallation of beta/alpha channel

관련 버그 #40781.Relevant bug #40781.

Visual Studio가 MEF 구성 요소 캐시 새로 고침에 실패할 경우 이 문제가 발생할 수 있습니다.This issue may happen when Visual Studio fails to refresh the MEF component cache. 그러한 경우 다음 Visual Studio 확장을 설치하면 도움이 될 수 있습니다. https://visualstudiogallery.msdn.microsoft.com/22b94661-70c7-4a93-9ca3-8b6dd45f47cdIf that's the case, installing this Visual Studio extension may help: https://visualstudiogallery.msdn.microsoft.com/22b94661-70c7-4a93-9ca3-8b6dd45f47cd

이렇게 하면 Visual Studio MEF 구성 요소 캐시를 삭제하여 캐시 손상으로 인한 문제가 해결됩니다.This will clear the Visual Studio MEF component cache to fix issues with cache corruption.

Mac에 있는 기존 빌드 호스트 프로세스로 인한 오류Errors due to existing Build Host Processes on the Mac

경우에 따라 이전 빌드 호스트 연결의 프로세스가 현재 활성 연결의 동작을 방해할 수 있습니다.Processes from previous build host connections can sometimes interfere with the behavior of the current active connection. 기존 프로세스를 확인하려면 Visual Studio를 닫고 Mac의 터미널에서 다음 명령을 실행합니다.To check for any existing processes, close Visual Studio and then run the following commands in Terminal on the Mac:

ps -A | grep mono

기존 프로세스를 종료하려면 다음 명령을 사용합니다.To kill the existing processes use the following command:

killall mono

Mac 빌드 캐시 지우기Clearing the Mac Build Cache

빌드 문제를 해결하고 동작이 Mac에 저장된 임시 빌드 파일과 관련되지 않게 하려면 빌드 캐시 폴더를 삭제합니다.If you are troubleshooting a build problem and want to make sure the behavior is not related to any of temporary build files stored on the Mac, you can delete the build cache folder.

  1. Mac의 터미널에서 다음 명령을 실행합니다.Run the following command in Terminal on the Mac:

    open "$HOME/Library/Caches/Xamarin"
    
  2. 컨트롤 키를 누른 상태로 mtbs 폴더를 클릭하고 휴지통으로 이동을 선택합니다.Control-click the mtbs folder and select Move to Trash: