четверг, 24 января 2013 г.

Почему я не люблю обновлять релизы в AppWorld

Итак, почему же я не люблю обновлять релизы в AppWorld(магазин Blackberry)?

Немножко предыстории

После регистрации в качестве blackberry-разработчика я получил два  файла client-PBDT-**********.csj и client-RDK-**********.csj. Было бы логично предположить, что они и используются для подписывания, но... Давайте я просто оставлю ссылку на страничку, где описывается, что нужно сделать, чтобы иметь возможность подписывать приложение.

Когда blackberry-keytool сгенерировал мне author.p12 файл, я его, разумеется, забэкапил. И забыл о нем на десять месяцев. До того момента, пока не обновился до windows 8.

Небольшое отступление. Если кто-нибудь захочет установить blackberry sdk на windows 8, запускайте с параметром -i GUI ;)

Ну обновился и обновился, бэкап же есть, думал я и был неприятно удивлен, когда не смог подписать очередной релиз Run In Crowd. Копание документации и форумов blackberry показало, что blackberry-keytool также генерирует файлы barsigner.csk и barsigner.db в профиле (подробнее здесь) и что без этих файлов подписать ничего нельзя, и восстановить их нельзя. Единственный выход - сгенерировать новые, которыми уже нельзя будет подписать старое приложение. Думаю, что несколько седых волосков у меня в тот момент точно прибавилось. Кто же будет бэкапить %HOMEPATH%\AppData\Local\Research In Motion?

В тот день я был очень признателен разработчикам Microsoft, потому что при обновлении старый профиль был заботливо скопирован в папку Windows.old.

Почему мне нравится подписывать приложения?

  • Компьютер должен иметь доступ к интернету, в момент подписывания
  • Если Вы подписали версию, то второй раз её подписать не получится, даже если вы её никуда не выкладывали - будьте добры, поправьте bar-descriptor.xml
  • Если я захочу подписать с другого компьютера, то придется копировать barsigner.csk и barsigner.db с того, где был сгенерирован author.p12

Почему мне не нравится закидывать .bar файлы в AppWorld?

  • Просто загрузить файл нельзя, нужно создать bundle
  • У bundle должно быть уникальное имя
  • В bundle нужно указать версию(которая уже указана в bar-descriptor.xml). Если укажете версию, отличную от того, что записано в bar-descriptor.xml - получите ошибку
  • Вы можете называть bundle v1.1.1, v1.1.2, а в один прекрасный день узнать, что точки теперь запрещены
  • Вы не можете редактировать уже созданный bundle. Даже для редактирования поддерживаемых устройств. Да, это значит, что надо обновить bar-descriptor.xml, снова подписать приложение и создать для него новый bundle.

Вот такой вот пост нелюбви к неудобным инструментам. Но писал я его на самом деле только для того, чтобы предостеречь с резервным копированием файлов, необходимых для подписывания файлов. 
Не забывайте про barsigner.csk и barsigner.db!

Комментариев нет:

Отправить комментарий