Основные части, обязательные составляющие.




Обычно, в состав инсталляционного SIS файла входят следующие составляющие:

  • Исполняемые файлы приложения (файлы с расширением EXE).
  • Библиотеки (файлы с расширением DLL).
  • Файлы ресурсов (файлы с расширением RSC). При использовании нескольких разных языков для каждого языкового пакета содержится свой файл локализации (файлы с расширением R01, R02 и т.д.).
  • Изображения (файлы с расширением MBM, MIF).
  • Вложенные SIS-файлы, т.е. еще один установщик, вложенный в корневой установочный файл, установка которого произойдет в ходе установки данного инсталляционного пакета.
  • Файлы конфигурации, базы данных и другие файлы, определяемые разработчиком приложения.

Итак, мы видим, что инсталляционный файл для Symbian OS 9.x - это своеобразный архив, распаковка (установка) из которого идет по определенным правилам, эти правила называются cкрипты (PKG файл).

PKG файл - это текстовый файл, который содержит информацию для установки файлов и приложений при заданных определенных условиях.

Основные части, обязательные составляющие:

  • поддерживаемые языки приложения
  • заголовок пакета, имя устанавливаемого приложения, информация о версии и билде приложения
  • указатель на совместимость с версией платформы/ОС
  • компоненты: описание устанавливаемых файлов

Рассмотрим для примера PKG файл (рackage file) программы Free Fullscreen Wallpaper:

 

Составные части:

Дата и время создания пакета

; Date 16-02-2009
; Time 15:57:45

Языки для которых рассчитан инсталляционный пакет

; Languages
&EN

 

Обозначения часто встречающихся языковых пакетов. В случае, если языков несколько, то указываются через запятую:
AM – Английский США
AS – Австрийский (немецкий)
AU – Австрийский (английский)
BF – Бельгийский (французский)
BL – Бельгийский (фламандский)
CS – Чешский
DA – Датский
DU – Голландский
EN – Великобритания (английский)
FI – Финский
FR – Французский
GE – Немецкий
HK – Гонконг Китайский
HU – Венгерский
IC – Исландский
IF – Международный французский
IT – Итальянский
JA – Японский
NO – Норвежский
NZ – Новая Зеландия
PL – Польский
PO – Португальский
RO - Румынский
RU – Русский
SF – Швейцарский (французский)
SG – Швейцарский (немецкий)
SK – Словацкий
SL – Словенский
SP – Испанский
SW – Шведский
TC – Тайвань Китайский
TH – Тайский
TU – Турецкий
ZH – Китайский КНР

Информация о приложении, состоит из нескольких частей:

; Package header
#{"Free Fullscreen Wallpaper"}, (0xEC5D77D7), 1, 0, 1, IU, TYPE=SA

 

  • #{"Free Fullscreen Wallpaper"} – Название (имя) приложения, которое будет выводиться при установке.
  • (0xEC5D77D7) – Уникальный код данного приложения. Все приложения в Symbian OS классифицируются по уникальным кодам «UID», их диапазоны бывают нескольких видов:
    • Незащищенные (свободные для инсталляции) имеют UID (0xA0000000 - 0xAFFFFFFF)
    • Защищенные UID (0x20000000 - 0x2FFFFFFF)
    • Лицензированные UID (0x10000000 - 0x1FFFFFFF)

 

  • 1, 0, 1 - версия и билд приложения, в данном случае версия будет 1,0(1)
  • IU – указывает на то, что скрипт написан в Юникоде. Также возможно указание дескрипторов через запятую:
    • IU – указывает на то, что скрипт написан в Юникоде,
    • SH – указывает на то, что при установке данного приложения, основное приложение, что уже ранее было установлено в смартфон и соответствует не только названию, но и UID, будет закрыто, после чего инсталляция продолжится,
    • NC – указывает на то, что при упаковке файлы не были сжаты

 

  • TYPE=SA – вариант установки. Существующие виды установки:
    • SA - (SISAPP) – указывает на то, что в инсталляционном пакете содержится приложение,
    • SP – (SISPATCH) – указывает на то, что приложение содержит патч для установленного приложения, и этот патч в дальнейшем может быть удален (примером таких установочных файлов служат темы оформления для смартфонов),
    • PU - (PARTIALUPGRADE) – это разновидность SP, но при этом патч удалить нельзя (удалиться сам пропатченный файл, т.к. происходит замена оригинального файла)

Имя производителя, отображаемое при инсталляции (может быть несколько) и его отображение зависит от языка ОС смартфона:

; Localized vendor name:
%{"Free Fullscreen Wallpaper"}

Имя производителя независящее от языка ОС смартфона:

; Vendor names:
" Free Fullscreen Wallpaper "

Идентификация принадлежности к платформе Symbian OS 60 3rd edition:

