Изменение установочного файла с помощью PHP - PullRequest
2 голосов
/ 13 апреля 2010

У меня есть приложение, которое требует брендинга при загрузке на определенных континентах. Например, при установке в Северной Америке приложение при запуске отображает другой логотип и название компании, чем в Европе.

Файл установки предоставляется через скрипт PHP. В настоящее время есть исполняемый файл Inno Setup для Windows и DMG для Mac OS X.

Я видел, что при загрузке Google Chrome , вы можете указать, следует ли отправлять статистику использования. Краткий обзор управляющего им JavaScript показывает, что он просто отправляется обратно на сервер с &usagestats=0 или &usagestats=1.

Как мне повлиять на установку в зависимости от настроек, указанных на странице загрузки PHP?

Ответы [ 2 ]

2 голосов
/ 13 апреля 2010

Если вы можете упаковать разные версии вашего приложения в зависимости от региона, вы можете использовать некоторую форму IP-адреса для базы данных страны, которая будет определять, какой файл пользователю разрешено загружать.

Вы можете использовать онлайн-сервис, чтобы узнать, где находится пользователь (http://www.ip2location.com/) или получить базу данных и выполнить свои собственные запросы (несколько бесплатных источников, которые я сейчас не помню).

1 голос
/ 14 апреля 2010

В примере Chrome вы можете увидеть, как они модифицируют установщик, используя (теперь с открытым исходным кодом) проект Omaha aka. Обновление Google .

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

В нашей компании мы создаем несколько (более 200) вариантов инсталлятора с различными встроенными параметрами или включенными / выключенными параметрами по умолчанию. Различные установщики помечены различными кодами отслеживания, чтобы увидеть, насколько эффективно продвижение отдельной кампании. Кроме того, одна и та же кампания может иметь несколько инсталляторов, которые выбираются в зависимости от того, какие опции выбрал пользователь перед загрузкой (например, 32-битная, 64-битная, модуль A / B / C включен)

...