Erstellen Sie eine eigenständige Anwendung mit der Build4D-Komponente

Eine neue build4D-Komponente ist seit ein paar Monaten auf GitHub verfügbar. Sie ermöglicht es Ihnen, mühelos ein kompiliertes Projekt oder eine Komponente zu erstellen. Die Dinge werden sogar noch besser; diese neue Version der Komponente ermöglicht es Ihnen, eine Einzelplatzanwendung zu erstellen, was die Möglichkeiten für Ihren Entwicklungsworkflow erweitert.

Mit tool4D, das seit Version 20 verfügbar ist, ist die Integration der Anwendungserstellung in Ihre CI (Continuous Integration)-Werkzeuge bemerkenswert bequem geworden.

Schauen wir uns die Details an!

Build4D-Komponente

Was macht die Komponente?

Hier ist eine nicht erschöpfende Liste der Funktionen, die die Komponente bietet

  • Kompilieren Sie das Projekt,
  • den 4D Volume Desktop mit Ihrem Projekt zusammenführen,
  • Hinzufügen von Informationen über die Anwendung wie Copyright, Firma…,
  • das Symbol hinzufügen,
  • die hinzuzufügenden Ordner auswählen, z. B. Dokumentation, WebFolder, Standarddaten…,
  • wählen Sie die zu entfernenden Ordner aus, z. B. einen Dev-Ordner in den Ressourcen,
  • wählen Sie die zu entfernenden Module, wie CEF, Mecab, php…,
  • erzeugen Sie die Bereitstellungslizenz,
  • und signieren Sie die Anwendung.

Worin besteht der Unterschied zum Befehl Anwendung erstellen?

In beiden Fällen können Sie eine perfekt verwendbare Einzelplatzanwendung erstellen. Der Befehl Build Application ist monolithisch. Wenn Sie eine Datei anpassen oder einen Ordner hinzufügen oder entfernen möchten, müssen Sie dies nach dem Erstellen der Anwendung tun. Und für eine macOS-Anwendung müssen Sie die Anwendung erneut signieren.

Die Build4D Komponente besteht aus mehreren Klassen und Funktionen, die in 4D kodiert sind. Wenn Ihre Anwendung also sehr speziell ist und sich von anderen unterscheidet. Sie können leicht eine neue Funktion hinzufügen oder eine bestehende verbessern.

Wie man das macht?

Der folgende Code ist ein Beispiel für die Erstellung einer eigenständigen Anwendung aus einem externen Projekt.

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/Project/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
()

Weitere Einzelheiten zu den einzelnen Attributen finden Sie in der Dokumentation der jeweiligen Komponentenklasse.

Für macOS-Programme müssen Sie sie notariell beglaubigen, um sie weitergeben zu können. Weitere Details finden Sie in der Dokumentation von Apple.

Weiter…

Gehen Sie zu GitHub, um die Komponente „Build4D“ herunterzuladen. Um über alle neuen Funktionen der Komponente informiert zu bleiben, klicken Sie auf die Schaltfläche „Beobachten“ oder legen Sie 4D Depot oder Build 4D in Ihren Favoriten ab. Wenn Sie Hilfe benötigen, können Sie diesen Blogbeitrag lesen, in dem alle 4D Organisationen und die Nutzung aller Github-Funktionen beschrieben werden.

Vanessa Talbot
Product Owner - Vanessa Talbot kam im Juni 2014 zum 4D Programmteam. Als Product Owner ist sie für das Schreiben der User Stories und deren Umsetzung in funktionale Spezifikationen zuständig. Ihre Aufgabe ist es auch, sicherzustellen, dass die Implementierung der Funktionen den Anforderungen des Kunden entspricht. Seit ihrer Ankunft hat sie an der Definition der wichtigsten Funktionen in 4D gearbeitet. Sie hat an den meisten der neuen Funktionen für präemptives Multi-Threading gearbeitet und auch an einem sehr komplexen Thema: der neuen Architektur für erstellte Anwendungen. Vanessa hat einen Abschluss von der Telecom Saint-Etienne. Sie begann ihre Karriere am Criminal Research Institute als Entwicklerin für die audiovisuelle Abteilung. Sie hat auch in den Bereichen Medien und Medizin als Expertin für technischen Support, Produktion und die Dokumentation neuer Funktionen gearbeitet.