giveaway

Пользователи
  • Публикаций

    53
  • Зарегистрирован

  • Посещение

Весь контент giveaway

  1. Написал приложение. Все прекрасно работало, пока реальные пользователи Мак не стали жаловаться на такую ошибку. Приложение скачивается ими с моего сайта (не Apple Store), и если его тут же запускать из папки Downloads, то выскакивает такое окно с алертом “The specified file was not found”. Однако стоит просто перенести приложение, или на рабочий стол, или в любую другую папку, включая системные по типу Applications и т.д., то все работает замечательно. Что за ерундень в этом Маке?)) Куда копать? P.s. Контейнер апп содержит внутри бинарник unrar, который я использую для распаковки .rar файлов (так нужно по задумке). Может отсюда ноги растут?
  2. MacOS High Sierra (10.13) OpenSSL

    Решения данной проблемы так и нет? Так чтобы половина кода не переделывать? Аппликуха нормально работала на всех Маках пока не вышла High Sierra Я даже готов отказаться от https, в случае если юзер будет запускать мое приложение на High Sierra. Как внутри отловить условие ненайденной SSL библиотеки и отказаться от ее использования в данном случае?
  3. Задам вопрос в этот раздел. Программа должна 1) Скидывать некоторые рабочие файлы в папку Temp на Маке 2) Определять свободное место на диске (-ах) 3) Давать пользователю руками вводить путь к папке (текстовый строкой) Я не спец по Маку, но вижу, что там диски буквами не обозначаются. Они обозваны своими именами типа Macintosh HD, My Flash Media и т.д. Как работать с деревом файлов в данном случае? Например по TEMP нашел: "/tmp На самом деле используется /private/tmp, а /tmp символьная ссылка. Приложения, которым требуется временное пространство на жестком диске обычно хранят их в этой директории. Хотя некоторые в /var/tmp." Прямо и ставить путь '/tmp"? В данном случае системная TEMP на Маке найдется автоматически?
  4. Напишу сюда же, дабы не создавать новую тему. Есть вопрос - как Mac обозначает диски? В своем приложении проверку свободного места на диске я реализовал через посыл определенной команды в терминал. Его ответ я использую для подсчета места. Но если в Windows диски обозначатся буквами, и отталкиваясь от этого я выполняю нужные калькуляции. У Мака ничего такого нет, и в итоге у меня определяется место только на том диске, с которого запущено мое приложение. А если есть другие внутренние или внешний диски – то калькуляция свободного места на них не получается… Есть идеи как это решить?
  5. Создал, как полагается, иконку в формате .icns, сделал Load в Project->Options->Application, причем и для All Configurations, и для Debug, и для Release. После компиляции маленькая иконка оказывается стандартной, которую сам биледр подставляет со значком С++, а большой ярлык вообще почти пустой (Мак свой какой-то подсовывает). Скрин прилагаю. Что делаю не так? Версия под Винду иконки подхватывает норм, а Мак вот артачиться.
  6. Это тоже может сработать, но одна загруженная иконка будет в некоторых случаях смотреться некачественно, т.к. система устроит ей ресайз. Поэтому по уму надо делать как я описал выше - чтобы было несколько разрешений.
  7. Разобрался. Почему-то мало где описан процесс создания иконок. Их надо создавать по-разному под Винду и Мак. 1) Для Windows нужно создать квадратные картинки png с разрешениями: 16, 24, 32, 48, 256. Потом в спец.редакторе собрать их в один файл .ico Я пользовался IcoFX. И уже данный "многослойный" файл .ico загружается в билдере (Project->Options->Application) и подхватывается при компиляции. 2) Для Мака также создаются png картинки, но кроме расширения нужно задать им и спец.имя: icon_16x16.png icon_16x16@2x.png icon_32x32.png icon_32x32@2x.png icon_128x128.png icon_128x128@2x.png icon_256x256.png icon_256x256@2x.png icon_512x512.png icon_512x512@2x.png Все эти картинки помещаются в папку <название>.iconset, которая заидывается на реальный Мак или его виртуальную инкарнацию. Там в Терминале вводим команду iconutil -c icns <название>.iconset Терминал создаст "многослойный" иконочный файл для Мака с расширением .icns Его тоже загружаем в билдере через Project->Options->Application. Если это не сработает, и после компиляции под Мак подцепится опять какая-то левая иконка, можно заменить этот файл .icns внутри конейнера .app Он там лежит в явном виде в папке Resources
  8. TIdHTTP «не отпускает» dll?

    Использую функцию TIdHTTP (TIdSSLIOHandlerSocketOpenSS), которой необходимы такие dll - LIBEAY32.dll и SSLEAY32.dll. При запуске программы они кидаются рядом с экзешником. Когда программа сделает все свои дела и ждет от пользователя нажатия кнопки close, я хочу удалять эти dll. Однако это не получается, потому что функция TIdHTTP занимает их, хотя сама уже свой этап выполнила. Как принудительно удалить LIBEAY32.dll и SSLEAY32.dll?
  9. TIdHTTP «не отпускает» dll?

    Вопрос остался. Решил попробовать кинуть dll в Temp, но экзешник ищет их рядом с собой и конечно не находит. Можно ли обращаться к dll, лежащим в другом месте?
  10. На компьютере №1 установлены: VMWare Workstation 10.0.7 OS X Maverick 10.9 DP1 Xcode 5.1.1 На нем скомпилированное приложение .app выполняет все свои функции. На компьютере №2 установлены: VMWare Workstation 12.5.5 OS X El Capitan 10.11.6 OS X Maverick 10.9.5 OS X Mountain Lion 10.8.3 Xcode отсутствует во всех OS X На нем в любой из систем приложение виснет в двух одних и тех же точках. В чем засада? В Workstation? Как я понимаю, отсутствие Xcode не должно влиять на работу уже скомпилированного .app
  11. Не факт) На комп №1 поставил такую же связку как и на №2, а именно VMWare Workstation 10.0.7 и OS X Maverick 10.9 DP1 (без Xcode) и приложение стало работать без ошибок. Более того теперь на других Mac OS (Maverick 10.9.5 и Mountain Lion 10.8.3) первая точка проходится без сбоев, а вот вторая осталась.
  12. Приложение под Мак должно распаковывать .rar-архивы. Делаю это бинаркником unar (не путать с unrar от RarLab). На данный момент через Deployment поместил его в контейнер .app Но дальше мне его надо, или вынуть оттуда и куда-то положить (потом позднее обратиться к нему, зная, куда он лег), или прямо запускать его по командой строке внутри контейнера (если такое возможно). Буду признателен за помощь в данном вопросе.
  13. В общем сделал я копирование бинарника unar из контейнера в нужную мне папку. Там уже лежат рары для распаковки. Мое приложение посылает командную строку на распаковку, вылетает ошибка (я сделал спец.окно для ее вывода), НО(!) если из этого дебагерского окна делаю копи-паст данной командной строки в Терминал, то распаковка происходит. См.картинку - вверху окно с посылаемой командой и ошибкой, внизу это же команда в Терминале с успешным ее выполнением. В чем может быть засада? Предварительно даже даю бинарнику атрибуты chmod 777
  14. Решил попробовать применить zip из коробки для мультитомных архивов: zip->ExtractZipFile(NameSaveFileAll[i],DirSaveFile); Получаю такой алерт (cм. рис) Для одиночных архивов этот код работает. Что может быть? По ходу дела ему не нравится заголовок многотомного зипа, да? Он вообще умеет с ним работать?
  15. Почему-то только System.Zip.TZipFile.Extract позволяет указывать, что не надо распаковывать в поддиректорию, а вот System.Zip.TZipFile.ExtractAll уже ее создает. Может я что не так делаю? Мне нужно, чтобы все файлы архива распаковывались в указываемую пользователем директорию без создания каких-либо поддиректорий внутри ее.
  16. Ниже следующим кодом пытаюсь копировать файл unar из контейнера (ExeDir) в папку выбираемую пользователем (DirSaveFile) buffer="cp \""+ExeDir+"unar \" "+"\""+DirSaveFile+"\""; retrn=system(buffer.c_str()); В итоге обругивает такой ошибкой (см. скрин) Может синтаксис неправильный?
  17. Да, для мака. Скачал с сайта разработчика. Если руками этому бинарнику дать командую строку с ключами - он все распаковывает. Более того, если я к проекте прописывают путь к какой-то папке, где лежит unar, то моя аппликуха тоже его запускает и он работает. Ок. Пусть он не запускается внутри контейнера. Меня устроит вариант, что я из контейнера предварительно закину этот unar в какую-то папку (по завершении оттуда удалю). Вопрос - как скопировать бинарник из контейнера куда-то по указанному пути? Мак это разрешает?
  18. У меня тоже все работает. Но это вероятно из-за того, что приложение было написано на Делфи. Встречал в сети такую инфу, что не работает именно в Си. В общем, мне удалось получит путь приложения нижеследующим кодом: ExeDir=ExtractFilePath(GetModuleName(HInstance));// папка приложения NameFile_unrar_dll=ExeDir+"unar"; buffer=NameFile_unrar_dll+" "+NameSaveFileAll[i]+" -D -o "+DirSaveFile; retrn=system(buffer.c_str()); т.е. я пытаюсь обратиться с командной строкой на распаковку к бинарнику unar, который лежит внутри контейнера .app, но в итоге получаю такой alert (см. картинку). Терминал же ругается, что no such file or directory. Хотя путь в предупреждении прописан верный
  19. Неа, не получается. Vitaldj, какой у вас сетап? Билдер, версия Mac OS? Набрел вот на топик: http://codeverge.com/embarcadero.delphi.firemonkey/paramstr-1/1044953 Автор спрашивает А ему ответ общего плана, к сожалению конкретики не последовало:
  20. Данная функция определяет только юзерскую папку Library, а мое .app лежит совершенно в другом месте. Как составить в этом случае запрос с помощью TPath?
  21. тип ExeDir AnsiString. Под Виндой эта фнукция мне возвращает нормальный путь, а для Мака - возвращает пустую строку. Почему?
  22. ExtractFilePath(ParamStr(0)) почему-то возвращает пустую строку. В чем может быть загвоздка?