; Dependencies
[0x101F7961], 0, 0, 0, {"Series60ProductID"}

 

В случае необходимости можно использовать ограничение на инсталляцию приложения, т.е. ограничить установку пакета только для определенных смартфонов. Например, это бывает необходимо, если приложение использует WiFi. Т.о., его следует устанавливаются только на устройствах, которые имеют WiFi. Если пакет устанавливается на устройства не имеющие WiFi (не соответствуют описанным моделям телефонов), то программа установки выведет предупреждение о том, что приложение не совместимо с данным смартфоном.
Если список моделей аппаратов, отвечающий за возможности использования приложения невелик, то удобней создать установщик только для этих моделей.
Пример инсталляционного пакета, который может быть установлен только на N95.

; Dependencies
[0x2000060B], 0, 0, 0, ("Nokia N95 ID")

 

Пример инсталляционного пакета, который может быть установлен только на N93, N93i и N95.

; Dependencies
[0x20000600], 0, 0, 0, ("Nokia N93 ID")
[0x20000605], 0, 0, 0, ("Nokia N93i ID")
[0x2000060B], 0, 0, 0, ("Nokia N95 ID")

 

В случае, если в инсталляционном пакете используется несколько языков, то и записи ведутся на этих же языках, если есть необходимость выводить данную информацию на разных языках. Если же нет необходимости выводить на разных языках названия, то достаточно сдублировать их столько раз, сколько языков использовано в установочном файле. Рассмотрим на примере:

 

В данном приложении используются два языковых пакета: Английский и Русский.
Имя приложения, которое выводится при установке, не изменяется, т.е. остается на английском языке. Но, т.к. используется два языка в инсталляционном файле, то и имя приложения записывается дважды в скрипте для выбора вывода имени приложения для каждого языкового пакета. В случае, если бы я решила записать имя приложения на русском языке, то вторая запись имени шла бы на русском языке (соблюдается та же очередность записи, как и при указании Вами перечисленных языков).
Идентификация принадлежности к версии Symbian OS только дублируется столько раз, сколько и языков, запись не изменяется и всегда остается на английском языке.
Более наглядный пример:

 


Далее следуют компоненты, описание устанавливаемых файлов, имена, пути и условия их установки.
Рассмотрим идущий далее участок кода файла скрипта:

 

"D:\resource\apps\FreeFSWPClient_aif.mif"-"!:\resource\apps\FreeFSWPClient_aif.mif", FF

Строка состоит из нескольких частей:
Папка, расположенная на Вашем ПК, в которой программа-упаковщик будет искать этот файл для запаковки в инсталляционный пакет.

"D:\resource\apps\FreeFSWPClient_aif.mif"

Адрес (путь), куда будет установлен данный файл при инсталляции.
"!" - имя диска, которое зависит от выбора пользователя, т.е., от того, куда пользователь решит установить приложение. Окно выбора места установки (Память телефона/Карта памяти) будет выведено пользователю в начале установки.

"!:\resource\apps\FreeFSWPClient_aif.mif"

Cообщает установщику, что файл должен быть просто установлен, без каких либо опций.

, FF

  • FF – файл предназначенный для установки, без всяких опций
  • FN – установка файла нулевого размера или папки, т.е. он не присутсвует в пакете инсталляции, но в каталоге он будет создан, при этом он будет удален при удалении самого приложения, и не будет удален при апгрейдах (например.ini,.dat файлы, которые содержат настройки)
  • FT – указывает, что устанавливаемый файл является текстовым и будет выводиться в процессе установки, но не будет установлен в смартфон. При этом, через запятую могут указываться еще дополнительные дескрипторы:
    • TC – после отображения файла выводит опцию продолжения установки,
    • TS - после отображения файла выводит опцию Отмена/Продолжение установки, т.е. при нажатии Отмена, само приложение будет установлено, но данный файл установлен не будет,
    • TA - после отображения файла выводит опцию Отмена/Продолжение установки. При нажатии кнопки Отмена будет прерван процесс инсталляции, но все установленные ранее файлы не будут удалены,
    • TE - после отображения файла выводит опцию Отмена/Продолжение установки. При нажатии кнопки Отмена будет прервана инсталляция, и все установленные файлы будут удалены

 

  • FR – указывает на то, что данный файл будет запущен при установке/удалении при этом через запятую могут указываться еще дополнительные дескрипторы:
    • RI – файл будет запущен при установке,
    • RR – файл будет запущен при удалении,
    • RB – файл будет запущен при установке и при удалении

 

  • FM – файл, который указывает установщику передать данный файл приложению по умолчанию, связанному с данным типом MIME, например, VCF для вывода контактной информации.

Итак, давайте прочитаем, что же выполняет установщик на данном этапе в нашем примере:

