다음을 통해 공유


iOS를 사용하여 빌드할 도구 설치 및 구성

Visual Studio를 C++를 사용한 플랫폼 간 모바일 개발 도구와 함께 사용하여 iOS 코드를 편집 및 디버그하고 iOS 시뮬레이터 또는 iOS 디바이스에 배포할 수 있습니다. 그러나 라이선스 제한으로 인해 Mac에서는 코드를 원격으로 빌드하고 실행해야 합니다. Visual Studio를 사용하여 iOS 앱을 빌드 및 실행하려면 Mac에서 원격 에이전트 vcremote를 설정 및 구성해야 합니다. vcremote 원격 에이전트는 Visual Studio의 빌드 요청을 처리하고 Mac에 연결된 iOS 디바이스 또는 Mac의 iOS 시뮬레이터에서 앱을 실행합니다.

참고 항목

Mac이 아닌 클라우드에 호스트된 Mac 서비스를 사용하는 방법에 대한 자세한 내용은 Configure Visual Studio to connect to your cloud hosted Mac(클라우드에 호스트된 Mac에 연결하도록 Visual Studio 구성)을 참조하세요. 지침은 Visual Studio Tools for Apache Cordova를 사용한 빌드에 해당합니다. 지침을 사용하여 C++로 빌드하려면 vcremoteremotebuild로 대체합니다.

iOS를 사용하여 빌드할 도구를 설치한 후에는 이 문서를 다시 참조하세요. Visual Studio 및 Mac에서 iOS 개발을 위해 vcremote를 신속하게 구성하고 업데이트하는 방법을 설명합니다.

필수 조건

vcremote 원격 에이전트를 설치하고 사용하여 iOS용 코드를 개발하려면 먼저 다음 필수 구성 요소가 있어야 합니다.

  • macOS Mojave 버전 10.14 이상을 실행하는 Mac 컴퓨터

  • Apple ID

  • 활성 Apple 개발자 프로그램 계정

    배포용이 아닌 테스트용으로 iOS 디바이스에 테스트용 로드 앱을 허용하는 체험 계정을 가져올 수 있습니다.

  • Xcode 버전 10.2.1 이상

    Xcode는 앱 스토어에서 다운로드할 수 있습니다.

  • Xcode 명령줄 도구

    Xcode 명령줄 도구를 설치하려면 Mac에서 터미널 앱을 열고 다음 명령을 입력합니다.

    xcode-select --install

  • Xcode에서 앱을 서명하는 서명 ID로 구성된 Apple ID 계정

    Xcode에서 서명 ID를 보거나 설정하려면 Xcode 메뉴를 열고 기본 설정을 선택합니다. 계정 을 선택하고 Apple ID를 선택한 다음 세부 정보 보기 단추를 선택합니다. 자세한 지침은 Apple ID 계정 추가를 참조하세요.

    서명 요구 사항에 대한 자세한 내용은 앱 서명이란을 참조하세요.

  • 개발에 iOS 디바이스를 사용하는 경우 디바이스에 대한 Xcode로 구성된 프로비저닝 프로필

    Xcode는 필요에 따라 서명 인증서를 만드는 자동 서명을 제공합니다. Xcode 자동 서명에 대한 자세한 내용은 자동 서명을 참조하세요.

    수동 서명을 수행하려면 앱에 대한 프로비저닝 프로필을 만들어야 합니다. 프로비저닝 프로필을 만드는 방법에 대한 자세한 내용은 개발 프로비저닝 프로필 만들기를 참조하세요.

  • Node.js 버전 18.12.1 및 npm 버전 8.19.2

    Mac에 Node.js 버전 18.12.1을 설치합니다. Node.js 패키지를 설치하는 경우 npm 버전 8.19.2와 함께 제공됩니다. 다른 버전의 Node.js 및 npm은 vcremote에 사용되는 일부 모듈을 지원하지 않을 수 있으며, 이로 인해 vcremote 설치가 실패할 수 있습니다. 노드 버전 관리자와 같은 패키지 관리자를 사용하여 Node.js를 설치하는 것이 좋습니다. sudo를 사용할 때 일부 모듈을 설치하지 못할 수 있으므로 명령을 sudo 사용하여 Node.js 설치하지 않습니다.

