Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Другие: Mac OS, PalmOS, BeOS, PocketPC Новый топик    Ответить
 Как создать дистрибутив своей программы?  [new]
Alexey Tomin
Member

Откуда: Самара
Сообщений: 1884
Добрый день!

Написал маленькую утилитку- работает. Но требует несколько библиотек для себя.
Попытка слинковать их статически провалилась- не нашёл gnutls в статическом виде.

Но может не мучатся а сделать как положено на маке? Чем создать?
XCode у меня почему-то не запускается вообще (почему- пока не понял).

PS: макбук и MacOS 10.15 если что.
13 май 20, 15:16    [22132159]     Ответить | Цитировать Сообщить модератору
 Re: Как создать дистрибутив своей программы?  [new]
crutchmaster
Member

Откуда: оттуда.
Сообщений: 1392
Alexey Tomin
не нашёл gnutls в статическом виде.

Собери её статически да слинкуй
https://lists.gnu.org/archive/html/gnutls-devel/2014-06/msg00000.html
14 май 20, 08:55    [22132602]     Ответить | Цитировать Сообщить модератору
 Re: Как создать дистрибутив своей программы?  [new]
crutchmaster
Member

Откуда: оттуда.
Сообщений: 1392
Alexey Tomin,

Можно также тащить динамические либы, засунуть всё в какой-нибудь /lib и запускать с их гейским не таким как всех LD_LIBRARY_PATH
https://stackoverflow.com/questions/3146274/is-it-ok-to-use-dyld-library-path-on-mac-os-x-and-whats-the-dynamic-library-s
Запускать не с экспортом, а выставлять окружение перед запуском:
DYLD_LIBRARY_PATH=/path/to/lib ./appname
Так сработает в linux, в маке тоже должно быть примерно так, хотя он весь из себя не такой как все.

Сообщение было отредактировано: 14 май 20, 11:05
14 май 20, 11:01    [22132667]     Ответить | Цитировать Сообщить модератору
 Re: Как создать дистрибутив своей программы?  [new]
Alexey Tomin
Member

Откуда: Самара
Сообщений: 1884
crutchmaster
Alexey Tomin
не нашёл gnutls в статическом виде.

Собери её статически да слинкуй
https://lists.gnu.org/archive/html/gnutls-devel/2014-06/msg00000.html


Скачал https://gitlab.com/gnutls/gnutls , переключился на последний тэг git checkout 3.6.13 запустил по мурзилке ./bootstrap и получил

./bootstrap.conf: line 79: ./gnulib//gnulib-tool: No such file or directory
./bootstrap: line 249:  4179 Abort trap: 6           ( $1 --version < /dev/null ) > /dev/null 2>&1
./bootstrap: one of these is required: glibtoolize libtoolize;
./bootstrap: alternatively set LIBTOOLIZE to a compatible tool


Да, gnulib пустая. Буду читать кучу литературы. Надо найти ещё это `(g)libtoolize` Неужели никто не собрал?

Сообщение было отредактировано: 14 май 20, 14:18
14 май 20, 14:19    [22132891]     Ответить | Цитировать Сообщить модератору
 Re: Как создать дистрибутив своей программы?  [new]
Alexey Tomin
Member

Откуда: Самара
Сообщений: 1884
Alexey Tomin
crutchmaster
пропущено...

Собери её статически да слинкуй
https://lists.gnu.org/archive/html/gnutls-devel/2014-06/msg00000.html


Скачал https://gitlab.com/gnutls/gnutls , переключился на последний тэг git checkout 3.6.13 запустил по мурзилке ./bootstrap и получил

./bootstrap.conf: line 79: ./gnulib//gnulib-tool: No such file or directory
./bootstrap: line 249:  4179 Abort trap: 6           ( $1 --version < /dev/null ) > /dev/null 2>&1
./bootstrap: one of these is required: glibtoolize libtoolize;
./bootstrap: alternatively set LIBTOOLIZE to a compatible tool



Решило brew install autoconf automake autogen libtool
осталось libev4 was not found.


Да, gnulib пустая. Буду читать кучу литературы. Надо найти ещё это `(g)libtoolize` Неужели никто не собрал?[/quot]

Сообщение было отредактировано: 14 май 20, 15:39
14 май 20, 15:40    [22132992]     Ответить | Цитировать Сообщить модератору
 Re: Как создать дистрибутив своей программы?  [new]
crutchmaster
Member

Откуда: оттуда.
Сообщений: 1392
Alexey Tomin
Буду читать кучу литературы

Там в readme где-то написано, какие либы нужно ставить.
15 май 20, 11:17    [22133547]     Ответить | Цитировать Сообщить модератору
 Re: Как создать дистрибутив своей программы?  [new]
Alexey Tomin
Member

Откуда: Самара
Сообщений: 1884
crutchmaster
Alexey Tomin
Буду читать кучу литературы

Там в readme где-то написано, какие либы нужно ставить.


В итоге сделал так:
dylibbundler собирает все необходимые dylib в указанную папку, корректно изменяя исполнимый файл.
Далее встроенный pkgbuild собирает дистрибутив, при этом либы копируются в Resources/lib - пример здесь.

Но вот что меня случается.
Я задал в файле Distribution
<domains enable_anywhere="false" enable_localSystem="false" enable_currentUserHome="true" />


Иногда прилолжение ставится в home-каталог.
А иногда пишет, что у приложения нет прав на этут папку. Или просто шаг выбора места пропускается и приложение жёстко ставится в /Applications/

Проблема в том, что все папки в /Applications/my.app недоступны для записи пользователя. А мне хочется логировать в файл (NSLog и Console это адиище какое-то, хочется grep'ать логи), хранить некоторые данные.

Почему так происходит?
1 июл 20, 07:13    [22160070]     Ответить | Цитировать Сообщить модератору
 Re: Как создать дистрибутив своей программы?  [new]
crutchmaster
Member

Откуда: оттуда.
Сообщений: 1392
Alexey Tomin
Почему так происходит?

Это мак. Что ты от него хотел?
2 июл 20, 04:47    [22160507]     Ответить | Цитировать Сообщить модератору
 Re: Как создать дистрибутив своей программы?  [new]
Alexey Tomin
Member

Откуда: Самара
Сообщений: 1884
crutchmaster
Alexey Tomin
Почему так происходит?

Это мак. Что ты от него хотел?


До этого я только пользователь был, писал под linux свои java/kotlin приложения.
А тут понадобилось нативное написать, вот и погружаюсь во всё это
2 июл 20, 10:41    [22160650]     Ответить | Цитировать Сообщить модератору
 Re: Как создать дистрибутив своей программы?  [new]
crutchmaster
Member

Откуда: оттуда.
Сообщений: 1392
Alexey Tomin,

Подумай о том, чтобы на линуксе теперь собирать под мак:)
2 июл 20, 13:05    [22160816]     Ответить | Цитировать Сообщить модератору
 Re: Как создать дистрибутив своей программы?  [new]
Alexey Tomin
Member

Откуда: Самара
Сообщений: 1884
crutchmaster
Alexey Tomin,

Подумай о том, чтобы на линуксе теперь собирать под мак:)


Это не получится. Но у нас есть умелец настройки bitrise.io
2 июл 20, 16:07    [22161025]     Ответить | Цитировать Сообщить модератору
Все форумы / Другие: Mac OS, PalmOS, BeOS, PocketPC Ответить