Данный текстовый будет найден на ПК и запакован в установщик. Во время инсталляции приложения будет выведен на экран текстовый файл с информацией для пользователя с опциями Отмена/Продолжение установки. При нажатии кнопки Отмена будет прерван процесс инсталляции, но все установленные ранее файлы не будут удалены. При нажатии кнопки Продолжение установка будет продолжена. Текстовый файл не будет установлен в смартфон.

"D:\Text1.txt"-"", FT, TA

Данные файлы будут найдены по указанному пути на ПК и запакованы в установщик. В процессе инсталляции данные файлы будут установлены в смартфон с указанными именами по указанному пути. Никаких дополнительных опций или условия для этих файлов не указывается. При удалении приложения эти файлы будут удалены.

"D:\resource\apps\FreeFSWPClient_aif.mif"-"!:\resource\apps\FreeFSWPClient_aif.mif", FF
"D:\private\101f875a\import\[ec5d77d7].rsc"-"c:\private\101f875a\import\[ec5d77d7].rsc", FF
"D:\private\10003a3f\import\apps\FreeFSWPClient_reg.r01"- "!:\private\10003a3f\import\apps\FreeFSWPClient_reg.r01", FF
"D:\Data\FreeFSWP\FreeFSWP.dat"-"c:\Data\FreeFSWP\FreeFSWP.dat", FF

Для данных файлов настроек не указаны пути на ПК и следовательно они не будут включены в установщик. В процессе инсталляции данные файлы будут созданы с нулевым размером и установлены по указанному пути на смартфоне. Эти файлы будут удалены при удалении самого приложения, и не будут удалены при апгрейдах.

""-"c:\Data\FreeFSWP\Landscape.dat", FN
""-"c:\Data\FreeFSWP\Portrait.dat", FN
""-"c:\private\ec5d77d7\FreeFSWPClient.ini", FN

 

Итак, мы с Вами рассмотрели, как может быть построен установщик. Но возможности установщика очень большие, поэтому давайте рассмотрим дополнительные примеры, изучим код скрипта и разберем какими приемами можно воспользоваться дополнительно.

Логотип при установке приложения

 

Обратим внимание на новую для нас строку. В ней, думаю, что судя по названию Вы уже догадались, что выводится логотип:

; Logo
="D:\Logo(0-0).mbm", "image/x-mbm", ""

Данная строка описывает вывод логотипа при установке. Синтаксис вывода выглядит следующим образом:
Первым аргументом является имя и путь к файлу на вашем ПК, содержащий логотип, который будет запакован в установщик.

="D:\Logo(0-0).mbm"

Второй аргумент описывает его MIME-тип (mbm файл, содержащий графику).

"image/x-mbm"

Третий аргумент указывает путь и имя файла с каким он должен быть установлен в смартфон. В нашем случае файл только для отображения во время установки, поэтому последний, третий аргумент, у нас должен быть пустым, т.к. установка файла нами не предусматривается.

Затем мы видим описание вывода текстового файла на экран с информацией для пользователя c опциями Отмена/Продолжить установку:

"D:\Text(0-1).txt"-"", FT, TA

а далее вывод второго текстового файла с опцией Продолжения установки:

"D:\Text(0-44).txt"-"", FT, TC

Такое бывает необходимо, например, в случае вывода на экран лицензионного соглашения, в котором пользователь может отказаться от установки. А в случае подтверждения продолжения установки - последует уже информация, например, описывающая возможности приложения либо реклама.

Далее установщик скопирует все файлы, что содержатся в инсталляционном пакете, по указанному пути в смартфон.


Совместимость платформ ОС. Вложенный SIS установщик.

Теперь усложним задание. Введем в скрипт дополнительную совместимость по платформе ОС и встроенный установщик.

 

Выбор платформы:
В случае портирования приложения S60 3rd Edition на S60 5rd Edition, Вы должны уже включить UID платформы S60 5rd Edition в скрипт PKG файла. 0x1028315F - UID платформы S60 5rd Edition. Синтаксис записи следующий:

[0x1028315F], 0, 0, 0, ("Series60ProductID")

Если данная запись для такого приложения не будет включена в SIS пакет, то пользователь при установке приложения на смартфон с S60 5rd Edition, получит предупреждение о несовместимости. Это может привести к тому, что пользователь отменит установку.
Итак, если наше приложение совместимо с платформами S60 3rd Edition и S60 5rd Edition, то запись необходимо выполнить следующим образом:

;Supports S60 release 3.0
[0x101F7961], 0, 0, 0, ("Series60ProductID")
;Supports S60 release 5.0
[0x1028315F], 0, 0, 0, ("Series60ProductID")

Таким образом мы указали, что наше приложение для платформы S60 3rd Edition совместимо с платформой S60 5rd Edition.

