A certain engineer "COMPLEX"

開発メモ その206 "VCRemoteClean" タスクは、必要なパラメーター "RemoteRootDirectory" に対して値を指定されていませんでした。

意味が分からないエラー

Introduction


掲題の通りなんですが、情報が少ないんですよ。
問題は、iOSのクロスプラットフォームC++ライブラリをVisual Studioからビルドする際のエラー。

Xamarinの場合はMacホストと接続できていないよ、って教えてくれるのですが、そんな便利機能、流石C++。あるわけない。

それで何とか見つけたのが公式。
公式が役立つのはかなり久しぶりな気がします。

How to do?


要するにビルド環境、つまりMacにつながらないよって、エラーなのですが...
プロジェクトの設定ではなく、Visual Studio全体のオプションに答えがあります。

上のオプションで設定できるのですが、まずはMac側で設定が必要です。

1. vcremoteのインストール

ここに書いてあるのが、なんとNode.jsが必要。しかもバージョンが指定されている徹底ぶり。
ここは素直に従うべきです。ただでさえ意味不明なエラーが多いiOSのクロスプラットフォームライブラリ作成。
余計なことはしないほうが無難です。

Node.js version 12.14.1 and npm version 6.13.4

Install version 12.14.1 of Node.js on your Mac. If you install the Node.js package, it should come with npm version 6.13.4. Other versions of Node.js and npm may not support some modules used in the remote agent vcremote, which can cause vcremote installation to fail. We recommend you install Node.js by using a package manager such as Node Version Manager. Avoid using the command sudo to install Node.js, as some modules can fail to install when using sudo.

なので

  • Node.jsは12.14.1
  • npmは6.13.4
  • nvm推奨
  • sudoは使うな
    ** Homebrew**は注意

を守って環境を作ります。

1-1. nvm

公式のバージョンを調べます。

Node Version Manager - POSIX-compliant bash script to manage multiple active node.js versions - nvm-sh/nvm

最新は2020/05/30時点でv0.35.3になります。
これを利用してMacにビルドに使うユーザでログインし、下記でインストールします。

インストールが完了すると.bash_profileに追加されます。
環境変数を反映させインストール出来ているかをチェックします。

1-2. Node.js

nvmが入ったので、サクサクインストールします。

これで、npmも指定されたバージョンがインストールされます。

1-3. remote agent

目的のブツです。

2. vcremote設定

vcremoteを起動します。初回起動時に色々インストールされます。
Xcode 11.5がインストールされるので少し時間がかかります。

最後に出力された、

  • Port
  • Secure
  • Pin

をVisaul Studioに10分以内に入力します。
ツール(T) - オプション(O) からクロス プラットフォーム - C++ - iOS - ペアリングを選択し、下記に上述の値を設定します。
リモートルートはログインユーザのvcremoteのパスを指定します。

入力後、ペアリングを押下すると正常に接続されたことを示すメッセージが出力されます。

3. ビルド

この状態でiOSのC++プロジェクトをビルドすることが出来るようになりますが、ここで問題が。
ビルドに失敗してログに下記のメッセージが出力されている場合があります。

この場合はMacのGUIにログインし、Xcodeを起動させ、設定画面のLocationsを開きます。

Command Line Toolsが空になっているので最新のXcodeを選択しXcodeを終了します。

この状態で念のため、vcremoteを終了し再度起動します。
初回起動以降はペアリングが済んでいれば、何も表示されずすぐに起動されます。

起動後、Visual Studioからビルドすると無事に成功するはずです。

4. 出力先はどこ?

出力されるはずのバイナリはWindows側ではなくMac側に出力されます。
具体的な場所はビルドログを見るとわかります。
または出力先に*.recipeファイルがありますので、それをテキストファイルで開きます。

BuiltOutputsに記載されています。

コメントを残す

メールアドレスが公開されることはありません。

%d人のブロガーが「いいね」をつけました。