Apresentamos a última iteração do componente Build4D, agora acessível no GitHub. Nas publicações anteriores do blogue, discutimos as possibilidades de um projeto compilado, de um componente e de uma aplicação autónoma.
Agora pode criar um script para a sua aplicação Cliente/Servidor de A a Z. E integrá-lo facilmente com ferramentas de integração contínua.
Vamos ver como.
Quais são as possibilidades?
O Build4D oferece duas classes para gerar a sua aplicação cliente/servidor: as classes cliente e as classes servidor. Assim, com os diferentes parâmetros, todas as combinações são possíveis.
Pode gerar
- um cliente macOS ou Windows,
- um arquivo cliente macOS ou Windows para atualizações automáticas,
- um servidor macOS ou Windows.
Exemplo
Eis um exemplo simples de como criar um servidor Windows com clientes integrados:
Passo 1: Criar um cliente e um arquivo de cliente
Eis um exemplo simples de como criar uma aplicação cliente e um arquivo cliente.
var $build : cs.Build4D.Client
var $settings ; $archive: Object
var $success : Boolean
$settings :={}
// Define o arquivo de projeto externo
$settings .projectFile:=Folder(fk documents folder).file("Contact/Project/Contact.4DProject")
// Define a rota do 4D Volume Desktop
$settings .sourceAppFolder:=Folder(fk documents folder).folder("4D v20.1/4D Volume Desktop.app")
// OU
$settings .sourceAppFolder:=Folder(fk documents folder).folder("4D v20.1/4D Volume Desktop")
// Configura a aplicação
$settings .buildName:="myApp"
$settings .destinationFolder:="Test/Client/"
// Adiciona o ícone da aplicação
$settings .iconPath:="/RESOURCES/myIcon.icns"
// OU
$settings .iconPath:="/RESOURCES/myIcon.ico"
// Adiciona informação da aplicação
$settings .versioning:={}
$settings .versioning.version:="version"
$settings .versioning.copyright$archive$buildbuildArchive:="copyright"
$settings .versioning.companyName:="companyName"
// Assina se a aplicação for de macOS
$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()
// Cria o arquivo da aplicação cliente
$archive:=$build.buildArchive()
Passo 2: Criar um servidor com os clientes integrados
Depois de criar o arquivo de cliente (como no exemplo acima), pode criar a aplicação de servidor e utilizar os atributos macOSClientArchive e winClientArchive para passar o caminho para os arquivos de cliente criados anteriormente.
Aqui está um exemplo de como criar uma aplicação de servidor com arquivos cliente.
var $build : cs.Build4D.Server
var $settings : Object
var $success : Boolean
$settings :={}
// Define o arquivo projeto externo
$settings .projectFile:=Folder(fk documents folder).file("Contact/Project/Contact.4DProject")
// Configure the application
$settings .buildName:="myApp"
$settings .destinationFolder:="Test/Server/"
// Define a rota 4D Server
$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")
// Adiciona o ícone da aplicação
$settings .iconPath:="/RESOURCES/myIcon.icns"
// OR
$settings .iconPath:="/RESOURCES/myIcon.ico"
// Adiciona informação da aplicação
$settings .versioning:={}
$settings .versioning.version:="version"
$settings .versioning.copyright:="copyright"
$settings .versioning.companyName:="companyName"
// Add the client archives
$settings .macOSClientArchive:="...caminho do Arquivo macOS..."
$settings .windowsClientArchive:="...caminho do Arquivo 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")
// 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()
Seguinte…
Explore a documentação para obter mais informações sobre esta nova possibilidade!