All Articles

開発環境としての macOS 仮想化の現状

はじめに

最近はクラウド IDE の利用もしばしば耳にするようになり、手元の端末ではなくクラウド上に開発環境を構築したいと考えたことがある方も多くなってきたのではないでしょうか。

開発環境をクラウド化したいと考えたとき、問題になるのが macOS の仮想化です。

というのも、iOS アプリのビルドに必要な Xcode が macOS にしかインストールできないため、iOS 開発では macOS が必須なのです。

そこでこの記事には、開発環境を全てクラウド化することが現実的に可能なのか知るべく、macOS 仮想化の現状をまとめました。

macOS の仮想化はそもそも可能か

Linux や Windows の仮想化はよくあると思いますが、macOS の仮想化はほとんど耳にすることがないと思います。 そもそも macOS の仮想化というものは存在するのでしょうか。

結論として、macOS の仮想化自体は存在します。 しかし、macOS の仮想化は、Apple のハードウェア上でだけ許可されています。 Thinkpad などの Apple 以外の PC であったり、一般的な Linux のサーバ上で macOS を仮想化することは許されていません。

参考

macOS 仮想化対応ツール

ということで、macOS の仮想化技術自体は存在します。

簡単に調べた限りでは、以下のツールが macOS の仮想化に対応しているようです。

  • VMWare Fusion
  • Parallels Desktop
  • Oracle VirtualBox

macOS on Cloud サービス

macOS の仮想化について調べたのは、そもそも開発環境をクラウド化したかったからです。

Linux や Windows での仮想化はできないとのことなので、そもそも macOS 環境を提供しているクラウドサービスを探しました。

AWS や GCP は macOS のマシンは提供していませんでしたが、macOS on Cloud なサービスは以下のように結構たくさんありました。

ライセンスから考えるに、こういったサービスのデータセンターには Mac の端末が並んでいるものと思われます。

さて、これらのサービスの実用性についてですが …

現時点で日本にデータセンターがあるサービスはなく、日本で開発する際に使うのは現実的ではなさそうでした。。。

macOS 環境を提供する CI サービス

開発環境として現実的に採用できる macOS をクラウド上で見つけることはできませんでしたが、CI については十分使えるサービスがあります。

CI に限定すれば

  • Bitrise
  • GitHub Actions
  • CircleCI

などが macOS に対応しています。

これらのサービスの macOS 環境は十分実用的なので、是非お試しください。

補足 − Swift の開発環境

Xcode は macOS 上でないと使えないため、iOS アプリのビルドには macOS が必須です。

しかし、Swift のスクリプトであれば、macOS 以外でも開発・実行可能です。

Visual Studio Code にも Swift のプラグインがあるようですし、AWS Lambda でも Swift のランタイムが登場しています。

まとめ

macOS の仮想化技術自体は存在し、macOS 環境を提供するクラウドサービスも存在はするものの、現時点では実用的ではなさそうでした。

まだしばらくの間、iOS 開発に関わる場合は Mac 端末を用意することが必須なようです。