アプリケーションビルド
4D にはプロジェクトパッケージ (ファイナルビルド) を作成するためのアプリケーションビルダーが統合されています。 このビルダーを使用すれば、コンパイルされた 4D アプリケーションの展開を簡易化することができます。 OS ごとに異なる特定の処理を自動で処理し、 クライアント/サーバーアプリケーションの展開が容易になります。
アプリケーションビルダーでは以下のことを行えます:
- インタープリターコードを含まないコンパイル済みストラクチャーのビルド
- ダブルクリックで起動可能なスタンドアロンアプリケーションのビルド (4D のデータベースエンジンである 4D Volume Desktop を組み込んだ 4D アプリケーション)
- XML形式のプロジェクトファイル定義を用いて、同じコンパイル済みストラクチャーから異なるアプリケーションのビルド
- クライアント/サーバーアプリケーションのビルド
- クライアントとサーバーの自動更新機能を備えたクライアント/サーバーアプリケーションのビルド
- ビルド設定の保存 (設定保存 ボタン)
コンパイル済みアプリケーションは、読み取り専用 である .4dz files ファイルに基づきます。 コンパイル済みアプリケーションの場合、ソースファイルを変更するコマンドや関数 (
CREATE INDEX
やCREATE TABLE
(SQL)) は、デフォルトでは使用できないことに留意が必要です。 しかしながら、PackProject
XML キー (doc.4d.com 参照) を使用することで、ローカルな変更をサポートするアプリケーションをビルドすることも可能です。
概要
プロジェクトパッケージをビルドするには次の方法があります:
BUILD APPLICATION
コマンドを使う- アプリケーションビルド ダイアログを使う
また、ヘッドレスアプリケーションからでも、4Dプロジェクトのコンパイル、ビルド、署名をおこなうためのクラスを提供するコンポーネント、Build4D
をダウンロードして使用することができます。
アプリケーションビルド
このウィンドウを開くには 4D のデザインメニューから**アプリ ケーションビルド...**を選択します。
アプリケーションビルドウィンドウには複数のページがあり、タブを使用してページを移動できます:
ビルドをおこなう前にプロジェクトはコンパイルされていなければなりません。 まだコンパイルされていないプロジェクトでこのメニューコマンドを選択する、あるいはコンパイル後にコードが変更されていると、プロジェクトを (再) コンパイルしなければならない旨の警告ダイアログが表示されます。
buildApp.4DSettings
アプリケーションビルドに関わる各パラメーター設定は XML キーの形で、buildApp.4DSettings
という名称のアプリケーションプロジェクトファイルに保存されます。 この XML ファイルはプロジェクトの Settings
フォルダー に配置されます。
アプリケーションビルドダイアログが初めて表示されるときにはデフォルトパラメーターが使用されます。 ビルド ボタンや 設定保存 ボタンをクリックすると、このプロジェクトファイルの内容が更新されます。 同じデータベースについて内容の異なる複数の XML ファイルを定義し、BUILD APPLICATION コマンドでそれらを使い分けることができます。
また、XML キーを使用すれば、アプリケーションビルドダイアログには表示されない追加の設定をおこなうことができます。 詳細はドキュメント アプリケーションビルド設定ファイル を参照ください。
ログファイル
アプリケーションをビルドすると、4D はログファイル (BuildApp.log.xml) を生成して、プロジェクトの Logs フォルダーに保存します。 ログファイルにはビルド毎に以下の情報が書き込まれます:
- ターゲットビルドの開始と終了
- 生成されたファイルの名称とフルパス
- ビルドの日付と時刻
- 発生したエラー
- 署名の問題 (例: 署名されていないプラグイン)
アプリケーションを公証する場合などは、このファイルを確認することで、後の運用手順で時間を節約できることがあります。
Get 4D file(Build application log file)
コマンドを使って、ログファイルの場所を取得します。
アプリケーション名と保存先フォルダー
アプリケーション名 には生成するアプリケーションの名前を入力します。
保存先フォルダー にはビルドされるアプリケーションの保存先を指定します。 指定したフォルダーが存在しない場合は新たに作成します。
コンパイル済みストラクチャーページ
このページでは、標準のコンパイル済みストラクチャーファイルやコンパイル済みコンポーネントをビルドできます。
コンパイル済みストラクチャーをビルド
インタープリターコードを含まないアプリケーションをビルドします。
これにより、Compiled Database/<project name> フォルダーの中に .4dz
ファイルが作成されます。 たとえば、アプリケーション名を "MyProject" にした場合、4D は次のものを作成します:
<destination>/Compiled Database/MyProject/MyProject.4dz
.4dz ファイルは ZIP 圧縮されたプロジェクトフォルダーです (注: バイナリデータベースの場合に生成される .4DC ファイルと同義ではないことに注意が必要です)。 .4dz ファイルを開けるのは 4D Server、4D Volume ライセンス (組み込みアプリケーション)、および 4D です。 圧縮・最適化された .4dz ファイルによってプロジェクトパッケージの展開が容易になります。
.4dz ファイルを生成する際、4D はデフォルトで 標準的な zip形式を使用します。 このフォーマットの利点は、あらゆる解凍ツールで簡単に読み取ることができることです。 この標準形式を使用したくない場合は、値を
False
に設定したUseStandardZipFormat
XMLキーをbuildApp.4DSettings
ファイルに追加します (詳細については、アプリケーションビルド設定ファイル マニュアルを参照ください)。
関連するフォルダーを含む
このオプションを選択すると、プロジェクトに関連するフォルダーが、Build フォルダーの Components および Resources フォルダーにコピーされます。 これらのフォルダーの詳細については プロジェクトアーキテクチャーの説明 を参照ください。
コンポーネントをビルド
ストラクチャーからコンパイル済みコンポーネントをビルドします。
コンポーネントは特定の機能を実装した標準の 4D プロジェクトです。 ビルドされたコンポーネントを他の 4Dプロジェクト (ホストアプリケーションプロジェクト) にインストールすると、ホストプロジェクトはその機能を利用できるようになります。
アプリケーション名を MyComponent に指定した場合、4D は Components フォルダーを作成し、その中に MyComponent.4dbase フォルダーを生成します:
<destination>/Components/MyComponent.4dbase/MyComponent.4DZ
.
MyComponent.4dbase フォルダーには次のファイルが含まれます:
-
MyComponent.4DZ ファイル
-
Resources フォルダー: 関連リソースは自動的にこのフォルダーにコピーされます。 コンポーネントは、他のコンポーネントやプラグインを使用できないため、その他の "Components" や "Plugins" フォルダーはコピーされません。
アプリケーションページ
このタブでは、スタンドアロンのシングルユーザー版アプリケーションをビルドします:
スタンドアロンアプリケーションをビルド
スタンドアロンアプリケーションをビルド オプションを選択して ビルド ボタンをクリックすると、スタンドアロンの (つまり、ダブルクリックで起動可能な) アプリケーションがアプリケーションプロジェクトをもとに作成されます。
ビルドには次のものが必要です:
- 4D Volume Desktop (4Dデータベースエンジン)
- 適切な ライセンス
Windows においては、.exe 拡張子のついた実行ファイルが作成されます。 macOS においては、ソフトウェアパッケージが作成されます。
この処理はコンパイル済みストラクチャーファイルと4D Volume Desktopを統合します。 4D Volume Desktop が提供する機能はライセンスページで指定するライセンス情報に基づきます。 この点についての詳細な情報は、4D の オンラインストア と、セールスドキュメンテーションを参照してください。
データファイルについては、デフォルトのデータファイルを定義することもできますし、ユーザー独自のデータファイルを作成・使用することを許可することもできます (詳細については 最終アプリケーションでのデータファイルの管理 を参照してください)。
いくつかのランゲージコマンドを特定の順番で使用することによって、シングルユーザー向け組み込みアプリケーションのアップデートを自動化することが可能です (サーバーまたはシングルユーザー向けアプリの自動アップデート を参照してください)。
4D Volume Desktopの場所
ダブルクリックで起動されるアプリケーションをビルドするには、まず 4D Volume Desktop が格納されているフォルダーの場所を指定しなければなりません:
- Windows では: 4D Volume Desktop.4DE や 4D Volume Desktop.RSR、その他動作に必要なファイルやフォルダーを含むフォルダーを選択します。 これらは、選択されたフォルダー内で同じ階層に置かれている必要があります。
- macOS では: ソフトウェアパッケージとして 4D Volume Desktop が提供されているので、このパッケージを選択します。
4D Volume Desktop フォルダーを選択するには [...] ボタンをクリックします。 フォルダーを選択するダイアログが表示されたら、4D Volume Desktop フォルダー (Windows) またはパッケージ (macOS) を選択します。
フォルダーが選択されるとその完全パス名が表示され、そこに 4D Volume Desktop が含まれていればビルドボタンが有効になります。
4D Volume Desktop のバージョン番号は、4D Developer のバージョン番号と合致する必要があります。 たとえば、4D Developer の v18 を利用していれば、4D Volume Desktop v18 が必要です。
データリンクモードの基準
このオプションを使って、組み込みアプリケーションとローカルデータファイルとのリンクモードを選択します。 二種類のリンクモードから選択可能です:
-
アプリケーション名 (デフォルト) - このモードでは、4D アプリケーションはストラクチャーファイルに対応する、最後に開かれたデータファイルを開きます。 このモードではアプリケーションパッケージをディスク上で自由に移動させることができます。 アプリケーションを複製する場合を除いて、通常は組み込みアプリに対してこのモードが使用されるべきです。
-
アプリケーションパス - このモードでは、組み込み 4D アプリケーションは自身に紐づいている lastDataPath.xml ファイルを解析して、起動アプリのフルパスに合致する "executablePath" 属性を持つデータパスマップのエントリーを探し、 同エントリー内で "dataFilePath" 属性で定義されているデータファイルを開きます。 ない場合は、最後に開かれたデータファイルを開きます (デフォルトモード)。
データリンクモードについて の詳細は 最後に開かれたデータファイル を参照してください。
生成されるファイル
ビルド ボタンをクリックすると、4D は 保存先フォルダー に Final Application フォルダーを作成し、 その中に指定したアプリケーション名のサブフォルダーを作成します。
アプリケーション名に "MyProject"と指定した場合、MyProject サブフォルダー内には以下のファイルが置かれます:
- Windows
- MyProject.exe - 実行可能ファイル、そして MyProject.rsr (アプリケーションリソースファイル)
- 4D Extensions および Resources フォルダー、さまざまなライブラリ (DLL)、 Native Components フォルダー、SASL Plugins フォルダーなど、アプリケーション実行に必要なファイル
- Databaseフォルダー: Resources フォルダーと MyProject.4DZ ファイルが格納されています。 これらはプロジェクトのコンパイル済みストラクチャーおよびプロジェクトの Resources フォルダーです。 注: このフォルダーには、定義されていれば Default Data フォルダーも含まれています (最終アプリケーションでのデータファイルの管理を参照してください)。
- (オプション) データベースに含まれるコンポーネントやプラグインが配置された Components フォルダーおよび Plugins フォルダー。 この点に関する詳細は プラグイン&コンポーネントページ を参照してください。
- Licenses フォルダー - アプリケーションに統合されたライセンス番号の XML ファイルが含まれます。 この点に関する詳細は ライセンス&証明書ページ を参照してください。
- 4D Volume Desktop フォルダーに追加されたその他の項目 (あれば) (4D Volume Desktop フォルダーのカスタマイズ 参照)
実行ファイルの動作には、これらすべての項目が同じフォルダー内に必要です。
- macOS
- MyProject.app という名称のソフトウェアパッケージに、プラグインやコンポーネント、ライセンスなど必要な項目がすべて格納されます。 プラグインやコンポーネントの統合に関する詳細は プラグイン&コンポーネントページ を参照してください。 ライセンスの統合に関しては ライセンス&証明書ページ を参照してください。 注: macOSでは、4D ランゲージの Application file コマンドが返すのは、ソフトウェアパッケージ内の "Contents:macOS" フォルダー内にコピーされる ApplicationName ファイルのパス名です (ソフトウェアパッケージの "Contents:Resources" フォルダー内の .comp ファイルのパスではありません)。
4D Volume Desktop フォルダーのカスタマイズ
ダブルクリックで起動可能なアプリケーションをビルドする際、4D は 4D Volume Desktop フォルダーの内容を Final Application 内のアプリケーション名サブフォルダーにコピーします。 必要に応じて、このコピー元である 4D Volume Desktop フォルダーの内容をカスタマイズすることできます。 たとえば:
- 特定の言語バージョンに対応する 4D Volume Desktop をインストールする
- カスタムプラグインを Plugins フォルダーに置く
- Resources フォルダーの内容をカスタマイズする
macOS では、4D Volume Desktop はソフトウェアパッケージ形式で提供されています。 内容を変更するにはパッケージを開きます (アイコンを Control+クリック)。
Webファイルの場 所
ダブルクリックで起動可能なアプリケーションを Webサーバーとして使用する場合、Web フォルダーやファイルは特定の場所にインストールする必要があります :
- cert.pem と key.pem ファイル (オプション): これらのファイルはTLS接続とデータ暗号化コマンドに使用されます。
- デフォルト Web ルートフォルダー
インストール場所:
- Windows: Final Application\MyProject\Database サブフォルダー内
- macOS: MyProject.app ソフトウェアパッケージと同階層
クライアント/サーバーページ
このページでは、クライアントの自動更新もサポートできるクロスプラットフォームなクライアント/サーバーアプリケーションをビルドするための設定をおこないます。
クライアント/サーバーアプリケーションとは
クライアント/サーバーアプリケーションは、以下の3つの項目の組み合わせから成ります:
- コンパイルされた 4Dプロジェクト
- 4D Server アプリケーション
- 4D Volume Desktop アプリケーション (macOS / Windows)
ビルドを行うと、クライアント/サーバーアプリケーションは 2つのカスタマイズされたパーツ (サーバーと、各クライアントマシンにインストールするクライアント) で構成されます。
Intel/AMD と Apple Silicon マシンが混在している環境でクライアントアプリケーションを実行する場合、そのクライアントサーバーアプリケーションは macOS 上で、全てのプロセッサ 向けにコンパイルすることが推奨されます。こうすることで、クライアントアプリケーションはすべてネイティブに実行されます。
ビルドされたクライアント/サーバーアプリケーションは起動や接続処理が簡易です:
- サーバーを起動するには、サーバーアプリケーションをダブルクリックします。 プロジェクトファイルを選択する必要はありません。
- クライアントを起動するにも、同様にクライアントアプリケーションをダブルクリックします。すると、サーバーアプリケーションへの接続が直接おこなわれるため、 接続ダイアログでサーバーを選択する必要はありません。 クライアントは接続対象のサーバーを名称 (サーバーが同じサブネットワーク上にある場合)、あるいはIPアドレスによって認識します。IPアドレスの指定は buildapp.4DSettings ファイル内の
IPAddress
XMLキーを使用して設定されます 。 接続が失敗した場合のために、代替機構を実装することができます。これについては クライアント接続の管理 の章で説明されています。 また、Option (macOS) や Alt (Windows) キーを押しながらクライアントアプリケーション起動すると、標準の接続ダイアログを強制的に表示させることもできます。 サーバーアプリケーションには、対応するクライアントアプリケーションのみが接続できます。 標準の 4Dアプリケーションを使用してサーバーアプリケーションに接続を試みると、接続は拒否されエラーが返されます。 - クライアント側を ネットワーク越しに自動更新 するようにクライアント/サーバーアプリケーションを設定することも可能です。 クライアントアプリケーションは最初のバージョンのみビルドして配布する必要があります。以降のアップデートは、自動アップデート機構を利用することで管理します。
- また、ランゲージコマンド (SET UPDATE FOLDER、および RESTART 4D) を使用して、サーバーアプリケーションの更新を自動化することも可能です
サーバーアプリケーションをビルド
アプリケーションのサーバー部分をビルドするにはこのオプションを選択します。 ビルドに使用する 4D Server アプリケーションの場所を選択する必要があります。 この 4D Server はビルドをおこなうプラットフォームに対応していなければなりません (たとえば、Windows 用のサーバーアプリケーションをビルドするには Windows 上でビルドを実行する必要があり、Windows 版の 4D Server アプリケーションを指定する必要があります)。
4D Server の場所
4D Server フォルダーを選択するには**[...]**ボタンをクリックします。 macOS では 4D Server パッケージを選択します。
現在のバージョン
生成されるアプリケーションのバージョン番号を指定します。 このバージョン番号をもとに、クライアントアプリケーションからの接続を受け入れたり拒否したりできます。 クライアントとサーバーアプリケーションで互換性のある番号の範囲は XMLキー で設定します。
ビルドしたサーバーアプリケーションにプロジェクトのユーザーとグループを埋め込む
注記: ここでは、以下の用語を使用します:
名称 | 定義 |
---|---|
プロジェクトのディレクトリファイル | プロジェクトの Settings フォルダー に置かれた directory.json ファイル |
アプリケーションのディレクトリファイル | ビルドされた 4D Server の Settings フォルダー に置かれた directory.json ファイル |
データのディレクトリファイル | Data > Settings フォルダー に置かれた directory.json ファイル |
このオプションをチェックすると、ビルド時にプロジェクトのディレクトリファイルがアプリケーションのディレクトリファイルとしてコピーされます。
ビルドした 4D Server アプリケーションを実行すると:
- デ ータのディレクトリファイルがサーバーにある場合は、それがロードされます。
- データのディレクトリファイルがサーバーにない場合は、アプリケーションのディレクトリファイルがロードされます。
アプリケーションのディレクトリファイルは読み取り専用です。 ユーザー・グループ・パーミッションに対してサーバー実行中におこなわれた変更は、データのディレクトリファイルに保存されます。 データのディレクトリファイルが存在しない場合は、自動作成されます。 アプリケーションのディレクトリファイルが埋め込まれている場合は、データのディレクトリファイルとして複製されます。
プロジェクトのディレクトリファイルを埋め込むことで、基本的なセキュリティのユーザーとグループ構成でクライアント/サーバーアプリケーションを運用することができます。 その後の編集は、データのディレクトリファイルに追加されます。
Silicon macOS クライアントからの接続を許可
Windows でサーバーアプリケーションをビルドする際、Apple Silicon クライアントが接続できるようにするには、このオプションをチェックします。 その後、Apple Silicon/Intel用にコンパイルされたストラクチャーへのパスを指定します。
Windows でビルドされたサーバーアプリケーションに Apple Silicon クライアントが接続できるようにするには、まず macOS 上で Apple Silicon と Intel 向けにコンパイルされたプロジェクトを用いてクライアントアプリケーションをビルドする必要があります。 これにより、コンパイル済みストラクチャーをビルド オプションで作成したものと同じコンパイル済みストラクチャーが自動的に作成されます (関連フォルダーは含まれません)。
その後、そのストラクチャーを Windowsマシンにコピーし、それを使ってサーバーアプリケーションをビルドすることができます:
コンパイル済みストラクチャーの場所
Windows用サーバーアプリケーションのビルドに使用される Apple Silicon/Intel クライアントアプリケーションのコンパイル済みストラクチャーへのパス (Silicon macOS クライアントからの接続を許可 参照)。
データリンクモードの基準
このオプションを使って、組み込みアプリケーションとローカルデータファイルとのリンクモードを選択します。 二種類のリンクモードから選択可能です:
-
アプリケーション名 (デフォルト) - このモードでは、4D アプリケーションはストラクチャーファイルに対応する、最後に開かれたデータファイルを開きます。 このモードではアプリケーションパッケージをディスク上で自由に移動させることができます。 アプリケーションを複製する場合を除いて、通常は組み込みアプリに対してこのモードが使用されるべきです。
-
アプリケーションパス - このモードでは、組み込み 4D アプリケーションは自身に紐づいている lastDataPath.xml ファイルを解析して、起動アプリのフルパスに合致する "executablePath" 属性を持つデータパスマップのエントリーを探し、 同エントリー内で "dataFilePath" 属性で定義されているデータファイルを開きます。 ない場合は、最後に開かれたデータファイルを開きます (デフォルトモード)。
データリンクモードについての詳細は 最後に開かれたデータファイル を参照してください。