У меня очень ограниченные знания Mac OS и у меня есть пара вопросов, связанных с установщиками DMG.
У нас есть приложение, которое работает на Windows, Mac и Ubuntu.Мы создаем наши установщики для всех трех ОС с помощью Chef Omnibus .
Наш установщик DMG является немного базовым, но работает нормально, т.е. наше приложение установлено так, как должно.Тем не менее, у наших пользователей нет простого способа запустить приложение - им нужно пойти и поискать папку установки, найти сам файл запуска .sh и запустить его.
Из того, что я до сих пор собирал, пакет Mac OS .app может помочь нам в этом.Однако я не нашел никакой информации о том, как создать пакет в процессе создания установщика Omnibus.Я вижу, что пакет - это набор папок и файлов, которые следуют определенной структуре :
- файл info.plist
- исполняемый файл - это можетбыть упомянутым выше файлом bash
- папка ресурсов
- ... и другие файлы
Я обнаружил, что самый простой способ создания пакета - этоиспользуя редактор xCode, но это не вариант для нас.Мы создаем установщики в процессе CI автоматически, и мы предпочитаем сохранять его таким, он очень эффективный и надежный.Лучше всего как-нибудь расширить процесс Omnibus, чтобы мы также получили этот пакетный файл.Однако на данный момент я даже не уверен, возможно ли это.
Я действительно застрял, поэтому я благодарен за любые указатели.
Вот наш файл distribution.xml для справки вдело актуально для этого вопроса.Он используется Omnibus для команды productbuild.Я искал варианты для расширения этого, но нет ничего, связанного с пакетами:
<?xml version="1.0" standalone="no"?>
<installer-gui-script minSpecVersion="1">
<title><%= friendly_name %></title>
<background file="background.png" alignment="bottomleft" mime-
type="image/png"/>
<welcome file="welcome.html" mime-type="text/html"/>
<license file="license.html" mime-type="text/html"/>
<!-- Generated by productbuild - - synthesize -->
<pkg-ref id="<%= identifier %>"/>
<options customize="never" require-scripts="false"/>
<choices-outline>
<line choice="default">
<line choice="<%= identifier %>"/>
</line>
</choices-outline>
<choice id="default"/>
<choice id="<%= identifier %>" visible="false">
<pkg-ref id="<%= identifier %>"/>
</choice>
<pkg-ref id="<%= identifier %>" version="<%= version %>"
onConclusion="none"><%= component_pkg %></pkg-ref>
<domains enable_anywhere="false" enable_currentUserHome="true"
enable_localSystem="false" />
</installer-gui-script>