NW.jsを用いて、デスクトップアプリケーションを作る方法をまとめています。

今回の手法は、ぶっちゃけセキュリティ的に非常によろしくないので、前回のbuilderを使う手法を強くお勧めします。

以下の手法を試すのは、自己責任でお願いいたします。



builderを使わず、ファイル直置きで動かす方法(非推奨)

壊れたファイルをなんとかする


NW.js公式サイトから、ファイル一式をダウンロードします。

NormalでもSDKでも大丈夫ですが、Normalの方がシンプル構成です。


落としてきたフォルダを展開すると、nwjs.appというファイルがあるので、これを開くと、初手で壊れています


実は壊れているという表現は不正確で、アプリケーションのコードが、署名済みの元のコードと一致していない、という点で、破損しているか改竄されている、とみなされるようです。

これをコマンドで無理やりなんとかしていきます



xattr -d com.apple.quarantine path/to/nwjs.app 

というコマンドを叩きます(path/to/nwjs.appの部分は、nwjs.appがあるパスに置き換えてください)。

これは、ファイルに付加されているcom.apple.quarantineというエクステンド属性(Extended Attribute)を削除するためのコマンドです。

要するに、属性を削除することで、ダウンロードしたファイルを開く際に警告を無視しています

これで開けるようになります。一応...



ファイルを配置する

nwjs.appは、実はフォルダなので、この中に動かしたいWebアプリのファイル群を置きにいきます。

Finderで、nwjs.appを右クリックし、「パッケージの内容を表示」をクリックします。



すると、フォルダが現れます。
Contents > Resourcesの中に、app.nwというフォルダを作成します
その中に、自分で作ったWebアプリのファイル一式と、マニフェストファイルとなるpackage.jsonファイルを置きます。
 



マニフェストファイル(package.json)の中身を書く

前回と同様で、最小構成はこちらです。

{
  "name":"Example",
  "main":"index.html"
}

nameはアプリ名、
mainはエントリポイントです。




立ち上げる

これで、改めてnwjs.appを開くことで立ち上がります!



まとめ

ネットで調べると、検索上位に出てくる記事で、SDKをダウンロードしてファイルを置くだけでできる、と説明されているのですが、

年々Macのセキュリティが厳しくなっているのか、その手順通りではうまくいかないことがわかったので、(無理やりな解決法ではありますが)この記事を書きました。


警報器が鳴っているなら、防犯システムをOFFにすればいいじゃない」という、とんだマリー・アントワネットスタイルなので、あんまりおすすめできません。

色々調べたのですが、動かせる方法がどうしても見つからずにこうなりました。


マリー・アントワネットにならずとも回避できる方法をご存知の方は、ぜひ記事にコメントいただけると幸いです。


参考