Встроенный во внутрь нашего установщика еще один инсталляционный SIS пакет записывается со следующим синтасисом:

@"D:\WebGate_Utils_Library.sis",(0x20000136)

Первым аргументом идет путь расположения данного SIS пакета на вашем ПК и его имя. Данный установщик будет включен в пакет и во время инсталляции основного приложения произойдет инсталляция вложенного приложения.
Вторым аргументом идет UID вложенного SIS инсталлятора.

Как это выполняется на практике:
В начале Вам необходимо собрать вложенный SIS установщик, в нашем примере - WebGate_Utils_Library.sis. Затем при сборке основного установщика, указать путь к нашему вложенному sis файлу и его UID, согласно приведенному выше синтаксису.

И в завершении этой части - закрепим полученные знания, дополнив скрипт еще одним языком в упаковщик.

 

Вводим поддержку русского языка в инсталляционный пакет.

; Languages
&EN, RU

Имя приложения, которое выводится при установке. Сдублировано столько раз, сколько языков имеет установщик (в нашем случае имя не меняется в зависимости от языка). UID приложения. Версия и билд приложения. Тип установки (в нашем случае - установка приложения).

; Package header
#{"Advanced Call Manager", "Advanced Call Manager"}, (0x20000131), 2, 72, 230, IU, TYPE=SA

Совместимость приложения с платформой. В нашем случае: приложение совместимо с платформами S60 3rd Edition и S60 5rd Edition. Сдублировано столько раз, сколько у нас языков в SIS пакете.

; Dependencies
[0x101F7961], 0, 0, 0, {"Series60ProductID", "Series60ProductID"}
[0x1028315F], 0, 0, 0, {"Series60ProductID", "Series60ProductID"}

Имя производителя. Сдублировано столько раз, сколько языков имеет установщик (в нашем случае имя не меняется в зависимости от языка).

; Vendor names
%{"WebGate Joint Stock Company", "WebGate Joint Stock Company"}
:"WebGate Joint Stock Company"

Вывод на экран во время установки текстового файла с информацией для пользователя c опциями Отмена/Продолжить установку. Затем вывод второго текстового файла с опцией Продолжения установки. Файлы не копируется в телефон и демонстрируется лишь в течение установки. Имя файла и его путь расположения на ПК. Опции для действий пользователя на выводимую информацию.

"D:\Text(0-1).txt"-"", FT, TA
"D:\Text(0-2).txt"-"", FT, TC

Выводим графический логотип компании в начале установки. Логотип не копируется в телефон и демонстрируется лишь в течении установки. Имя графического файла и путь его расположения на ПК. MIME тип файла.

; Logo
="D:\Logo(0-0).mbm", "image/x-mbm", ""

Вложенный установщик внутри нашего инсталляционного пакета. Имя вложенного SIS пакета и путь расположения на ПК. UID SIS файла.

@"D:\WebGate_Utils_Library.sis", (0x20000136)

Установка файлов локализации: английской и русской. Имя файла и его пусть расположения на ПК. Имя файла и путь его установки на телефон. Значок "!" - показывает, что диск, на который будет произведена установка файла, зависит от выбора пользователя и будет предложен ему в начале установки. В случае удаления самого приложения - данные файлы будут удалены.

"D:\Resource\Apps\ACM0x20000131.R01"-"!:\Resource\Apps\ACM0x20000131.R01", FF
"D:\Resource\Apps\ACM0x20000131.R16"-"!:\Resource\Apps\ACM0x20000131.R16", FF

 

Теперь, когда мы познакомились с основной структурой построения PKG файла, перейдем ко второй части статьи.
В ней мы научимся создавать условия для установщика. Т.е. наш установщик будет проверять заданное нами условие, и в каждом варианте описанного условия, выполнять заданное нами действие.


2. Условия.

В любом скрипте можно задать обработку условий.
Условие - это какой-либо параметр, с которым будет сверяться установщик. Для каждого условия описывается определенное действие установщика.

Общий синтаксис написания условия:

IF (некоторое условие)
Описание действия для установщика
ENDIF

либо:

IF (некоторое условие)
Описание действия для установщика
ELSEIF (некоторое условие)
Описание действия для установщика
ENDIF

 

Может существовать два вида условий:

  • - самостоятельная проверка условия и выбор заданного действия
  • - c участием пользователя, т.е. вывод на экран дополнительного меню, в котором пользователь самостоятельно делает выбор. И тогда установщик выполняет действие, согласно выбранному условию.

 



Поделиться:




Поиск по сайту

©2015-2024 poisk-ru.ru
Все права принадлежать их авторам. Данный сайт не претендует на авторства, а предоставляет бесплатное использование.
Дата создания страницы: 2016-04-11 Нарушение авторских прав и Нарушение персональных данных


Поиск по сайту: