To build your application, you use the BUILD APPLICATION command with a set of XML keys that allow you to configure the built application. For most of you, this option is enough for application building. However, we want to make sure we meet your specific needs too, so we’ll simplify the BUILD APPLICATION command by splitting it. This will allow for more flexibility while creating applications.
After the build process, it’s possible to add information such as company, copyright, or version for the application. In future releases, we will continue to enhance that to give you full control over compile, build (which is in fact just copying files together) and signing the result. Setting copyright info is just the first step.
Starting with 4D v19, you can read, add or modify them on Windows or macOS platform. Here’s how to do it:
Windows application
The application’s information is contained in the executable file. You can define the following:
- InternalName
- ProductName
- ProductVersion
- LegalCopyright
- CompanyName
- FileDescription
- FileVersion
- OriginalFilename
That information is then displayed in the 4D Properties window:
We have added two new functions to the File class to allow reading and writing application information.
- To add the information, pass an object with the attributes you want to set to the setAppInfo function:
var $exeFile : 4D.File
var $info : Object
$exeFile:= File("...executable path...")
$info:=New object
$info.LegalCopyright:="Copyright My App 2021"
$info.ProductVersion:="1.0.0"
$info.InternalName:="My App"
$exeFile.setAppInfo($info)
- To read the information, simply use getAppInfo, and you get all the attributes in one object:
var $exeFile : 4D.File
var $info : Object
$exeFile:= File("...executable path...")
$info:=$exeFile.getAppInfo()
Since the functions that allow manipulating information about an executable file use the Windows API, you can only use them on Windows.
macOS application
On macOS, the application’s information is contained in a specific file named info.plist:
- CFBundleName and CFBundleDisplayName
- CFBundleShortVersionString and CFBundleVersion
- CFBundleIconFile
- etc.
For more details on the possible keys, we recommend reading Apple’s documentation.
This example adds some keys to an existing file:
var $plistFile : 4D.File
var $info : Object
$pListFile:= File("...info.plist path...")
$info:=New object
$info.CFBundleDisplayName:="My Application"
$info.CFBundleName:="myApp"
$info.CFBundleIconFile:="myapp.icns"
$pListFile.setAppInfo($info)
Of course, we have also added a “getAppInfo” method, similar to the one in the Windows example.
var $exeFile : 4D.File
var $info : Object
$exeFile:= File("...info.plist path...")
$info:=$exeFile.getAppInfo()
More features are coming to ease your developers’ life. Stick around for more updates.