Loading... Search articles

Search for articles

Sorry, but we couldn't find any matches...

But perhaps we can interest you in one of our more popular articles?
How to use remote access to Codemagic virtual MacOS build machine

Codemagicの仮想MacOSビルドマシンへのリモートアクセスの使い方

Sep 12, 2021

本記事は2021年7月に更新されました。

各セッション中にCodemagicのビルドが実行される仮想MacOSビルドマシンへの一時的な リモートアクセス/接続 が可能になりました。

まだCodemagicのユーザーでない場合は、こちらでサインアップできます:

サインアップ

リモートマシンへの接続には2つの方法があります:

-SSHアクセス -VNC Viewer

仮想MacOSマシンへのリモートアクセスは、MacOSシステムにアクセスできない人々に全く新しい可能性をもたらします。
Click to tweet

Slackで6000人以上のモバイルアプリ開発者とつながってくださいCodemagicコミュニティに参加

本記事は Souvik Biswas が執筆いたしました。

事前インストールされたソフトウェア

このリモートMacOSマシンには、複数のバージョンのXcodeや**iOSシミュレーター(複数)**など、Flutterプロジェクトのテストやデバッグに必要な重要なソフトウェアが事前に用意されています。

Macを持っていなくても、FlutterアプリをiOSシミュレーターで動作させてパフォーマンスをテストしたり、XcodeでFlutterプロジェクトの構成を変更したりできます。

事前インストールされたソフトウェアの全リストはこちらからご覧いただけます。

仮想ビルドマシンへのアクセス

SSHVNC Viewerを使用して仮想ビルドマシンにアクセスするには、以下の手順に従います。

**注意:**仮想マシンへのSSHまたはVNC接続の確立は、手動でトリガーされたビルドでのみ可能です。

  1. プロジェクトをCodemagicで開きます

  2. **新規ビルドを開始(Start new build)**をクリックします。

  3. ビルド構成を指定ダイアログボックスで、正しいブランチワークフローを選択し、再度新規ビルドを開始をクリックするとビルドプロセスが開始されます。

  4. ビルドが始まると、「SSHまたはVNCクライアントでビルドマシンを探索」タブをを展開し、しばらく待つと、SSHまたはVNC接続を確立するための指示が表示されます。

SSHによるアクセス

SSH接続では、ターミナルを介してのみビルドマシンにアクセスし、そこでコマンドを実行することができます。

SSH接続を確立するためのスクリプトは、LinuxMacOSでネイティブに動作します。ですが、Windowsで動作させたい場合は、追加のソフトウェアが必要になります。

SSH接続を確立するには、ターミナルから(LinuxとMacOSで)curlコマンドを実行するだけです。

ターミナルにcurlコマンドをコピー&ペーストします。Enterを押すと、リモートMacOSシステムに接続します。

これでVMへのアクセスが可能になりました。

クローンされたプロジェクトは、パス /Users/builder/clone で利用できます。次のコマンドを実行するだけでパスにナビゲートします:

cd clone

SSHセッションは、ビルドステップがすべて完了してから最大20分間、またはビルド時間の最大制限に達するまでのいずれか早い方の時間の間アクティブになります。

SSHアクセスは、ビルドのデバッグに最適なオプションです。CIジョブ中に実行されたプロセスを確認したり、ビルド中に実行されたコマンドをすべて再現したり、カスタムスクリプトをデバッグしたりできます。sudoアクセスでVMを完全に制御できます。

ヒント: codemagic.yaml スクリプトのbashコマンドを、SSHアクセスでビルダーマシン上で直接再実行して、正しい出力が得られるかどうかを確認できます。

すべての環境変数にアクセスできます。ビルダー上で printenv というコマンドを実行すると、それらを見れます。

VNC Viewerによるアクセス

