为什么我的Firemonkey应用程序在OSX上打开终端窗口但在Win32上没有?

时间:2011-09-09 15:21:27

标签: macos delphi delphi-xe2 firemonkey

我在Delphi XE2中创建了一个简单的测试平台应用程序,并编译了该应用程序的Win32和OSX版本。
我压缩了OSX版本,以及libcgunwind dylib运行时文件的副本,并将此文件复制到我有权访问的Mac。 当我解压缩文件时,mac识别我的OSX应用程序并双击它。

这反过来打开了一个终端窗口,出于某种未知的原因以及我的简单应用程序的形式 应用程序本身运行并表现得很好,但我很好奇为什么终端窗口会在Mac上打开?

3 个答案:

答案 0 :(得分:3)

Delphi XE2提供了一个免费工具,可以从Windows为您创建OSX部署应用程序包,而无需PAServer。

http://enesce.com/delphiosx_bundler

查看自述文件以获取说明。

答案 1 :(得分:2)

如果您直接通过bundle

执行二进制文件,则会发生这种情况

Lazarus / FPC应用程序遇到了同样的问题。 IIRC直接执行的二进制文件在这些情况下也没有得到事件,但这些应用程序是基于碳的。通过捆绑设置(这几乎是一个清单,几个目录和一个符号链接)运行时,这个问题也消失了。

答案 2 :(得分:0)

您的应用程序需要从应用程序包运行。如果直接运行它,您将看到使用运行应用程序的命令行查看终端窗口的副作用。

您需要详细了解Application Bundles

如果您正在使用PAServer,在Mac上首次运行该程序后,请在Mac上查看以下文件夹中的应用程序包:

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

如果您的项目名为Project1,您将在该文件夹中看到名为Project1的应用程序包。

如果你阅读上面的wiki文章,你就会知道Project1有一个“隐藏”的扩展名.app,整个文件夹里面包含了运行应用程序所需的所有文件。

对于Mac OS用户,应用程序包显示为单个程序文件,并带有图标。用户可以双击应用程序包以运行应用程序,将其拖到停靠栏等等。

默认情况下,应用程序包将具有Delphi图标,但您可以使用自己的图标替换它。在Mac上,只需右键单击Finder中的应用程序包,然后选择“显示包内容”。在那里,查看.icns文件的Contents / Resources文件夹。

使用随XCode一起安装的Icon Composer应用程序从现有图像文件创建.icns图标文件。

在里面看其余的内容。您将看到所需的dylib,您的程序文件和Info.plist文件,它是一个包含应用程序ID,签名和其他重要内容的文本文件。