SIS telepítőcsomag a .pkg fájlból, és ami a 3rd Editionnel megváltozik
Közzétéve:
Akinek van Symbian telefonja, látott már SIS fájlt: ez a telepítőcsomag, amely egyben tartalmazza a program futtatható fájlját, az erőforrásokat, az ikonokat és a telepítési szabályokat. A SIS-t a makesis eszköz készíti el egy szöveges leíróból, a .pkg fájlból. Ebben a jegyzetben végigmegyek egy S60 2nd Editionre szánt .pkg-n, és összeszedem, mi változik a most érkező 3rd Edition (Symbian OS 9) készülékeken.
Egy teljes .pkg 2nd Editionre
; progzdemo.pkg – S60 2nd Edition
&EN,HU
; Név (nyelvenként), UID, verzió: 1.2.0
#{"Progz Demo","Progz Demo"},(0x10005B91),1,2,0
; Csak S60 2nd Editionre
(0x101F7960), 0, 0, 0, {"Series60ProductID","Series60ProductID"}
; Futtatható és erőforrások
"\epoc32\release\armi\urel\progzdemo.app"-"!:\system\apps\progzdemo\progzdemo.app"
{
"\epoc32\data\z\system\apps\progzdemo\progzdemo.r01"
"\epoc32\data\z\system\apps\progzdemo\progzdemo.r17"
}-"!:\system\apps\progzdemo\progzdemo.rsc"
"\epoc32\data\z\system\apps\progzdemo\progzdemo_caption.rsc"-"!:\system\apps\progzdemo\progzdemo_caption.rsc"
"\epoc32\data\z\system\apps\progzdemo\progzdemo.aif"-"!:\system\apps\progzdemo\progzdemo.aif"
Soronként:
&EN,HU– a támogatott nyelvek. Ahány nyelv, annyi szöveg kell minden kapcsos zárójeles listába.#{...},(UID),fő,al,build– a csomag neve és azonosítója. A UID egyezzen meg a program harmadik UID-jával, különben a frissítés nem írja felül a régi verziót, hanem mellé telepíti.- A zárójeles platformsor jelzi, hogy melyik telefoncsaládra készült. A 2nd Edition azonosítója
0x101F7960. !:– a célmeghajtót a felhasználó választja ki (C: vagy a memóriakártya, E:).
A csomag elkészítése: makesis progzdemo.pkg progzdemo.sis. Én egy kis .bat fájlba tettem a buildet és a csomagolást, mert kézzel gépelve biztosan kimarad valami.
Mi változik a 3rd Editionnel?
Az S60 3rd Edition a Symbian OS 9-re épül, és a platformbiztonság miatt sok minden átalakul. A régi programok újrafordítás nélkül nem futnak rajta, és a csomagolás is más:
; progzdemo_3rd.pkg – S60 3rd Edition
&EN,HU
#{"Progz Demo","Progz Demo"},(0xE0005B91),1,2,0
%{"Progz","Progz"}
:"Progz"
[0x101F7961], 0, 0, 0, {"S60ProductID","S60ProductID"}
"\epoc32\release\gcce\urel\progzdemo.exe"-"!:\sys\bin\progzdemo.exe"
{
"\epoc32\data\z\resource\apps\progzdemo.r01"
"\epoc32\data\z\resource\apps\progzdemo.r17"
}-"!:\resource\apps\progzdemo.rsc"
"\epoc32\data\z\private\10003a3f\apps\progzdemo_reg.rsc"-"!:\private\10003a3f\import\apps\progzdemo_reg.rsc"
A legfontosabb különbségek:
- Az alkalmazás EXE lett. Nincs többé
.appés.aif. A programot egy regisztrációs erőforrás (_reg.rsc) jelenti be az indítónak. - Kötött könyvtárak. Futtatható fájl csak a
\sys\bin-be kerülhet, a program saját adatai pedig a\private\<SID>\alá. Más program ide nem lát be. - Kötelező vendor sorok. A
%{...}a megjelenített gyártónév, a:"..."az egyedi, nem lokalizált gyártónév. - Aláírás. A
makesiskimenetét asignsisaláírja. Fejlesztéshez saját (self-signed) tanúsítvány is elég, de akkor csak a felhasználó által jóváhagyható jogosultságokat (például hálózat, felhasználói adatok) kérheted. A teszteléshez a0xE0000000–0xEFFFFFFFUID-tartomány szabadon használható.
A tanulság a buildről
A régi telefonokon a hibás .pkg legfeljebb furcsa telepítést okozott, az új rendszer viszont egyszerűen elutasítja a csomagot. Érdemes már most két .pkg-t tartani, és a build szkriptbe beírni, hogy mindkét SIS elkészüljön. Így nem a kiadás napján derül ki, hogy a 3rd Edition csomag hiányos.