iOS용 vcremote 설치

C++ 워크로드를 사용하여 모바일 개발을 설치할 때 Visual Studio는 Mac에서 실행되는 vcremote 원격 에이전트와 통신하여 파일을 전송하고, iOS 앱을 빌드 및 실행하고, 디버깅 명령을 보낼 수 있습니다.

vcremote를 설치하기 전에 필수 구성 요소를 충족하고 C++를 사용하여 플랫폼 간 모바일 개발 설치의 설치 단계를 완료했는지 확인합니다.

vcremote를 다운로드하고 설치하려면

  • Mac의 터미널 앱에서 현재 사용 중인 Node.js 버전이 필요한 버전 18.12.1인지 확인합니다. 버전을 확인하려면 다음 명령을 실행합니다.

    node -v

    올바른 버전이 아닌 경우 필수 조건에서 Node.js 설치 지침을 따라야 할 수 있습니다. 그런 다음, Node.js를 다시 시작합니다.

  • 필요한 Node.js를 사용 중인지 확인한 후 이 명령을 실행하여 해당 Node.js 버전에서 vcremote를 설치합니다.

    npm install -g --unsafe-perm vcremote

    전역 설치(-g) 스위치는 사용하는 것이 좋지만 반드시 사용할 필요는 없습니다. 전역 설치 스위치를 사용하지 않는 경우 vcremote는 터미널 앱의 현재 활성 경로 아래에 설치됩니다.

    설치하는 동안 vcremote가 설치되고 Mac에서 개발자 모드가 활성화됩니다. Homebrew와 두 개의 npm 패키지(vcremote-libvcremote-utils)도 설치됩니다. 설치가 완료되면 건너뛴 선택적 종속성에 대한 경고를 무시해도 안전합니다.

    참고 항목

    Homebrew를 설치하려면 sudo(관리자) 액세스 권한이 있어야 합니다. sudo 없이 vcremote를 설치해야 하는 경우 위치에 Homebrew를 usr/local 수동으로 설치하고 해당 폴더를 bin 경로에 추가할 수 있습니다. 자세한 내용은 Homebrew 설명서를 참조하세요. 개발자 모드를 수동으로 사용하도록 설정하려면 터미널 앱에서 다음 명령을 입력합니다. DevToolsSecurity -enable

새 버전의 Visual Studio로 업데이트하는 경우 vcremote의 현재 버전으로도 업데이트해야 합니다. vcremote를 업데이트하려면 원격 에이전트를 다운로드하고 설치하는 단계를 반복합니다.

vcremote 시작

vcremote 원격 에이전트는 iOS 코드를 빌드하고 실행하기 위해 Visual Studio에 대해 실행되어야 합니다. Visual Studio는 vcremote와 쌍을 이루어야 통신할 수 있습니다. 기본적으로 vcremote는 보안 연결 모드에서 실행되며 Visual Studio와 Mac 컴퓨터 간에 클라이언트 및 서버 인증서를 전송해야 합니다.

참고 항목

vcremote 버전 1.0.19 이상에는 Visual Studio 2022 버전 17.5.0 미리 보기 1 이상이 필요합니다. Visual Studio 2022 버전 17.4 또는 이전 버전을 사용하는 경우 vcremote 버전 1.0.17을 설치합니다.

vcremote를 시작하려면

  • Mac의 터미널 앱에서 다음 명령을 입력합니다.

    vcremote

    이렇게 하면 기본 빌드 디렉터리가 ~/vcremote인 원격 에이전트가 시작됩니다. 자세한 구성 옵션은 Mac에서 vcremote 구성을 참조 하세요.

