コンテンツへスキップ

WebサイトをmacOSアプリのプロジェクトにする

サイトのURL、アプリ名、バンドルID、ウィンドウ設定を入力すると、ダウンロード前にファイル一覧とSwiftソースが表示されます。既定のプロジェクトは5ファイル・3,821バイトで、build.commandがXcode Command Line Toolsで未署名の.appにビルドします。アイコンはバイト列が本当にPNGまたはJPEGで、10 MBまでのときだけ採用され、それ以外は拒否されてZIPはアイコン無しで作成されます。

ブラウザ内でローカルに実行
ローカル生成 ·
ConfigurationSwift + WKWebView
Live previewmacOS 12+
VoriTools Desktop
Kネイティブ WKWebView ラッパーhttps://voritools.com/
プロジェクトの内容
Mac でビルド

設計上未署名

プライベートで検証可能

macOSアプリのプロジェクトを作成する手順

フォームに入力すると右側のプレビューが追従します。アプリ名、サイトのURL、バンドルID、バージョン、ウィンドウサイズ、2つのウィンドウ設定、そして任意のローカルアイコンです。バンドルIDは自分で編集するまでアプリ名から自動で作られ、ダウンロード前の時点で生成ファイル一覧とSwiftのソースが表示されます。この段階ではコンパイラもサーバーも関与しません。

出力はテスト中に実際にビルドして確認しました。既定のプロジェクトは5ファイル・3,821バイトで、build.commandがXcode Command Line Toolsでコンパイルし、動作する.appができました。256pxのPNGアイコンからは269,370バイトのAppIcon.icns、同じ画像をJPEGで保存した場合は1,837,743バイトの.icnsが生成されます。テキストファイルを.pngに改名したものや10MBを超える画像はステータス行で拒否され、その場合ZIPはアイコン無しで作成されます(Mac側のビルドが失敗する画像を入れないためです)。

  1. アプリ名とサイトのURLを入力します。スキームを省略したURLにはhttps://が補われ、プレビューにはアプリが実際に読み込むアドレスが表示されます。
  2. バンドルID(com.example.myappのような逆ドメイン)とバージョンを調整します。編集しない限りIDはアプリ名に追従します。
  3. ウィンドウの幅と高さを480〜2560 × 320〜1600の範囲で設定し、リサイズ可否とタイトルバーの表示を選びます。
  4. 必要ならローカルのPNGまたはJPEGアイコンを選択します(上限10MB)。ファイルはブラウザ内だけで読み込まれ、ビルドスクリプトがAppIcon.icnsに変換します。
  5. 「macOS プロジェクト(.zip)をダウンロード」を押します。ZIPを展開してbuild.commandをダブルクリック(またはchmod +x build.command && ./build.commandを実行)すると、完成した.appがbuildフォルダにできます。

ZIPに入るファイル、アイコンの条件、ビルドに必要なもの

ZIPに入っているもの

プロジェクトは5つのファイルで構成されます。Sources/main.swift(URLを開くAppKit + WKWebViewのラッパー)、Info.plist(名前、バンドルID、バージョン、最小システム12.0)、build.command(コンパイル用シェルスクリプト)、README.md、.gitignoreです。6つ目のエントリ(icon.pngまたはicon.jpg)はアイコンを選んだときだけ入ります。ダウンロード名は<アプリ名>-macos-project.zipで、既定のZIPは実測3,821バイトです。

アーカイブには他に何も入っていません。コンパイル済みバイナリも署名もトラッキングもありません。Info.plistは素のXMLで、Swiftファイルはビルド前に読める長さです。「ソースをコピー」ボタンはそのファイルをそのままコピーします。

アイコン、ウィンドウ、注意点

アイコンは、バイト列が本当にPNGまたはJPEGのときだけ(ファイル名ではなくシグネチャで判定)受け付け、上限は10MBです。それ以外はメッセージ付きで拒否され、プロジェクトはアイコン無しになります。ビルドではsipsが16・32・128・256・512px(および@2x)を.iconsetに書き出し、iconutilがResources/AppIcon.icnsにまとめます。実測では256pxのPNGから269,370バイト、同じ画像のJPEGから1,837,743バイトでした。

ウィンドウ幅は480〜2560、高さは320〜1600が有効範囲です(テストでは2560 × 1600もビルドしました)。「ウィンドウのサイズ変更を許可」を外すとスタイルマスクから.resizableが消え、「タイトルバーを表示」を外すとタイトルが隠れ、バーが透明になります。http://のURLではWebビューが読み込めるよう、Info.plistにNSAllowsArbitraryLoadsInWebContentが追加されます。

ビルド、署名、プライバシー

ビルドはお使いのMacで行い、Xcode Command Line Toolsが必要です(スクリプトがxcrun swiftcを呼ぶため、初回にmacOSがツールを求めることがあります)。展開ツールがbuild.commandの実行権限を落とした場合は、先にchmod +x build.commandを実行してください。

生成されるのは署名も公証もされていない.appです。初回起動時にGatekeeperの警告が出て、他の人に渡すには自分のApple Developer IDで署名と公証が必要です。ページ自体は処理をローカルに保ちます。テストでプロジェクトを生成している間、ブラウザーのリクエストは1件も発生せず、唯一の記録はアイコンプレビューのblob URLでした。

最近使ったツール: