# Mac OS Introduction

## Introduction

For creating Mac OS packages of the Trust1Connector for a specific environment you need a couple of assets and configuration files. Some of these are hosted on the Cloud and others are included in the packaging repository. This page will describe the difference between what's hosted in the cloud and what's hosted in the git repository.

## Cloud assets

In our cloud storage where we host the released assets to create packages you will have 3 'folders'; mac, win and unix. These folders are used to differentiate between the 3 operating systems supported.

To create a Mac OS package all the necessary configs and assets are hosted in the `configurations` folder. In a subfolder we created for you,  you will find all the assets and configuration files for each version we've released. For example release `3.2.0` can be found in the folder `v3.2.0`

For each release you will find all necessary assets hosted on the cloud to create a package. These are;

* t1c-api
* t1c-sandbox-service
* t1c-init-se

### t1c-api

The t1c-api folder holds a zipfile with the complete Trust1Connector webserver. this includes a prepackaged & optimised JRE that is used to run the webserver.

The JRE included is Java 11LTS.

### t1c-sandbox-service

The sandbox service is responsible for the Card communication. this executable needs to be signed with your own code signing certificate.

In this folder you can find a signed and unsigned version of the sandbox-service. The signed version is signed with the Trust1Team code signing certificate.

While packaging we create a copy of the `t1c-sandbox-service` file to a custom named executable. This is done because this will then show up with a proper name in the task manager and is easy to determine which process to kill while uninstalling

### t1c-ini-se

The t1c-init-se is a `jar` file which is executed at installation and runtime to detect whether the current device has a proxy available. When it detects a proxy it will update the configuration of the installation so that the installation will work in the shared environment.

## Local assets

{% hint style="warning" %}
When changing name be aware this could break the installation or running of the Trust1Connector, adjust the places where this is used
{% endhint %}

In the packaging repository there are 2 different types of folders. You have the configuration folders which holds the configuration files per version and per environment and also the files needed to create the `dmg` package.

The configuration files can be found in the `configurations` folder while the packager script for Mac OS are saved in the `_mac` folder.

Almost all of the configuration can be updated freely. The only exception to this are the `application.conf` file and the `t1c_ks.p12` file. The `t1c.conf` can be altered, but must contain a valid `registration.apikey` value, and the correct password for the `t1c_ks.p12` file that contains the SSL certificate for your custom package.

For the Mac OS Trust1Connector installer you can find the following assets;

* 3.2.0 (version)
  * package.bat
  * package-proxy.bat
  * package.sh
  * dev (environment)
    * macos (OS)
      * api
        * application.conf
        * t1c\_ks.p12
        * t1c.conf
        * assets
          * intro.txt
          * intro\_de.txt
          * intro\_fr.txt
          * intro\_nl.txt
          * logo.png
        * scripts
          * api\_Info.plist
          * entitlements.plist
          * {package-name}.api.plist
          * {package-name}.grpc.plist
          * grpc\_Info.plist
          * installer.pkgproj
          * post\_install.sh
          * pre\_install.sh
          * uninstall.sh

### API assets

In this folder you can find all images and text assets to be located in the installer.

The logo.png is the background image of the installer. By default we use an image of 500x500, but this can be customized if desired. A preview of the look and feel of the installer can be seen by opening the `installer.pkgproj` with the Packages application you can download from <http://s.sudre.free.fr/Software/Packages/about.html>.

![](/files/-MGxQeej7WIdPMaJM9UR)

{% hint style="danger" %}
We do not recommend editing the `installer.pkgproj` file we provided for you. Because of the way the installer script works, the files are all copied over from their original destination into the`/_mac` folder. Editing the paths configured in the `pkgproj` folder will break the packaging script.
{% endhint %}

The `intro*.txt` files contain the text that will displayed in the package installation window, and can be freely edited.

#### Dialog logo's

For the dialog logo's we require a 1024x1024 format to properly compile the os dialog applications

### API scripts

When creating the package you need to provide some parameter such as the application installation folder name and the application name etc. These need to be updated in the scripts files.

* **`api_Info.plist`**: The API service information. Can be edited to reflect application and provider information but care should be taken when editing the `CFBundleExecutable` and `CFBundleName` values; these values are repeated in almost all other files in the script folder
* **`com.t1t.t1c.api.plist`**: The API launch agent. This file will be renamed to a name of your choice when running the installation script, but should use the convention of using a reversed Internet domain followed by the application name, all in lowercase. This file also contains installation paths and reflect values defined in almost all other files in the script folder.
* **`com.t1t.t1c.grpc.plist`**: The Sandbox launch agent. This file will be renamed to a name of your choice when running the installation script, but should use the convention of using a reversed Internet domain followed by the application name, all in lowercase. This file also contains installation paths and reflect values defined in almost all other files in the script folder.
* **`entitlements.plist`**: This file contains the entitlements necessary for the Mac OS package. Do not alter it, or the packaged application may not function correctly after installation.
* **`grpc_Info.plist`**: The Sandbox service information. Can be edited to reflect application and provider information but care should be taken when editing the `CFBundleExecutable` and `CFBundleName` values; these values are repeated in almost all other files in the script folder
* **`installer.pkgproj`**: The script for creating the `pkg` installer package. This file also contains installation paths and reflect values defined in almost all other files in the script folder. It is possible to alter the installation folder, but do not edit the file paths referring to assets and scripts, as it will break the packaging.
* **`post_install.sh`**: The post install script which is run after all the resources have been placed in the installation folder.&#x20;
* **`pre_install.sh`**: The script that is run prior to placing the resources in the installation folder. This script ensures that previous installations are correctly removed and killed prior to installing a new version.


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://t1t.gitbook.io/trust1connector-packaging/mac-os/mac-os-introduction.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