vcremote를 처음 시작할 때와 새 서버 인증서를 만들 때마다 Visual Studio에서 연결을 구성하는 데 필요한 정보가 제공됩니다. 정보에는 호스트 이름 및 포트가 포함됩니다. 호스트 이름을 사용하여 Visual Studio에서 원격 에이전트를 구성하려는 경우 호스트 이름을 사용하여 Windows에서 Mac을 ping하여 연결할 수 있는지 확인합니다. 그렇지 않은 경우 대신 IP 주소를 사용해야 할 수도 있습니다.

보안되지 않은 모드에서 원격 에이전트를 사용할 수 있습니다. 보안되지 않은 모드에서는 데이터를 암호화하지 않는 간단한 HTTP 연결을 사용하여 원격 에이전트를 Visual Studio에 페어링할 수 있습니다. 보안되지 않은 모드를 사용자 고유의 위험으로 사용합니다. 보안 모드를 사용하여 연결하는 것이 좋습니다.

vcremote 1.0.19 이상이 포함된 Visual Studio 2022 버전 17.5 이상:

vcremote 1.0.19 이상에서 vcremote는 Visual Studio에 server-cert.pem 업로드해야 하는 인증서 파일의 경로를 보고합니다.

vcremote 1.0.17 이하의 Visual Studio 2022 버전 17.4 및 이전 버전:

버전 1.0.17 및 이전 버전의 vcremote는 Visual Studio 2022 버전 17.4를 통해 Visual Studio 버전과의 보안 통신을 위한 PIN을 생성합니다.

VC 원격이 시작될 때 보고된 호스트 이름, 포트 및 PIN을 보여 주는 Mac 터미널 창의 스크린샷

생성된 PIN은 일회용이며 제한된 시간 동안만 유효합니다. 시간이 만료되기 전에 Visual Studio를 원격 에이전트와 페어링하지 않으면 새 PIN을 생성해야 합니다. 자세한 내용은 Generate a new security PIN을 참조하세요.

보안된 연결 모드를 사용하지 않도록 설정하려면

  • vcremote에서 보안된 연결 모드를 사용하지 않도록 설정하려면 Mac의 터미널 앱에서 다음 명령을 입력합니다.

    vcremote --secure false

보안된 연결 모드를 사용하도록 설정하려면

  • 보안된 연결 모드를 사용하도록 설정하려면 다음 명령을 입력합니다.

    vcremote --secure true

원격 에이전트를 시작한 후에는 중지할 때까지 Visual Studio에서 사용할 수 있습니다.

원격 에이전트를 중지하려면

  • vcremote가 실행되는 터미널 창에서 Ctr+C를 입력합니다.

Visual Studio에서 vcremote 구성

Visual Studio에서 vcremote 원격 에이전트에 연결하려면 Visual Studio 옵션에서 원격 구성을 지정해야 합니다. Visual Studio는 사용할 때마다 동일한 정보를 사용하여 Mac의 원격 에이전트에 연결합니다. Mac에서 새 보안 인증서를 생성하거나 호스트 이름 또는 IP 주소가 변경되지 않는 한 Visual Studio를 원격 에이전트와 다시 페어링할 필요가 없습니다.

