Un nouveau composant build4D est disponible sur GitHub depuis quelques mois. Il vous permet de créer sans effort un projet compilé ou un composant. Les choses s’améliorent encore ; cette nouvelle version du composant vous permettra de générer une application autonome, élargissant ainsi les possibilités de votre flux de développement.
Ainsi, avec tool4D disponible depuis la v20, l’intégration du processus de génération d’applications dans vos outils d’intégration continue (CI) est devenue remarquablement pratique.
Entrons dans les détails !
Que fait le composant ?
Voici une liste non exhaustive de ce que le composant vous permet de faire :
- compiler le projet,
- fusionner le 4D Volume Desktop avec votre projet,
- ajouter les informations de l’application comme le Copyright, la Société…,
- ajouter l’icône,
- choisir les dossiers à ajouter, comme Documentation, WebFolder, Default Data…,
- sélectionnez les dossiers à supprimer, comme un dossier Dev dans les Ressources,
- choisir les modules à supprimer, comme CEF, Mecab, php…,
- générer la licence de déploiement,
- et signer l’application.
Quelle est la différence avec la commande Build application ?
Dans les deux cas, vous pouvez générer une application autonome parfaitement utilisable. La commande Build Application est monolithique. Si vous souhaitez personnaliser un fichier, ou ajouter ou supprimer un dossier, vous devez le faire après avoir créé l’application. Et pour une application macOS, vous devez à nouveau signer l’application.
Le composant Build4D est composé de plusieurs classes et fonctions codées en 4D. Ainsi, si votre application est très particulière et différente des autres. Vous pouvez facilement ajouter une nouvelle fonction ou améliorer une fonction existante.
Comment faire ?
Le code ci-dessous est un exemple de génération d’une application autonome à partir d’un projet externe.
var $build : cs.Build4D.Standalone
var $settings : Object
var $success : Boolean
$settings :={}
// Define the external project file
$settings .projectFile:=Folder(fk documents folder).file("Contact/Projet/Contact.4folderDProject")
// Configure the application
$settings .buildName:="myApp"
$settings .destinationFolder:="Test/"
$settings .obfuscated:=True
$settings .packedProject:=False
$settings .useSDI:=False
$settings .startElevated:=False
$settings .lastDataPathLookup:="ByAppPath"
// Define the 4D Volume Desktop path
$settings .sourceAppFolder:=Folder(fk documents folder). xml-ph-0034@deepl.internaapp")
// Specify the components required for compilation
$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}
// Delete the unnecessary module
$settings.excludeModules:=["CEF" ; "MeCab"]
// Include the folders and files
$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/"})
// Delete the folders and files
$settings .deletePaths:=[]
$settings .deletePaths.push("Resources/Dev/")
// Add the application icon
$settings .iconPath:="/RESOURCES/myIcon.icns"
// Add the application information
$settings .versioning:={}
$settings .versioning.version:="version"
$settings .versioning.copyright:="copyright"
$settings .versioning.companyName:="companyName"
$settings .versioning.fileDescription:="fileDescription"
$settings .versioning.internalName:="internalName"
// Create the deployment license file
$settings.license:=Folder(fk licenses folder).file("XXXXX.license4D")
// Sign the macOS appplication
$settings .signApplication:={}
$settings .signApplication.macSignature:=True
$settings .signApplication.macCertificate:= "xxxxxx"
// Launch the build
$build:=cs.Build4D.Standalone.new($settings)
$success:=$build.build()
Pour plus de détails sur chaque attribut, lisez la documentation de chaque classe du composant.
Pour les applications macOS, vous devez les notariser pour pouvoir les distribuer. Pour plus de détails, veuillez vous référer à la documentation d’Apple.
Après…
Rendez-vous sur GitHub pour télécharger le composant « Build4D ». De plus, pour rester informé de toutes les nouvelles fonctionnalités du composant, cliquez sur le bouton « Watch » ou mettez 4D Depot ou Build 4D dans vos favoris. Si vous avez besoin d’aide, vous pouvez lire cet article de blog, qui détaille toutes les organisations 4D et comment utiliser toutes les fonctionnalités de Github.