Почему мое приложение Firemonkey открывает окно терминала в OSX, но не в Win32? - PullRequest
9 голосов
/ 09 сентября 2011

Я создал простое приложение для тестирования в Delphi XE2 и скомпилировал версию приложения для Win32 и OSX.
Я заархивировал версию OSX вместе с копией файла времени выполнения libcgunwind dylib и скопировал эти файлы на Mac, к которому у меня есть доступ.
Когда я распаковал файл, Mac узнал мое OSX-приложение, и я дважды щелкнул по нему.

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

Ответы [ 3 ]

3 голосов
/ 19 сентября 2011

Для Delphi XE2 доступен бесплатный инструмент, который создаст для вас пакет приложений для развертывания OSX из Windows без использования PAServer.

http://enesce.com/delphiosx_bundler

Проверьте файл readmeдля инструкций.

2 голосов
/ 09 сентября 2011

IIRC это происходит, если вместо этого вы выполняете двоичный файл напрямую через связку

В приложениях Lazarus / FPC возникла та же проблема. IIRC, непосредственно исполняемый двоичный файл, также не получал события при таких обстоятельствах, но эти приложения были основаны на Carbon. Эта проблема также исчезла при запуске через установку комплекта (которая в значительной степени манифест, несколько директорий и символическая ссылка)

0 голосов
/ 10 ноября 2011

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

Вы хотите узнать больше о Комплектах приложений .

Если вы используете PAServer, после первого запуска программы на Mac, найдите следующую папку на Mac в следующей папке:

/Users/[username]/Applications/Embarcadero/PAServer/scratch-dir/[profilename]

Если ваш проект называется Project1, вы увидите пакет приложений в этой папке с именем Project1.

Если вы прочтете приведенную выше статью вики, вы поймете, что Project1 имеет «скрытое» расширение .app, и все это на самом деле папка со всеми необходимыми файлами для запуска приложения.

Для пользователя Mac OS комплект приложений отображается в виде единого файла программы со значком. Пользователь может дважды щелкнуть по пакету приложений, чтобы запустить приложение, перетащить его в док-станцию ​​и т. Д.

Пакет приложения по умолчанию будет иметь значок Delphi, но вы можете заменить его своим собственным значком. На Mac просто щелкните правой кнопкой мыши комплект приложений в Finder и выберите «Показать содержимое пакета». Там найдите в папке Contents / Resources файл .icns.

Используйте приложение Icon Composer, которое было установлено с XCode, для создания файла значка .icns из существующих файлов изображений.

Загляните внутрь на остальное содержимое. Вы увидите необходимый dylib, файл вашей программы и файл Info.plist, который представляет собой текстовый файл с такими вещами, как идентификаторы приложений, подписи и другие важные вещи.

...