Visual Studio 2022 버전 17.5 이상에서 vcremote를 구성하려면

  1. 에이전트가 Mac에서 아직 실행되고 있지 않은 경우 원격 에이전트 시작의 단계를 수행합니다. 프로젝트를 성공적으로 페어링, 연결 및 빌드하려면 Mac에서 Visual Studio용 vcremote를 실행해야 합니다.

  2. Mac에서 Mac의 호스트 이름 또는 IP 주소를 가져옵니다.

    터미널 창에서 ifconfig 명령을 사용하여 IP 주소를 가져올 수 있습니다. inet 활성 네트워크 인터페이스 아래에 나열된 주소를 사용합니다.

  3. Visual Studio 메뉴 모음에서 도구>옵션을 선택합니다.

  4. 옵션 대화 상자에서 플랫폼>간 C++>iOS를 확장합니다.

  5. 호스트 이름포트 필드에서 시작할 때 원격 에이전트에 의해 지정된 값을 입력합니다. 호스트 이름은 Mac의 DNS 이름 또는 IP 주소일 수 있습니다. 기본 포트는 3030입니다.

    참고 항목

    호스트 이름을 사용하여 Mac을 ping할 수 없는 경우 IP 주소를 사용해야 할 수 있습니다.

  6. 기본 보안 연결 모드에서 원격 에이전트를 사용하는 경우 보안 확인란을 선택하고 파일을 Mac에서 Visual Studio로 전송 server-cert.pem 하여 업로드합니다. 다음으로, 생성 단추를 선택하여 바탕 화면에 표시되어야 하는 새 client-cert.pem 파일을 생성합니다. 그런 다음, 클라이언트 인증서를 아래의 Mac /vcremote/certs/Authorized-Clients으로 전송합니다. (여러 클라이언트 인증서 파일을 이 디렉터리로 전송할 수 있으므로 권한이 부여된 여러 Visual Studio 컴퓨터가 이 Mac에 요청을 보낼 수 있습니다.)

    참고 항목

    USB 드라이브를 사용하여 인증서를 전송하는 경우 전송이 완료된 후 USB 드라이브에서 인증서를 삭제합니다.

  7. 연결을 선택하여 연결을 사용하도록 설정합니다.

    iOS 페어링에 대한 도구 옵션 대화 상자의 스크린샷 호스트 이름, 포트, 보안 확인란 및 원격 루트 값이 설정됩니다.

    이 페어링은 호스트 이름, 포트를 변경하거나 새 서버 또는 클라이언트 인증서를 생성할 때까지 유지됩니다. 옵션 대화 상자에서 호스트 이름 또는 포트를 변경하는 경우 되돌리기 단추를 선택하여 변경 내용을 실행 취소하고 이전 페어링으로 되돌릴 수 있습니다.

    페어링이 성공하지 못하면 원격 에이전트 시작의 단계에 따라 원격 에이전트가 실행 중인지 확인합니다. 단계에 따라 새 서버 인증서를 생성하고 새 클라이언트 인증서를 생성합니다. Mac의 호스트 이름을 사용하는 경우 대신 호스트 이름 필드에서 IP 주소를 사용해 보세요.

  8. 원격 루트 필드의 폴더 이름을 업데이트하여 Mac의 홈(~) 디렉터리에서 원격 에이전트에 사용되는 폴더를 지정합니다. 기본적으로 원격 에이전트는 /Users/<username>/vcremote를 원격 루트로 사용합니다.

  9. 확인 을 선택하여 원격 연결 설정을 저장합니다.

