新しい build4D コンポーネントが数ヶ月前から GitHub で公開されており、これを使って コンパイル済みプロジェクトやコンポーネント を簡単に作成することができます。このコンポーネントの新しいバージョンでは、シングルユーザーアプリケーションを生成できるようになり、開発ワークフローの可能性が広がります。
tool4D が v20 から利用可能になったことで、アプリケーション生成プロセスを CI (継続的インテグレーション) ツールに統合することが驚くほど便利になりました。
それでは、詳細を掘り下げていきましょう!
コンポーネントは何をするのか?
以下は、このコンポーネントでできることの一部です:
- プロジェクトをコンパイルする
- 4D Volume Desktop をプロジェクトに統合する
- 著作権や会社のようなアプリケーションの情報を追加する
- アイコンを追加する
- Documentation、WebFolder、Default Data など、追加するフォルダーを選択する
- Resources 内の開発用フォルダーのように、削除するフォルダーを選択する
- CEF、Mecab、php など、削除するモジュールを選択する
- 運用ライセンスを生成する
- アプリケーションに署名する
Build application コマンドとの違いは?
どちらも、完全なシングルユーザーアプリケーションを生成できます。Build Application コマンドはモノリシックです。つまり、ファイルのカスタマイズや、フォルダーの追加・削除がしたい場合には、アプリケーションのビルド後におこなう必要があります。また、macOS アプリケーションの場合は、アプリケーションに改めて署名する必要があります。
Build4D コンポーネントは、4D でコーディングされた複数のクラスと関数で構成されています。そのため、もし非常に特殊なアプリケーションがあり、他のものとは異なる対応が必要であれば、関数を追加したり、既存のものを改良したりするのは簡単です。
やり方は?
以下のコードは、外部プロジェクトからスタンドアロンアプリケーションを生成する例です:
var $build : cs.Build4D.Standalone
var $settings : Object
var $success : Boolean
$settings:={}
// 外部プロジェクトファイルを定義します
$settings.projectFile:=Folder(fk documents folder).file("Contact/Project/Contact.4DProject")
// アプリケーションを設定します
$settings.buildName:="myApp"
$settings.destinationFolder:="Test/"
$settings.obfuscated:=True
$settings.packedProject:=False
$settings.useSDI:=False
$settings.startElevated:=False
$settings.lastDataPathLookup:="ByAppPath"
// 4D Volume Desktop のパスを定義します
$settings.sourceAppFolder:=Folder(fk documents folder).folder("4D v20.0/4D Volume Desktop.app")
// コンパイルに必要なコンポーネントを指定します
$componentFolder:=Folder(fk documents folder).folder("4D v20.0/4D.app/Contents/Components")
$components:=[]
$components.push($componentFolder.file("4D WritePro Interface.4dbase/4D WritePro Interface.4DZ"))
$settings.compilerOptions:={components: $components}
// 不要なモジュールを削除します
$settings.excludeModules:=["CEF"; "MeCab"]
// 含めるフォルダーやファイルのパスを指定します
$settings.includePaths:=[]
$settings.includePaths.push({source: $componentFolder.folder("4D WritePro Interface.4dbase").path; destination: "../Components/"})
$settings.includePaths.push({source: $componentFolder.folder("4D SVG.4dbase").path; destination: "../Components/"})
// 不要なフォルダーやファイルのパスを指定します
$settings.deletePaths:=[]
$settings.deletePaths.push("Resources/Dev/")
// アプリケーションのアイコンを追加します
$settings.iconPath:="/RESOURCES/myIcon.icns"
// アプリケーション情報を追加します
$settings.versioning:={}
$settings.versioning.version:="version"
$settings.versioning.copyright:="copyright"
$settings.versioning.companyName:="companyName"
$settings.versioning.fileDescription:="fileDescription"
$settings.versioning.internalName:="internalName"
// 運用ライセンスファイルを作成します
$settings.license:=Folder(fk licenses folder).file("XXXXX.license4D")
// macOS アプリケーションを署名します
$settings.signApplication:={}
$settings.signApplication.macSignature:=True
$settings.signApplication.macCertificate:="xxxxxx"
// ビルドを開始します
$build:=cs.Build4D.Standalone.new($settings)
$success:=$build.build()
各属性の詳細については、各コンポーネントクラスの ドキュメント を参照ください。
macOSアプリケーションの場合、配布するには公証が必要です。詳細は Apple のドキュメント を参照ください。
次に…
GitHub にアクセスし、”Build4D” コンポーネントをダウンロードしましょう。さらに、コンポーネントの新機能に関する最新情報を得るには、”Watch” ボタンをクリックするか、4D Depot または Build 4D をお気に入り登録してください。ヘルプが必要な場合は、4D の GitHub組織と、Github の機能の使い方を詳しく説明したこの ブログ記事 を読んでみてください。