1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

Electronアプリをビルド・発行する時のプラットフォームにおける制約とネイティブモジュールとの関係

Posted at

Electronを用いるとクロスプラットフォームな開発ができることは皆さんご存じの通りです。

しかし、ビルド→発行としていくなかで、それらの作業がすべて一つのプラットフォーム上で完結するというわけではありません

また、ネイティブモジュールを利用する場合は、話が異なります

そこらへんについて説明していこうと思います。

一つのプラットフォームですべてのプラットフォームにたいしてビルド・発行できるか

例えば「WindowsですべてのOS向けのアプリをビルドできるか?」という問題ですが、ネイティブモジュールの利用有無次第となります。

ネイティブモジュールを利用していない場合

ビルドはできます

ただし、Mac向けの発行はCode Signingが必要になるため、Mac上でしかできません

よって、Mac上で動かせば、ビルドから発行まですべてMac上で完結します。

Docker イメージ

electron-builderを動かせる環境として、Dockerイメージが用意されています。

しかし、これはLinux上で動かすのと同じなので、WindowsとLinux向けのアプリのビルド・発行しかできません。

また、Windows用のネイティブモジュールを利用する場合は、ビルドもできません。

ネイティブモジュールについては、次の節で説明します。

ネイティブモジュールを利用している場合

ネイティブモジュールは各OS向けにそれぞれビルドする必要があります。

よって、基本的にはターゲットとなるプラットフォームの数だけビルド環境を用意する必要があります。

Macのネイティブモジュールをビルドするなら、Mac。

WindowsならWindowsのビルド環境が必要です。

昨今は、Mac用のVMも用意されていることを考えると、用意することは難しいことではないかもしれませんが、開発に当たっては実機が必要になることに間違いはないでしょう。

ネイティブモジュールを使わずとも、多くの機能が実装できることは確かですが、いつかはぶち当たる問題になります。

必要になったらで良いとは思いますが、ネイティブモジュールとそれに伴うビルド・発行環境の用意を検討する必要があるでしょう。

1
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?