Voici la dernière itération du composant Build4D, désormais accessible sur GitHub. Dans les articles de blog précédents, nous avons discuté des possibilités offertes par un projet compilé, un composant et une application autonome.
Désormais, vous pouvez créer un script pour votre application Client/Serveur de A à Z. Et l’intégrer facilement aux outils d’intégration continue.
Voyons comment.
Quelles sont les possibilités ?
Build4D propose deux classes pour générer votre application client/serveur : la classe client et la classe serveur. Ainsi, avec les différents paramètres, toutes les combinaisons imaginables sont possibles.
Vous pouvez générer :
- un client macOS et/ou Windows,
- une archive client macOS et/ou Windows pour les mises à jour automatiques,
- un serveur macOS et/ou Windows.
Exemple
Voici un exemple simple de création d’un serveur Windows avec des clients intégrés :
Étape 1 : Création d’un client et d’une archive client
Voici un exemple simple de création d’une application client et d’une archive client.
var $build : cs.Build4D.Client
var $settings; $archive : Object
var $success : Boolean
$settings:={}
// Define the external project file
$settings.projectFile:=Folder(fk documents folder).file("Contact/Project/Contact.4DProject")
// Define the 4D Volume Desktop path
$settings.sourceAppFolder:=Folder(fk documents folder).folder("4D v20.1/4D Volume Desktop.app")
// OR
$settings.sourceAppFolder:=Folder(fk documents folder).folder("4D v20.1/4D Volume Desktop")
// Configure the application
$settings.buildName:="myApp"
$settings.destinationFolder:="Test/Client/"
// Add the application icon
$settings.iconPath:="/RESOURCES/myIcon.icns"
// OR
$settings.iconPath:="/RESOURCES/myIcon.ico"
// Add the application information
$settings.versioning:={}
$settings.versioning.version:="version"
$settings.versioning.copyright:="copyright"
$settings.versioning.companyName:="companyName"
// Sign if macOS appplication
$settings.signApplication:={}
$settings.signApplication.macSignature:=True
$settings.signApplication.macCertificate:="xxxxxx" //Certificate number found in your keyChain
// Create the client application
$build:=cs.Build4D.Client.new($settings)
$success:=$build.build()
// Create the client application archive
$archive:=$build.buildArchive()
Étape 2 : Créer un serveur avec les clients intégrés
Après avoir créé l’archive client (comme dans l’exemple ci-dessus), vous pouvez créer l’application serveur et utiliser les attributs macOSClientArchive et winClientArchive pour transmettre le chemin d’accès aux archives clients précédemment créées.
Voici un exemple de création d’une application serveur avec des archives clientes.
var $build : cs.Build4D.Server
var $settings : Object
var $success : Boolean
$settings:={}
// Define the external project file
$settings.projectFile:=Folder(fk documents folder).file("Contact/Project/Contact.4DProject")
// Configure the application
$settings.buildName:="myApp"
$settings.destinationFolder:="Test/Server/"
// Define the 4D Server path
$settings.sourceAppFolder:=Folder(fk documents folder).folder("4D v20.0/4D Server.app")
// OR
$settings.sourceAppFolder:=Folder(fk documents folder).folder("4D v20.0/4D Server")
// Add the application icon
$settings.iconPath:="/RESOURCES/myIcon.icns"
// OR
$settings.iconPath:="/RESOURCES/myIcon.ico"
// Add the application information
$settings.versioning:={}
$settings.versioning.version:="version"
$settings.versioning.copyright:="copyright"
$settings.versioning.companyName:="companyName"
// Add the client archives
$settings.macOSClientArchive:="...path macOS Archive..."
$settings.windowsClientArchive:="...path win Archive..."
// Create the deployment license file for OEM partner
$settings.license:=Folder(fk licenses folder).file("XXXXX.license4D")
$settings.xmlKeyLicense:=Folder(fk licenses folder).file("XXXXX.license4D")
// Sign if macOS appplication
$settings.signApplication:={}
$settings.signApplication.macSignature:=True
$settings.signApplication.macCertificate:="xxxxxx"
//Certificate number found in your keyChain
// Launch the build
$build:=cs.Build4D.Server.new($settings)
$success:=$build.build()
Suivant…
Explorez la documentation pour en savoir plus sur cette nouvelle possibilité !