The SIS format provides a way to package your SWF application file with any extra files (TXT files and so forth) into a single installer file on Symbian devices. In this article, I will walk you through the steps of creating SIS files for Flash Lite applications running on the Symbian operating system (OS). I will review the sample files included in this article, the development tools and scripts you will need to create SIS files, how to create SIS files, and how to test SIS files.
With large applications, the Flash Lite player can run out of memory causing the application to crash. To avoid memory overflows, you need to put different application parts into different files to load at runtime. In the example Arcade Heroes (included in the sample files for this article), there is one main SWF file, which contains the main menu and handles the loading of the games. The games are located in the subfolder called "games." In the example in this article, I have three files with a subfolder. To install them on the device you can send all the files separately to the handset, but the user then has to recreate your directory structure on the device and set up each file individually. The alternative is to create an installation file, an SIS file.
This SIS file works for Flash Lite 1.1 and Flash Lite 2.0 for mobile handsets using the S60 2nd edition and third edition operating system from Symbian.
To follow this tutorial you will need to install the following software:
make_sis_explained.zip (ZIP, 1.3M)
The make_sis_explained.zip file linked at the beginning of this article contains all the tools required to build SIS files for both the Nokia second and third Edition platforms. These tools are also included in the full Symbian SDK. You can download and install the Symbian SDK from here.
The SDK version required will depend on the device you are publishing to. You can find a list of devices and their SDKs at: http://www.symbian.com/developer/sdks/sdks_series60.asp.
The make_sis_explained.zip archive contains the following files:
| ArcadeHeroes.swf | SWF content |
| games/invaders.swf | SWF content |
| games/pacman.swf | SWF content |
| Arcade1_2nd_edition.SIS | Nokia S60 2nd Edition SIS package |
| Arcade1_3rd_edition_signed.sis | Nokia S60 3rd Edition signed SIS package |
| Arcade1_2nd_edition.pkg | Nokia S60 2nd Edition SIS Package descriptor |
| Arcade1_3rd_edition.pkg | Nokia S60 3rd Edition SIS Package descriptor |
| makesis.php | PHP script |
| mykey.key | sample certificate key, created using makekeys.exe |
| mycert.cer | sample certificate, created using makekeys.exe |
| makekeys.exe | Symbian application to create signing keys |
| signsis.exe | Symbian application to sign SIS files |
| makesis1.exe | Symbian application to make SIS files for Nokia S60 2nd Edition |
| makesis2.exe | Symbian application to make SIS files for Nokia S60 3rd Edition |
The predominant tool for the creation of SIS files is makesis. It outputs a SIS file using a PKG configuration file to specify the details. In this example, I also provide you with a PHP script that you can also use to automate this SIS generation procedure. You can also use it for simple single language projects that have multiple files or when you prefer not to have to create a PKG file. Other notable tools for doing this are SWF2SIS, sisar, and unSis.
As I mentioned, the PHP script that I provide generates both the SIS and the configuration PKG file for your project. Here are some advantages of using the PHP script over makesis:
The main disadvantage of the PHP script is that it needs to be modified to account for multi-lingual projects. Also, the makesis tool still needs to be installed as the script invokes it to create the SIS.
Here is an outline of the PHP script that creates a SIS file with a main SWF file. You specify all SWF files of a subfolder for installation on Symbian second edition and Symbian third edition devices.
"appName"=> "Arcade1" // The name of your application "vendor"=> "Sprite" // The name of your company "player"=> "2" // The version of the flash lite player your application is for // (1.1 or 2) "appUID_2nd" => "0x10207F05" // The UID of the application for 2nd Edition platform (get your block of id's at the symbian website) "appUID_3rd" => "0xA0000001" // The UID of the application for 3rd Edition platform // (get your block of ID's at the symbian website) "flashFolder_2nd" => "!:\\Nokia\\Others\\", // the folder where the swf files will be installed on Series 60 2nd // Edition handsets. "flashFolder_3rd" => "!:\\Others\\", // the folder where the swf files will be installed on Series 60 3rd // Edition handsets. "S60ProductID" => "0x200005F9" // See the ID's at http://www.newlc.com/Common-products-UIDs.html "sign_password" => "yourpassword" // The password you used with makekeys $subFolder = "games"; // The name of the subfolder which contains additional swf files $MainSWF => "ArcadeHeroes.swf"; // Your main swf file
For the third edition platforms, you need to specify the platform or device your SIS will be for. Get the platform or device UIDs from http://www.newlc.com/Common-products-UIDs.html.
For the third edition platforms you’ll need to sign your SIS files. Otherwise the device will not accept it. To sign your SIS file you first need to create a key. Do this by using the makekeys.exe. Use the code line syntax below and follow the on screen instructions.
makekeys -cert -password yourpassword -len 2048 -dname "CN=Your Name OU=Development OR=Your Company Ltd CO=GB EM=your@email.com" mykey.key mycert.cer
To build the SIS files, run the PHP script I have provided you. Open the script in a text editor to see which parameters you need to edit to tailor it to your project. To run the script, use the following on the command line:
php makesis.php
If all is successful you should see the following output:
Creating Arcade1_2nd_edition.pkg ... Including games/invaders.swf Including games/pacman.swf Processing Arcade1_2nd_edition.pkg... Created Arcade1_2nd_edition.SIS Creating Arcade1_3rd_edition.pkg ... Including games/invaders.swf Including games/pacman.swf Processing Arcade1_3rd_edition.pkg... Created Arcade1_3rd_edition.SIS SIGNSIS Version 4, 0, 0, 1 A utility for signing Software Installation (SIS) files. Copyright (c) 2004 Symbian Software Ltd. All rights reserved. Signing Primary: Issued by Alex Michael. Issued to Development. Valid from 16/08/2006 to 16/08/2007. Done!
If you want to perform the packaging manually, you will need to write your own PKG file, which will specify which files will be stored in a specific folder on the device, the name and the UID of the application, and for third edition platform devices, the Vendor and the ProductID of the platform or the device. Here are the steps to perform the packaging manually:
Run makesis and pass the pkg file as parameter:
makesis yourpackagefile.pkg
Now you should have a SIS file in the same folder as your PKG file.
Sign the package file using signsis.exe:
signsis -o -s -v yoursisfile.sis yoursignedsisfile.sis mycert.cer mykey.key yourpassword
The mycert.cer and mykey.key are the files you created earlier using makekeys.exe, while yourpassword is the password you entered when you where creating the key.
There are differences in the folder structure of different devices. To make your application appear on the Nokia N70, you need to install it in Nokia/Others. On the Nokia N80 you’ll need to place it into Others.
N70 – Nokia\Others
N80 – Others //warning: install this in a folder called others not other.
On the Nokia N80, you have to install on the memory card. On the Nokia N70, you have to install on the phone memory.
For the original source files for arcade heroes running on mobile devices and five other arcade-style games in Flash Lite 1 , 1.1 and 2.0, get a copy of my book, Animating with Flash 8: Creative Animation Techniques, and check out the CD at the front of the book.
Alex Michael is Managing Director of Sprite Interactive Ltd. Sprite Interactive is a new media company that specializes in providing a mobile based solutions. Current clients include Vodafone, Orange, T-Mobile, ESPN, Disney, Jamba, Jetix. To see Sprite's portfolio of mobile games, applications and mobile pets visit www.Handyx.net, our product showcase site.