Visual Studio 2022 버전 17.5 이전 버전에서 vcremote를 구성하려면

  1. 에이전트가 Mac에서 아직 실행되고 있지 않은 경우 원격 에이전트 시작의 단계를 수행합니다. 프로젝트를 성공적으로 페어링, 연결 및 빌드하려면 Mac에서 Visual Studio용 vcremote를 실행해야 합니다.

  2. Mac에서 Mac의 호스트 이름 또는 IP 주소를 가져옵니다.

    터미널 창에서 ifconfig 명령을 사용하여 IP 주소를 가져올 수 있습니다. inet 활성 네트워크 인터페이스 아래에 나열된 주소를 사용합니다.

  3. Visual Studio 메뉴 모음에서 도구>옵션을 선택합니다.

  4. 옵션 대화 상자에서 플랫폼>간 C++>iOS를 확장합니다.

  5. 호스트 이름포트 필드에서 시작할 때 원격 에이전트에 의해 지정된 값을 입력합니다. 호스트 이름은 Mac의 DNS 이름 또는 IP 주소일 수 있습니다. 기본 포트는 3030입니다.

    참고 항목

    호스트 이름을 사용하여 Mac을 ping할 수 없는 경우 IP 주소를 사용해야 할 수도 있습니다.

  6. 기본 보안된 연결 모드에서 원격 에이전트를 사용하는 경우 보안 확인란을 선택한 다음 Pin 필드에 원격 에이전트에 의해 지정된 PIN 값을 입력합니다. 보안되지 않은 연결 모드에서 원격 에이전트를 사용하는 경우 보안 확인란을 선택 취소하고 Pin 필드를 비워 둡니다.

  7. 연결을 선택하여 연결을 사용하도록 설정합니다.

    iOS 페어링에 대한 도구 옵션 대화 상자의 스크린샷 호스트 이름, 포트, 보안 확인란, 핀 및 원격 루트 값이 설정됩니다.

    호스트 이름 또는 포트를 변경할 때까지 연결이 유지됩니다. 옵션 대화 상자에서 호스트 이름 또는 포트를 변경하는 경우 변경 내용을 취소하려면 되돌리기 단추를 선택하여 이전 연결로 되돌립니다.

    페어링이 성공하지 못하면 원격 에이전트 시작의 단계에 따라 원격 에이전트가 실행 중인지 확인합니다. 원격 에이전트 PIN이 생성된 후 너무 많은 시간이 경과한 경우 새 보안 PIN 생성의 단계를 수행합니다. 그런 다음, 다시 시도하세요. Mac의 호스트 이름을 사용하는 경우 대신 호스트 이름 필드에서 IP 주소를 사용해 보세요.

  8. 원격 루트 필드의 폴더 이름을 업데이트하여 Mac의 홈(~) 디렉터리에서 원격 에이전트에 사용되는 폴더를 지정합니다. 기본적으로 원격 에이전트는 /Users/<username>/vcremote를 원격 루트로 사용합니다.

  9. 확인 을 선택하여 원격 연결 설정을 저장합니다.

Generate a new security PIN

적용 대상: vcremote 버전 1.0.17 이하를 사용하는 Visual Studio 2022 버전 17.4 및 이전 버전.

원격 에이전트를 처음 시작하는 경우 생성된 PIN은 제한된 시간(기본적으로 10분) 동안만 유효합니다. 시간이 만료되기 전에 Visual Studio를 원격 에이전트에 페어링하지 않으면 새 PIN을 생성해야 합니다.

새 PIN을 생성하려면

  1. 에이전트를 중지합니다(또는 Mac에서 두 번째 터미널 앱 창을 열고 여기에 명령 입력).

  2. 터미널 앱에서 다음 명령을 입력합니다.

    vcremote generateClientCert

    원격 에이전트가 새 임시 PIN을 생성합니다. 새 PIN을 사용하여 Visual Studio를 쌍으로 연결하려면 Visual Studio에서 원격 에이전트 구성의 단계를 반복합니다.

새 클라이언트 인증서 생성

적용 대상: vcremote 버전 1.0.19 이상을 사용하는 Visual Studio 2022 버전 17.5 이상 버전.

Visual Studio에서 페어링하면 새 client-cert.pem 파일이 생성됩니다. 에서 Mac 빌드 머신 /vcremote/certs/Authorized-Clients으로 인증서 파일을 전송합니다. 이 인증서를 사용하면 Mac에서 Visual Studio 컴퓨터에서 들어오는 요청에 권한을 부여할 수 있습니다.

새 서버 인증서 생성

적용 대상: vcremote 버전 1.0.19 이상을 사용하는 Visual Studio 2022 버전 17.5 이상 버전.

보안을 위해, Visual Studio를 원격 에이전트와 연결하는 서버 인증서는 Mac의 IP 주소 또는 호스트 이름에 연결되어 있습니다. 이러한 값이 변경되면 새 서버 인증서를 생성한 후 Visual Studio를 새 값으로 다시 구성해야 합니다.

