Про распространение программ в Mac OS
От: Shmj Ниоткуда  
Дата: 18.12.22 12:06
Оценка:
Как лучше всего распространять QT-кроссплатформенное приложение в Mac OS?

Как я понял, с маркетом не все просто — многие его не юзают (вообще есть ли проблемы с заливкой QT-прог в маркет?)

Многие делают dmg-образ, который потом нужно клацнуть, запускается авторан, после чего остается перетянуть значок на Applications. Как то тупо, не как привычная инсталляция.

Однако же некоторые делают классику, к примеру MS так распространяет свой офис. Сделали pkg, как я понял — это Java-пакет?

Кто что скажет?
Re: Про распространение программ в Mac OS
От: Justme03  
Дата: 18.12.22 13:42
Оценка: 4 (1)
Здравствуйте, Shmj, Вы писали:

S>Как лучше всего распространять QT-кроссплатформенное приложение в Mac OS?


S>Как я понял, с маркетом не все просто — многие его не юзают (вообще есть ли проблемы с заливкой QT-прог в маркет?)


что бы попасть в App Store надо купить подписку Apple Developer. Если вы пишите прогу в Xcode там есть встроенная функция для загрузки в App Store (вроде в Xcode можно QT прикрутить — но это я не знаю. у меня все на obj-c или swift)

Не obj-c или swift программы в App Store вроде есть. Для загрузки была специальная утилита но я не уверен что она все еще есть, там были обновления в этой части в прошлом году.

в App Store берут только программы работающие в sandbox режиме.

S>Многие делают dmg-образ, который потом нужно клацнуть, запускается авторан, после чего остается перетянуть значок на Applications. Как то тупо, не как привычная инсталляция.


dmg-образ это и был настоящий "apple way". Программа просто копируется в Applications. Удаление программы — удаление ее из папки Applications. По рекомендациям эппла программа не должна рассовывать свои компоненты по разным местам системы так что нужды в специальных установщиках вроде нет.

(к стати — никакого авторана там нет — dmg это образ диска. клацаете — система проверяет образ на целостность и монтирует его. и уже можно запускать программу прямо с dmg или скопировать в Applications)


S>Однако же некоторые делают классику, к примеру MS так распространяет свой офис. Сделали pkg, как я понял — это Java-пакет?


это скрипт который может выполнить какие нибудь проверки перед установкой и/или может нагадить в какие нибудь системные области диска, как потом удалять такую программу — непонятно. я, как пользователь, стараюсь программы в pkg не ставить — они меня пугают (я возможно ретроград/параноик/не умный человек но подозреваю что я не один такой)

если вам не надо ничего в системе менять/добавлять — проще использовать dmg или просто zip архив

S>Кто что скажет?