VNC Viewerでは、グラフィカルなインターフェイスを使ってリモートビルドマシンにアクセスできます。これにより、MacOSマシンを所有していなくても、Flutterアプリをシミュレーター上で実行し、そのパフォーマンスを理解することができます。

  1. [VNC Viewer]をダウンロード(https://www.realvnc.com/en/connect/download/viewer/ ‘Remote access virtual Mac build machine’)します。

  2. VNC Viewerをインストールして実行します。

  3. ここで、ホストIDポート番号をコピーして、次の形式で**_VNCサーバーアドレスフィールド**に貼り付けます:<ホストID>:<ポート番号>(例: 192.159.66.83:16543)。その後、 Enter を押します。

  4. 警告メッセージが表示されますが、単に**続行(Continue)**をクリックします。

  5. Codemagic UIで生成されたユーザー名パスワードを入力して、OKをクリックします。

これでリモートMacOSビルドマシンに接続されました。接続が確立されると、システムのデスクトップが表示されます。

VNCセッションは、ビルドステップがすべて完了してから最大20分間、またはビルド時間の最大制限に達するまでのいずれか早い方の時間の間アクティブになります。

異なるアプリケーションへのアクセス方法

MacOSの環境に慣れていない場合、リモートMac内のさまざまなアプリケーションにアクセスするのが難しいと感じるかもしれません。ご安心ください。ターミナルを使って様々なアプリケーションを起動できます。

ドックにあるターミナルのアイコンをクリックすると、ターミナルにアクセスできます。

ターミナルを使えば、SafariXcodeSimulatorなど、Macで様々なアプリケーションを簡単に起動できます。

シミュレーターでの実行

MacOSをお使いでない方は、まず、FlutterアプリをiOSシミュレーターで実行することになるでしょう。では、シミュレーターでアプリを実行する方法をご紹介いたします。

まず、仮想MacOSシステム上でiOSシミュレーターを起動します。

ビルドマシンには、異なるバージョンのシミュレーターが搭載されています。そのため、最初に、ビルドする対象のiOSバージョンでアプリをテストする必要があります。

ビルドマシンにインストールされているシミュレーターのバージョンはすべて、以下のコマンドで確認できます:

xcrun simctl list

次のコマンドを使って、デフォルトのシミュレーターのバージョンを実行できます:

open -a Simulator

また、システム上に存在する任意のシミュレーターを起動するには、デバイスのUDIDを指定して、次のコマンドを使用します:

open -a Simulator --args -CurrentDeviceUDID <device UDID>

シミュレーターでアプリを実行するには、クローンされたFlutterアプリのディレクトリに移動する必要があります。プロジェクトのクローンは、VM上のパス /Users/builder/clone で利用できるようになります。

それを次のコマンドを使って簡単にナビゲートできます:

cd clone

そして、次のコマンドを使ってアプリを実行します:

flutter run

シミュレーターでプロジェクトが読み込まれるのを待ちます。

Line Coding app

iOSの構成変更

FlutterプロジェクトのiOS部分の構成を変更するには、VM上でXcodeを使用する必要があります。

次のコマンドを使って、デフォルトバージョンのXcodeを起動できます:

xed -x

現在選択されているXcodeのバージョンを確認するには、次のコマンドを使用します:

xcode-select -p

Xcodeのバージョンを変更するには、以下を使用します:

sudo xcode-select -s /Applications/Xcode-<version>.app/Contents/Developer

<version>は、システムで利用可能な任意のバージョンに置き換えてください。システムに存在するバージョンは、ビルドマシンのFinderから アプリケーションフォルダに移動して確認できます。

Xcodeを開いた後、**別のプロジェクトを開く(Open another project)**をクリックします。

ここで、Flutterプロジェクトのiosフォルダに移動し、Xcode上でそれを開く必要があります。上部のドロップダウンから「ビルダー」を選択します。

次に、クローン(clone)iosと進み、開くをクリックします。

プロジェクトが Xcode で開かれます。iOSアプリのバージョンバンドルIDを変更したい場合は、左サイドバーからRunnerにアクセスします。

また、Xcodeからプロジェクトのプロビジョニングプロファイル開発者署名証明書を生成することもできます。

コード署名ファイル(プロビジョニングプロファイル証明書など)を生成するためのガイドはこちらにあります。

また、このVM上で行った構成変更を保存するのも非常に簡単です。リポジトリは*GitHub**/GitLab/Bitbucketアカウントからクローンされているため、gitを使って変更を直接_commit_して、アカウントに_push_できます。

デモ用に、Xcode内でiOSアプリのバージョンを更新したところです。

ここで、ターミナルを開き、プロジェクトディレクトリに移動します。

cd clone

次に、以下のコマンドを実行すると、変更されたファイルが表示されます:

git status

ファイルをGitにコミットする前に、以下の2つのコマンドを実行して、変更内容の正しい作成者を定義します:

git config --global user.name "<your_name>"
git config --global user.email "<your_email>"

<your_name> をお名前に、<your_email> をメールアドレスに置き換えてください。

次のコマンドを使って、変更したファイルをコミットします:

git add .
git commit -m "Update ios version to 2.0.0"

iosディレクトリのみをコミットしたい場合は(git add .ではなく)、以下を実行します:

git add ios

次のコマンドを実行して、正しい作成者で変更が行われているかどうかを確認できます:

git log

プロジェクトで使用可能なリモートがあるかどうかを確認します。

git remote

次のコマンドを使って変更内容をプッシュします:

git push origin master

GitHubアカウントでプロジェクトを検証し、変更が完了したかどうかを確認できます。

結論

仮想MacOSマシンへのリモートアクセスは、MacOSシステムにアクセスできない人々に全く新しい可能性をもたらします。さらに、シミュレーターでFlutterアプリを実行してテストしたり、Xcode(VMに事前インストールされている)を使ってプロジェクトの構成を変更したりもできます。また、VMに直接アクセスすることで、コード署名も非常に簡単になります。

リモートアクセスについての公式ドキュメントはこちらにあります。


Souvik Biswasは、情熱的なモバイルアプリ開発者です(AndroidとFlutter)。彼はこれまでの歩みの中で、数多くのモバイルアプリを手がけてまいりました。GitHubでのオープンソース貢献が大好きです。彼は現在、Indian Institute of Information Technology Kalyaniでコンピューターサイエンスとエンジニアリングの技術学士号の取得を目指しています。また、Medium - Flutter CommunityでFlutterの記事も執筆しております。

Latest articles

Show more posts