Мне сторонний программист портировал мою Delphi программу на Lazarus и скомпилировал на Linux и Mac (он говорит что пришлось для этого вести параллельно два исходника). С Linux версией вроде всё нормально, а с Mac есть какие-то странные баги. На одном Mac Intel компьютере вроде работает, но невидимы многие кнопки и пункты меню (хотя на них можно кликать). На другом компьютере при выборе пунктов меню в определённой последовательности программа вылетает. Ещё один пользователь написал что программа периодически слетает, хотя в принципе пользоваться можно; а другой написал что слетает не только программа, но и другие программы, запущенные одновременно с ней. Ещё один написал, что dmg архив Mac версии повреждён и не запускается, хотя Intel версия работает нормально.
Я подозреваю, что всё дело в нестандартной инсталляции программы, которую я пока использую — через .dmg файлы (образы диска). Процедура инсталляции выглядит следующим образом:
1) Человек распаковывает dmg файл и копирует его содержимое на каталог на винчестере;
2) Чтобы система не помещала файл в карантин, можно набрать в терминале что-то вроде этого:
$ cd /Users/username/Downloads/Program/
$ xattr -d com.apple.quarantine Program_ARM.app
Другой вариант — кликнуть правой кнопкой на приложении и выбрать System settings -> Privacy & Security
3) После копирования нужно ещё размонтировать dmg файл.
Это всё является источником данных багов? Если да, как делать инсталлятор правильно? Россиянам это Apple вообще разрешит?
"Ты должен сделать добро из зла, потому что его больше не из чего сделать". АБ Стругацкие.
Здравствуйте, Khimik, Вы писали:
K>в нестандартной инсталляции программы, которую я пока использую — через .dmg файлы
Вообще-то для мака это как раз стандартная инсталляция. Весть почти софт устанавливается так — открывается образ диска, пользователю показывается окошко с ярлыком программы и ярлыком папки Приложения, и он должен перетащить ярлык программы на ярлык Приложения, после чего программа копируется в папку Приложения.
Здравствуйте, Khimik, Вы писали:
K>Мне сторонний программист портировал мою Delphi программу на Lazarus и скомпилировал на Linux и Mac (он говорит что пришлось для этого вести параллельно два исходника). С Linux версией вроде всё нормально, а с Mac есть какие-то странные баги. На одном Mac Intel компьютере вроде работает, но невидимы многие кнопки и пункты меню (хотя на них можно кликать). На другом компьютере при выборе пунктов меню в определённой последовательности программа вылетает. Ещё один пользователь написал что программа периодически слетает, хотя в принципе пользоваться можно; а другой написал что слетает не только программа, но и другие программы, запущенные одновременно с ней. Ещё один написал, что dmg архив Mac версии повреждён и не запускается, хотя Intel версия работает нормально. K>Я подозреваю, что всё дело в нестандартной инсталляции программы, которую я пока использую — через .dmg файлы (образы диска). Процедура инсталляции выглядит следующим образом:
K>1) Человек распаковывает dmg файл и копирует его содержимое на каталог на винчестере; K>2) Чтобы система не помещала файл в карантин, можно набрать в терминале что-то вроде этого:
K>$ cd /Users/username/Downloads/Program/ K>$ xattr -d com.apple.quarantine Program_ARM.app
K>Другой вариант — кликнуть правой кнопкой на приложении и выбрать System settings -> Privacy & Security K>3) После копирования нужно ещё размонтировать dmg файл.
K>Это всё является источником данных багов? Если да, как делать инсталлятор правильно? Россиянам это Apple вообще разрешит?
Атрибут карантина не должен влиять на программу, если она уже запущена.
А за что вы так своих пользователей не любите, купите за 99 долларов подписку разработчика и подписывайте, нотаризуйте свои программы.
K>Я подозреваю, что всё дело в нестандартной инсталляции программы, которую я пока использую — через .dmg файлы (образы диска).
Вполне обычная инсталляция наряду с инсталляцией из AppStore. Многие такой вариант используют.
K>1) Человек распаковывает dmg файл и копирует его содержимое на каталог на винчестере;
Обычно для этого делают окошко, где пользователь просто делает визуальный drag-n-drop.
K>2) Чтобы система не помещала файл в карантин, можно набрать в терминале что-то вроде этого:
K>$ cd /Users/username/Downloads/Program/ K>$ xattr -d com.apple.quarantine Program_ARM.app
Очень кривой путь. По-хорошему нужно просто подписать бинарники.
K>Другой вариант — кликнуть правой кнопкой на приложении и выбрать System settings -> Privacy & Security
Это нестандартный и тернистый путь для пользователя.
K>3) После копирования нужно ещё размонтировать dmg файл.
Это все мелочь и обычная практика. Пользователь сам потом сделает.
K>Это всё является источником данных багов? Если да, как делать инсталлятор правильно? Россиянам это Apple вообще разрешит?
Не похоже. Скорее похоже на кривость портирования (Lazarus или программист что-то неправильно сделал/недоделал). Плюс см. комментарии выше.
Здравствуйте, Khimik, Вы писали:
K>Мне сторонний программист портировал мою Delphi программу на Lazarus и скомпилировал на Linux и Mac
Пока вашу программу будет писать сторонний программист, а вы все свое свободное время будете тратить на обсуждение "мировых проблем" типа "Рост цен на жильё по категориям", "Цифровой рубль и банковский мультипликатор", "Биткоин vs Тонкоин" и прочую хрень, то вы никогда не будете прогрессировать как программист (раз уж вы себя таковым заявляете). А пока я вижу у вас только полнейшее отсутствие любых знаний, относящихся к программированию.
V>Пока вашу программу будет писать сторонний программист, а вы все свое свободное время будете тратить на обсуждение "мировых проблем" типа "Рост цен на жильё по категориям", "Цифровой рубль и банковский мультипликатор", "Биткоин vs Тонкоин" и прочую хрень, то вы никогда не будете прогрессировать как программист (раз уж вы себя таковым заявляете). А пока я вижу у вас только полнейшее отсутствие любых знаний, относящихся к программированию.
Себестоимость одного запроса ChatGPT стоит 4 цента. Чем сложнее система — тем она дороже. Может людям не по карману будет твой Протектор.
Здравствуйте, DiPaolo, Вы писали:
K>>Это всё является источником данных багов? Если да, как делать инсталлятор правильно? Россиянам это Apple вообще разрешит? DP>Не похоже. Скорее похоже на кривость портирования (Lazarus или программист что-то неправильно сделал/недоделал).
Если это так, то у меня объявление — ищу кого-то кто вылечит этот Lazarus код, предлагаю 80 000р за работу.
"Ты должен сделать добро из зла, потому что его больше не из чего сделать". АБ Стругацкие.
Здравствуйте, r0nd, Вы писали:
K>>Если это так, то у меня объявление — ищу кого-то кто вылечит этот Lazarus код, предлагаю 80 000р за работу.
R>Какой объем существующего кода? Можешь посчитать с помощью cloc? Вывод утилиты скинь сюда.
Мне пока неохота скачивать cloc, в проекте около 300 модулей с общим размером 7 МБ (это размер всех .pas файлов).
Поскольку на rsdn не работает почта, мой email grandrienko[одомашненный волк]rmedprog.com
"Ты должен сделать добро из зла, потому что его больше не из чего сделать". АБ Стругацкие.
Здравствуйте, Khimik, Вы писали:
K>Это всё является источником данных багов? Если да, как делать инсталлятор правильно? Россиянам это Apple вообще разрешит?
Многие разработчики забывают, что программы не математическая абстракця — ПРОГРАММЫ РАБОТАЮТ НА ДЕВАЙСАХ. И в первую очередь если вы рарабатываете ПО для некого девайса, пусть и с помощью т.н. кроссплатформы — вам нужно иметь этот девайс. Пусть б/у пусть старый и грязный — но иметь работающий девайс с установленной ОС. Скорее всего даже несколько девайсов с разными ОС, если такая поддержка планируется.
Причин может быть вагон и маленькая тележка. Просто даже собрать либу из исхдников — уже часто задача, кторая на несколько дней выходит.
Здравствуйте, Shmj, Вы писали:
S>Многие разработчики забывают, что программы не математическая абстракця — ПРОГРАММЫ РАБОТАЮТ НА ДЕВАЙСАХ. И в первую очередь если вы рарабатываете ПО для некого девайса, пусть и с помощью т.н. кроссплатформы — вам нужно иметь этот девайс. Пусть б/у пусть старый и грязный — но иметь работающий девайс с установленной ОС. Скорее всего даже несколько девайсов с разными ОС, если такая поддержка планируется.
В большинстве случаев даже и девайс не нужен — достаточно поставить необходимую операционку на виртуалку прямо на рабочей машине.
Здравствуйте, drVanо, Вы писали:
V>В большинстве случаев даже и девайс не нужен — достаточно поставить необходимую операционку на виртуалку прямо на рабочей машине.
MacOS не поставишь. Какой-нибудь хакинтош, который только со старой версией и то не все функции работают — возможно.
Вердикт такой: если софт не приносит даже денег на компьютер разработчику — то нафиг он тогда нужен?