Помните про Gatekeeper — если ваша программа не подписана (эппловским сертификатом который продают вместе с подпиской Apple Developer ($99 в год) то пользователю надо будет применить некоторый знания и умения что бы запустить программу в первый раз.
Re: Про распространение программ в Mac OS
От: vsb Казахстан  
Дата: 18.12.22 14:07
Оценка: 4 (1)
Здравствуйте, Shmj, Вы писали:

S>Как лучше всего распространять QT-кроссплатформенное приложение в Mac OS?


Через магазин и через скачивание.

S>Как я понял, с маркетом не все просто — многие его не юзают (вообще есть ли проблемы с заливкой QT-прог в маркет?)


Не думаю, что есть проблемы. Неизвестному производителю лучше не выпендриваться и давать все опции. Если про твой продукт знают — можешь выпендриваться.

S>Многие делают dmg-образ, который потом нужно клацнуть, запускается авторан, после чего остается перетянуть значок на Applications. Как то тупо, не как привычная инсталляция.


Для макоси это привычная инсталляция.

S>Однако же некоторые делают классику, к примеру MS так распространяет свой офис. Сделали pkg, как я понял — это Java-пакет?


Я бы не стал запускать никакие pkg от не слишком известного производителя.

S>Кто что скажет?


Делать как все. Давать скачивать с магазина или из браузера. С браузера скачивать dmg со своим приложением, давать устанавливать перетягиванием. Зачем что-то выдумывать?
Re[2]: Про распространение программ в Mac OS
От: m2user  
Дата: 19.12.22 04:30
Оценка:
S>>Многие делают dmg-образ, который потом нужно клацнуть, запускается авторан, после чего остается перетянуть значок на Applications. Как то тупо, не как привычная инсталляция.

J>dmg-образ это и был настоящий "apple way". Программа просто копируется в Applications. Удаление программы — удаление ее из папки Applications. По рекомендациям эппла программа не должна рассовывать свои компоненты по разным местам системы так что нужды в специальных установщиках вроде нет.


J>(к стати — никакого авторана там нет — dmg это образ диска. клацаете — система проверяет образ на целостность и монтирует его. и уже можно запускать программу прямо с dmg или скопировать в Applications)


Прямо как AppImage в Linux.

Но что делать, если приложению нужно что-то зарегистрировать в ОС, например создать сервис или scheduled task при установке (в терминах MS Windows, не знаю как правильно обозначить аналоги в Apple MacOS)7
Как осуществляется проверка на совместимость с версией ОС и на наличие крупных зависимостей, которые упаковывать в dmg невозможно или нецелесообразно (java runtime например)?
Re[3]: Про распространение программ в Mac OS
От: Justme03  
Дата: 19.12.22 06:37
Оценка: 6 (1) +1
Здравствуйте, m2user, Вы писали:


M>Но что делать, если приложению нужно что-то зарегистрировать в ОС, например создать сервис или scheduled task при установке (в терминах MS Windows, не знаю как правильно обозначить аналоги в Apple MacOS)7


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

если бы я писал такую программу то я бы эти действия выполнил при первом запуске программы подробно объяснив пользователю нафига ему это надо и почему без этого никак.

Такое поведение рекомендовано самим эпплом например для обхода ограничений sandbox-программ для доступа к диску. При первом запуске вы выкатываете диалог открытия папки с вашим домашним каталогом (~/) и говорите юзеру что программа собирается использовать его файлы для работы и если он, юзер, не хочет подтверждать открытие каждого файла/папки по отдельности он может открыть каталог сейчас и программа запомнит его выбор. (так работают файловые менеджеры загружаемые из app store)

в мак оси _почти_ нет вирусов и троянов потому что каждый вирус и троян перед тем как сделать что нибудь обязательно либо сам запрoсит разрешение это сделать либо система его отловит и спросит — "тут ваш CD-Ejector собирается модифицировать системные файлы, введите пароль для разрешения?"

пользователей такие вещи от непонятных программ обычно очень напрягают


M>Как осуществляется проверка на совместимость с версией ОС и на наличие крупных зависимостей, которые упаковывать в dmg невозможно или нецелесообразно (java runtime например)?


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

можно еще в самой программе проверять есть ли в системе определенный "новые" функции и если их нет использовать "старые" аналоги.

но конечно если нужна серьезная проверка — делайте свой установщик
Re[3]: Про распространение программ в Mac OS
От: vsb Казахстан  
Дата: 19.12.22 07:14
Оценка:
Здравствуйте, m2user, Вы писали:

M>Но что делать, если приложению нужно что-то зарегистрировать в ОС, например создать сервис или scheduled task при установке (в терминах MS Windows, не знаю как правильно обозначить аналоги в Apple MacOS)7


Наверное это лучше сделать при первом запуске.

M>Как осуществляется проверка на совместимость с версией ОС и на наличие крупных зависимостей, которые упаковывать в dmg невозможно или нецелесообразно (java runtime например)?


Насчёт проверки совместимостей — не знаю. Обычно в macOS поддерживают последнюю версию и пару предыдущих от силы, остальное — уже проблема пользователя. А в чём проблема крупных зависимостей — не понимаю. java runtime можно и нужно упаковывать в dmg. Та же idea в dmg занимает гигабайты, никаких проблем это не создаёт.
Re: Про распространение программ в Mac OS
От: Aquilaware  
Дата: 19.12.22 18:24
Оценка:
Здравствуйте, Shmj, Вы писали:

S>Многие делают dmg-образ, который потом нужно клацнуть, запускается авторан, после чего остается перетянуть значок на Applications. Как то тупо, не как привычная инсталляция.


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

Я тоже долго не мог вкурить в dmg-образы после винды, это всё казалось каким-то странным костылем. Но если задуматься, так и должно быть: вы скачиваете медиа-артифакт, а потом сами решаете что с ним делать: посмотреть, запустить или просто закрыть потому что содержимое не понравилось.

В винде на самом деле всё то же самое, только скрыто от пользователя в самом файле-контейнере инсталляции (.msi или .cab).

Но зачем изобретать велосипеды, если ОС уже и так поддерживает файлы-контейнеры? Собственно это и есть идея dmg — чтобы не изобретать велосипеды вновь и вновь, файлы упаковываются в стандартный медиа контейнер, который потом может быть универсально использован для дистрибьюции: будь то скачивание через интернет или даже запись на физический носитель. Всё происходит по единому образу и подобию, универсально и без лишнего кода.
Re[4]: Про распространение программ в Mac OS
От: m2user  
Дата: 20.12.22 01:42
Оценка:
M>>Но что делать, если приложению нужно что-то зарегистрировать в ОС, например создать сервис или scheduled task при установке (в терминах MS Windows, не знаю как правильно обозначить аналоги в Apple MacOS)7

vsb>Наверное это лучше сделать при первом запуске.


А при удалении приложения нужно все эти артефакты почистить. Это обычно setup делает.
Re[5]: Про распространение программ в Mac OS
От: Justme03  
Дата: 20.12.22 06:05
Оценка:
Здравствуйте, m2user, Вы писали:

M>>>Но что делать, если приложению нужно что-то зарегистрировать в ОС, например создать сервис или scheduled task при установке (в терминах MS Windows, не знаю как правильно обозначить аналоги в Apple MacOS)7


vsb>>Наверное это лучше сделать при первом запуске.


M>А при удалении приложения нужно все эти артефакты почистить. Это обычно setup делает.


Стандартный способ удаления программ официально рекомендованный эпплом (если программа не из app store) — перетащить программу в мусорную корзину и очистить корзину. Официальные рекомендации для разработчиков — иметь это в виду.

Видимо остатки user preferences в ~/Library/Preferences/ ~/Library/Caches/ и других подобных местах вообще не считаются преступлением.

Так что запуск каких то приложений, специального ан-инсталлера от разработчика программы или универсальных ан-инсталлеров типа Clean-my-mac (навязчиво навязываемых рекламой на любых мак-сайтах) это уже не "Mac way"

Если обойтись без внедренных в систему сервисов нельзя но хочется снять с души груз за загаживание системы пользователя — я бы сделал в программе какую нибудь менюшку "Удалить программу" которая будет удалять все лишнее и заканчиваться сообщением — "Теперь можете переместить программу в корзину". Пользователь который этого не сделает — сам дурак, пусть покупает Clean-my-mac professional ))
Re[3]: Про распространение программ в Mac OS
От: flаt  
Дата: 20.12.22 07:45
Оценка: -1
Здравствуйте, m2user, Вы писали:

S>>>Многие делают dmg-образ, который потом нужно клацнуть, запускается авторан, после чего остается перетянуть значок на Applications. Как то тупо, не как привычная инсталляция.


J>>

M>Прямо как AppImage в Linux.

Offtop: m2user это Shmj с ноутом на Apple M2?
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.