Finaliser une application avec les commandes 4D

Depuis plusieurs versions de 4D, différentes fonctionnalités ont été ajoutées pour créer votre propre chaîne de construction. Par exemple :

  • la création d’un dossier « .zip »,
  • l’ajout d’informations telles que le copyright sur un exécutable ou une « dll »,
  • la création d’un fichier « info.plist »,
  • et le nouveau composant build4D.

 

Avec 4D v20, deux nouvelles fonctionnalités permettent de finaliser la création d’une application mono-poste ou client/serveur en code 4D :

  • l’ajout d’une icône à un exécutable
  • la génération du fichier de licence de déploiement pour un serveur (licence OEM uniquement) ou une application mono-poste.

Ajouter des icônes à un exe

Sous Windows, la fonction setAppInfo de la classe File permet d’ajouter certaines informations, comme la société et le copyright, à un exécutable. Nous avons ajouté un nouvel attribut, « WinIcon », pour passer le fichier « .ico » à utiliser.

Voici un exemple de code:

var $exeFile: 4D.File
var $iconFile: 4D.File

$exeFile:=Folder(fk desktop folder).file("myApp/myApp.exe")
$iconFile:=File("/RESOURCES/myApp.ico")

$exeFile.setAppInfo(New object("WinIcon" ; $iconFile.path))

Si vous vous posez la question, qu’en est-il de macOS ? C’est déjà possible depuis la création de la fonction setAppInfo.

Pour ajouter une icône à un fichier « .app ». Il faut placer le fichier « .icns » dans le dossier « Resources » de l’application. Puis ajouter une clé « CFBundleIconFile » dans le fichier « info.plist » avec le chemin de l’icône relatif au dossier « Resources ».

var $plistFile: 4D.File
$pListFile:= Folder(fk desktop folder).file("myApp.app/Contents/Info.plist")
$pListFile.setAppInfo(New object("CFBundleIconFile" ; "myApp.icns"))

Générer une licence de déploiement

La nouvelle commande Create deployment license permet de créer une licence pour un serveur ou une application mono-poste. Pour ce faire, vous devez passer le dossier de l’application générée et le fichier de licence comme paramètres pour générer la licence de déploiement.

Application mono-poste :

var $status: Object
var $application: 4D.File
var $license: 4D.File
$license:=Folder(fk licenses folder).file("4UUD200-xxx.license4D")
$application:=Folder(fk desktop folder).folder("myApp.app")
$status:=Create deployment license($application; $license)

Serveur avec licence OEM :

var $status: Object
var $application: 4D.File
var $serverLicense; $oemLicense: 4D.File
$serverLicense:=Folder(fk licenses folder).file("4UOS200-xxx.license4D")
$oemLicense:=Folder(fk licenses folder).file("4DOM200-xxx.license4D")
$application:=Folder(fk desktop folder).folder("myApp.app")
$status:=Create deployment license($application; $serverLicense; $oemLicense)

Ensuite…

Sur Github, vous avez le composant Build4D qui vous permet de créer votre propre chaîne de construction. Pour l’instant, vous pouvez personnaliser et automatiser la création d’une base compilée ou d’un composant. Restez à l’écoute pour de nouveaux développements à venir.

Vanessa Talbot
- Product Owner -Vanessa Talbot a rejoint l'équipe du programme 4D en juin 2014. En tant que Product Owner, elle est chargée de rédiger les user stories puis de les traduire en spécifications fonctionnelles. Son rôle est également de s'assurer que l'implémentation des fonctionnalités livrées répond aux besoins des clients.Depuis son arrivée, elle a travaillé à la définition des fonctionnalités clés de 4D. Elle a travaillé sur la plupart des nouvelles fonctionnalités de multithreading préemptif et aussi sur un sujet très complexe : la nouvelle architecture pour les applications enginées. Vanessa est diplômée de Telecom Saint-Etienne. Elle a commencé sa carrière à l'Institut de Recherche Criminelle en tant que développeur pour le département audiovisuel. Elle a également travaillé dans les domaines des médias et du médical en tant qu'experte en support technique, en production ainsi qu'en documentation de nouvelles fonctionnalités.