Подписываем установщик Developer ID сертификатом

    Если вы распространяете свои приложения сами, вне MacAppStore, в виде установщика, то вы должны знать, что Xcode не позволяет подписывать установщик Developer ID сертификатом. Это странно, если учесть, сколько обновлений Xcode уже выпущено после введения Developer ID.

    В документации так и написано:
    If you want to distribute your application outside of the Mac App Store as part of an installer package, create the package as you normally do, perhaps by using the packagemaker(1) command. Code sign the resulting package with your Developer ID Installer certificate by using the productsign command.

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

    Итак, сначала необходимо экспортировать нужное приложение в виде установщика:



    На следующем шаге выбираем любой сертификат для подписи (в этом списке нет Developer ID сертификатов) и сохраняем установщик в удобное вам место.

    Пока он подписан неверным сертификатом, но сейчас мы это исправим.



    Подписываем установщик. В контекстном меню выбираем СлужбыProduct Sign.



    Если у вас есть несколько подходящих Developer ID сертификатов — вы сможете выбрать нужный.

    Подписанный установщик сохраняется рядом с исходным, с добавлением _s к имени. Подписывать можно несколько установщиков одновременно, выделив несколько файлов или даже папку целиком.

    Результат:



    Сам сервис со скриптом его установки можно забрать на github. Сервис распространяется по лицензии WTFPL.

    Удачи!
    Поделиться публикацией
    AdBlock похитил этот баннер, но баннеры не зубы — отрастут

    Подробнее
    Реклама
    Комментарии 14
    • НЛО прилетело и опубликовало эту надпись здесь
      • 0
        Экспорт делается из Xcode → Organizer → Archives. Всего пару кликов мышкой :)
        • НЛО прилетело и опубликовало эту надпись здесь
          • 0
            А, вот вы о чем. Подумаю, спасибо за идею.
            • НЛО прилетело и опубликовало эту надпись здесь
              • 0
                а без этого надо для сборки инсталлера ручками копировать куда-то собранную аппу, чтоб кроме нее там ничего не было

                Вот этого немного не понял. Зачем её копировать, если можно экспортировать в виде инсталлера прямо из органайзера?
      • 0
        Можно экспортировать приложение как app — оно будет подписано, а потом сделать инсталлер через PackageMaker (очень просто) — он тоже позволит выбрать сертификат.
        • 0
          Можно и так. Только в дефолтной поставке его (PackageMaker'а) нет. Да и гораздо удобнее, на мой взгляд, подписать установщик прямо в Finder'е.
          • 0
            В дефолтной поставке нет и вашего скрипта =)
      • +2
        Отличная лицензия)
      • 0
        А сервис может подписать метапакет (.mpkg)? При попытке поставить подпись я получаю «No valid packages selected». Может быть вы знаете хоть какой-нибудь работающий способ подписи метапакетов?
        • 0
          Написал вам в личку

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