## Creating a .SIS File

Carbide.c++ attempts to build SIS files for all phone targets when a PKG file exists in a given build project. More than one SIS/PKG file can be included and built by a project, but only one can be downloaded to the device for debugging purposes.

There are three main tools involved in generating SIS files from PKG files.

- Makekeys - We invoke this tool when you don't specify a key/cert pair for OS 9.x SIS file creation.
- Makesis — This tool takes a single PKG file as input and generates an unsigned SIS file. This is generally sufficient to run an application on a pre platform security device (EKA1). This tool is also used to generate SIS files for Platform Security, but in that case signsis must be used.
- Signsis — This tool is used to sign a SIS file generated by makesis. This tool is not available on all SDKs. This tool requires an existing certificate/key pair and does not randomly generate the pair for self-signing.

When a phone target build detects a PKG file at the end of a build, a post-link stage will be executed to create a SIS file, that is:

- For non-Platform Security SDKs (pre-OS 9.x), makesis is called

Depending upon which tool is used, you will need to complete some entries in the SIS Builder pane of the Carbide Build Configurations window of the project Properties dialog box. You can access this pane by selecting a project in the C/C++ Projects view and select Project > Properties > Carbide Build Configurations. Fill in the necessary information to add PKG files to the project for downloading.

Tool | Explanation
--- | ---
SIS Builder | Use the Add control to add one or more SIS or PKG files to the project up to the maximum number Carbide supports. Note that the SIS Builder pane operates on a build configuration level. You will need to add files in this pane for every build configuration in the project. In addition, any PKG file added here is picked up by the Installation tab in Application TRK configurations. However, as only one SIS file can be debugged at a time you must specify which SIS/PKG file to install for debugging purposes. This is handy if you have both a developer SIS file and a certified SIS file that you want to remain in sync during development. Both are always built but you only need to debug one. Figure 1 - SIS Builder tab
SIS Properties | Complete the PKG File, and Signing Options settings in the SIS Properties dialog. By default, SIS files are output in the directory of the original SIS file. Figure 2 - SIS Properties dialog

For phones that utilize OS 9.x, all SIS files must be signed before being installed on a device. You can specify your certificate and key pair file in the SIS Builder pane. By default, if no certificate/key pair is defined, temporary ones will be created in the build directory. This is a process called self-signing. However, not all devices allow self-signed applications to be installed. For information on obtaining certificate and key pairs for your development please visit https://www.symbiansigned.com.

Self-signing Tips

The MMP file must have certain keywords specified correctly including:

- The keyword uid3 must be specified in the correct range. See https://www.symbiansigned.com/app/page/uidfaq for more info.
- VendorID requires a value, even if its zero (VENDORID 0)
- Capability requires a value, in this case none (CAPABILITY none)

Failure to include the above keywords can cause a self-signed APP/DLL process to fail to launch.

After you have a valid .sis file, it will need to be uploaded to the target device. The sis file is uploaded and installed automatically once you run a Debug launch configuration.

##### Related tasks

- Manually Deploying Programs to Devices