Vi presentiamo l’ultima iterazione del componente Build4D, ora accessibile su GitHub. Nei precedenti post del blog, abbiamo discusso le possibilità offerte da un progetto compilato, un componente e un’applicazione autonoma.
Ora potete creare uno script per la vostra applicazione client/server dalla A alla Z e integrarlo facilmente con gli strumenti di integrazione continua.
Vediamo come.
Quali sono le possibilità?
Build4D offre due classi per generare la vostra applicazione client/server: le classi client e server. Quindi, con i diversi parametri, è possibile ogni combinazione immaginabile.
È possibile generare:
- un client macOS e/o Windows,
- un archivio client macOS e/o Windows per gli aggiornamenti automatici,
- un server macOS e/o Windows.
Esempio
Ecco un semplice esempio di come creare un server Windows con client integrati:
Passo 1: Creare un client e un archivio client
Ecco un semplice esempio di come creare un’applicazione client e un archivio 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.4$settingsDProject")
// 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
.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:="versione"
$settings.versioning.copyright$archive$buildbuildArchive:="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()
Passo2: Creare un server con i client integrati
Dopo aver creato l’archivio client (come nell’esempio precedente), è possibile creare l’applicazione server e utilizzare gli attributi macOSClientArchive e winClientArchive per passare il percorso agli archivi client precedentemente creati.
Ecco un esempio di come creare un’applicazione server con archivi client.
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 for OEM partner
$settings.versioning:={}
$settings.versioning.version:="versione"
$settings.versioning.copyright:="copyright"
$settings.versioning.companyName:="companyName"
// Add the client archives
$settings.macOSClientArchive:="...percorso archivio macOS..."
$settings.windowsClientArchive:="...percorso archivio win..."
// Create the deployment license file
$settings.license$buildbuild:=Folder(fk licenses folder).file("XXXXX.license4D")
$settings.xmlKeyLicense:=Folder(fk licenses folder).file("XXXXX.license4D")
//Certificate number found in your keyChain
// Sign if macOS appplication
$settings.signApplication:={}
$settings.signApplication.macSignature:=True
$settings.signApplication.macCertificate:="xxxxxx"
// Launch the build
$build:=cs.Build4D.Server.new($settings)
$success:=$build.build()
Avanti…
Esplorate la documentazione per ulteriori approfondimenti su questa nuova possibilità!