새 서버 인증서를 생성하려면

  1. vcremote 에이전트를 중지합니다.

  2. 터미널 앱에서 다음 명령을 입력합니다.

    vcremote resetServerCert

  3. 확인 메시지가 표시되면 Y을 입력합니다.

  4. Visual Studio를 Mac과 페어링하려면 Mac에서 새로 생성된 server-cert.pem 파일을 전송하고 Visual Studio에 업로드하고 Visual Studio에서 원격 에이전트 구성의 단계를 반복합니다.

Mac에서 vcremote 구성

다양한 명령줄 옵션을 사용하여 원격 에이전트를 구성할 수 있습니다. 예를 들어 빌드 요청을 수신할 포트와 파일 시스템에 유지할 최대 빌드 수를 지정할 수 있습니다. 기본적으로 해당 제한은 10개 빌드입니다. 원격 에이전트는 종료 시 최대값을 초과하는 빌드를 제거합니다.

원격 에이전트를 구성하려면

  • 원격 에이전트 명령의 전체 목록을 보려면 터미널 앱에서 다음을 입력합니다.

    vcremote --help

  • 보안 모드를 사용하지 않도록 설정하고 단순한 HTTP 기반 연결을 사용하려면 다음을 입력합니다.

    vcremote --secure false

    이 옵션을 사용하면 보안 확인란의 선택을 취소합니다.

  • 원격 에이전트 파일의 위치를 지정하려면 다음을 입력합니다.

    vcremote --serverDir directory_path

    로그 파일, 빌드 및 서버 인증서를 배치할 Mac의 위치로 바꿉 directory_path 니다. 기본적으로 이 위치는 /Users/<username>/vcremote입니다. 빌드는 이 위치에 빌드 번호를 기준으로 구성됩니다.

  • 백그라운드 프로세스를 사용하여 캡처 stdout 하고 stderr 이름이 지정된 server.log파일을 사용하려면 다음을 입력합니다.

    vcremote > server.log 2>&1 &

    이 파일은 server.log 빌드 문제를 해결하는 데 도움이 될 수 있습니다.

  • 명령줄 매개 변수 대신 구성 파일을 사용하여 에이전트를 실행하려면 다음 명령을 입력합니다.

    vcremote --config config_file_path

    JSON 형식의 구성 파일 경로로 바꿉 config_file_path 다. 시작 옵션과 해당 값에 대시가 포함되어서는 안 됩니다.

원격 에이전트 문제 해결

iOS 디바이스에서 디버깅

iOS 디바이스에서 디버깅이 작동하지 않는 경우 iOS 디바이스와 통신하는 데 사용되는 도구에 문제가 ideviceinstaller 있을 수 있습니다. 이 도구는 일반적으로 vcremote를 설치하는 동안 Homebrew에서 설치됩니다. 해결 방법으로 다음 단계를 수행합니다.

터미널 앱을 열고 다음을 순서대로 실행하여 ideviceinstaller 및 해당 종속성을 업데이트합니다.

  1. Homebrew가 업데이트되었는지 확인

    brew update

  2. libimobiledeviceusbmuxd 제거

    brew uninstall --ignore-dependencies libimobiledevice

    brew uninstall --ignore-dependencies usbmuxd

  3. 최신 버전의 libimobiledeviceusbmuxd 설치

    brew install --HEAD usbmuxd

    brew unlink usbmuxd

    brew link usbmuxd

    brew install --HEAD libimobiledevice

  4. ideviceinstaller 제거 후 다시 설치

    brew uninstall ideviceinstaller

    brew install ideviceinstaller

디바이스에 설치된 앱을 나열하여 ideviceinstaller가 디바이스와 통신할 수 있는지 확인합니다.

ideviceinstaller -l

폴더/var/db/lockdown에 액세스할 수 없다는 오류를 보고하는 경우 ideviceinstaller 다음 명령을 사용하여 폴더에 대한 권한을 변경합니다.

sudo chmod 777 /var/db/lockdown

그런 다음 ideviceinstaller가 디바이스와 통신할 수 있는지 다시 확인합니다.

참고 항목