{"componentChunkName":"component---src-templates-post-template-js","path":"/posts/macos-virtualization","result":{"data":{"markdownRemark":{"id":"18c1f241-06df-5079-bece-843aff1e48a8","html":"<h2 id=\"はじめに\" style=\"position:relative;\"><a href=\"#%E3%81%AF%E3%81%98%E3%82%81%E3%81%AB\" aria-label=\"はじめに permalink\" class=\"anchor before\"><svg aria-hidden=\"true\" focusable=\"false\" height=\"16\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a>はじめに</h2>\n<p>最近はクラウド IDE の利用もしばしば耳にするようになり、手元の端末ではなくクラウド上に開発環境を構築したいと考えたことがある方も多くなってきたのではないでしょうか。</p>\n<p>開発環境をクラウド化したいと考えたとき、問題になるのが macOS の仮想化です。</p>\n<p>というのも、iOS アプリのビルドに必要な Xcode が macOS にしかインストールできないため、iOS 開発では macOS が必須なのです。</p>\n<p>そこでこの記事には、開発環境を全てクラウド化することが現実的に可能なのか知るべく、macOS 仮想化の現状をまとめました。</p>\n<h2 id=\"macos-の仮想化はそもそも可能か\" style=\"position:relative;\"><a href=\"#macos-%E3%81%AE%E4%BB%AE%E6%83%B3%E5%8C%96%E3%81%AF%E3%81%9D%E3%82%82%E3%81%9D%E3%82%82%E5%8F%AF%E8%83%BD%E3%81%8B\" aria-label=\"macos の仮想化はそもそも可能か permalink\" class=\"anchor before\"><svg aria-hidden=\"true\" focusable=\"false\" height=\"16\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a>macOS の仮想化はそもそも可能か</h2>\n<p>Linux や Windows の仮想化はよくあると思いますが、macOS の仮想化はほとんど耳にすることがないと思います。\nそもそも macOS の仮想化というものは存在するのでしょうか。</p>\n<p>結論として、macOS の仮想化自体は存在します。\nしかし、macOS の仮想化は、Apple のハードウェア上でだけ許可されています。\nThinkpad などの Apple 以外の PC であったり、一般的な Linux のサーバ上で macOS を仮想化することは許されていません。</p>\n<p>参考</p>\n<ul>\n<li><a href=\"https://beadored.com/mac-osx-virtual-machine/\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">Mac OS X を仮想OS として使用する場合のライセンスについて再確認した</a></li>\n<li><a href=\"http://ylproposal.blog129.fc2.com/blog-entry-548.html\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">ライセンスの心配をせずMacOSを仮想化してみる</a></li>\n<li><a href=\"http://sokushi.net/archives/25129372.html\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">Windows上の仮想環境でMacOSを動かすことは、ライセンス違反になってしまう。</a></li>\n<li><a href=\"https://book.mynavi.jp/macfan/detail_summary/id=87980\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">仮想マシンでAPFSが使えないのはなぜ？</a></li>\n</ul>\n<h2 id=\"macos-仮想化対応ツール\" style=\"position:relative;\"><a href=\"#macos-%E4%BB%AE%E6%83%B3%E5%8C%96%E5%AF%BE%E5%BF%9C%E3%83%84%E3%83%BC%E3%83%AB\" aria-label=\"macos 仮想化対応ツール permalink\" class=\"anchor before\"><svg aria-hidden=\"true\" focusable=\"false\" height=\"16\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a>macOS 仮想化対応ツール</h2>\n<p>ということで、macOS の仮想化技術自体は存在します。</p>\n<p>簡単に調べた限りでは、以下のツールが macOS の仮想化に対応しているようです。</p>\n<ul>\n<li>VMWare Fusion</li>\n<li>Parallels Desktop</li>\n<li>Oracle VirtualBox</li>\n</ul>\n<h2 id=\"macos-on-cloud-サービス\" style=\"position:relative;\"><a href=\"#macos-on-cloud-%E3%82%B5%E3%83%BC%E3%83%93%E3%82%B9\" aria-label=\"macos on cloud サービス permalink\" class=\"anchor before\"><svg aria-hidden=\"true\" focusable=\"false\" height=\"16\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a>macOS on Cloud サービス</h2>\n<p>macOS の仮想化について調べたのは、そもそも開発環境をクラウド化したかったからです。</p>\n<p>Linux や Windows での仮想化はできないとのことなので、そもそも macOS 環境を提供しているクラウドサービスを探しました。</p>\n<p>AWS や GCP は macOS のマシンは提供していませんでしたが、macOS on Cloud なサービスは以下のように結構たくさんありました。</p>\n<ul>\n<li><a href=\"https://www.macincloud.com/\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">MacinCloud</a></li>\n<li><a href=\"https://www.macweb.com/welcome\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">MacWeb.com</a></li>\n<li><a href=\"https://www.macstadium.com/\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">MacStadium</a></li>\n<li><a href=\"https://flow.swiss/mac-bare-metal\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">Mac Bare Metal</a></li>\n<li><a href=\"https://virtualmacosx.com/index.php\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">vmOSX</a></li>\n<li><a href=\"https://macminicolo.net/\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">macminicolo</a></li>\n</ul>\n<p>ライセンスから考えるに、こういったサービスのデータセンターには Mac の端末が並んでいるものと思われます。</p>\n<p>さて、これらのサービスの実用性についてですが …</p>\n<p>現時点で日本にデータセンターがあるサービスはなく、日本で開発する際に使うのは現実的ではなさそうでした。。。</p>\n<h2 id=\"macos-環境を提供する-ci-サービス\" style=\"position:relative;\"><a href=\"#macos-%E7%92%B0%E5%A2%83%E3%82%92%E6%8F%90%E4%BE%9B%E3%81%99%E3%82%8B-ci-%E3%82%B5%E3%83%BC%E3%83%93%E3%82%B9\" aria-label=\"macos 環境を提供する ci サービス permalink\" class=\"anchor before\"><svg aria-hidden=\"true\" focusable=\"false\" height=\"16\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a>macOS 環境を提供する CI サービス</h2>\n<p>開発環境として現実的に採用できる macOS をクラウド上で見つけることはできませんでしたが、CI については十分使えるサービスがあります。</p>\n<p>CI に限定すれば</p>\n<ul>\n<li>Bitrise</li>\n<li>GitHub Actions</li>\n<li>CircleCI</li>\n</ul>\n<p>などが macOS に対応しています。</p>\n<p>これらのサービスの macOS 環境は十分実用的なので、是非お試しください。</p>\n<h2 id=\"補足-−-swift-の開発環境\" style=\"position:relative;\"><a href=\"#%E8%A3%9C%E8%B6%B3-%E2%88%92-swift-%E3%81%AE%E9%96%8B%E7%99%BA%E7%92%B0%E5%A2%83\" aria-label=\"補足 − swift の開発環境 permalink\" class=\"anchor before\"><svg aria-hidden=\"true\" focusable=\"false\" height=\"16\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a>補足 − Swift の開発環境</h2>\n<p>Xcode は macOS 上でないと使えないため、iOS アプリのビルドには macOS が必須です。</p>\n<p>しかし、Swift のスクリプトであれば、macOS 以外でも開発・実行可能です。</p>\n<p>Visual Studio Code にも Swift のプラグインがあるようですし、AWS Lambda でも Swift のランタイムが登場しています。</p>\n<h2 id=\"まとめ\" style=\"position:relative;\"><a href=\"#%E3%81%BE%E3%81%A8%E3%82%81\" aria-label=\"まとめ permalink\" class=\"anchor before\"><svg aria-hidden=\"true\" focusable=\"false\" height=\"16\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a>まとめ</h2>\n<p>macOS の仮想化技術自体は存在し、macOS 環境を提供するクラウドサービスも存在はするものの、現時点では実用的ではなさそうでした。</p>\n<p>まだしばらくの間、iOS 開発に関わる場合は Mac 端末を用意することが必須なようです。</p>","fields":{"slug":"/posts/macos-virtualization","tagSlugs":["/tag/mac/"],"autoRecommendPosts":["best-way-to-setup-docker-volume","virtualization-books","ci-services","cryptocurrency-investment-books"]},"frontmatter":{"date":"2020-07-14T11:03:07.843Z","description":"開発環境をクラウド化したいと考えたとき、問題になるのが macOS の仮想化です。\nというのも、iOS アプリのビルドに必要な Xcode が macOS にしかインストールできないため、iOS 開発では macOS が必須なのです。\nそこでこの記事には、開発環境を全てクラウド化することが現実的に可能なのか知るべく、macOS 仮想化の現状をまとめました。","tags":["mac"],"title":"開発環境としての macOS 仮想化の現状","socialImage":null,"recommendPosts":["https://www.kanzennirikaisita.com/posts/software-developer-books-index"]}}},"pageContext":{"slug":"/posts/macos-virtualization"}},"staticQueryHashes":["251939775","3942705351","401334301"]}