Macos 为什么我的Firemonkey应用程序在OSX上打开一个终端窗口,而不是在Win32上?
我在Delphi XE2中创建了一个简单的测试平台应用程序,并编译了该应用程序的Win32和OSX版本。Macos 为什么我的Firemonkey应用程序在OSX上打开一个终端窗口,而不是在Win32上?,macos,delphi,delphi-xe2,firemonkey,Macos,Delphi,Delphi Xe2,Firemonkey,我在Delphi XE2中创建了一个简单的测试平台应用程序,并编译了该应用程序的Win32和OSX版本。 我压缩了OSX版本以及libcUnwind dylib运行时文件的副本,并将这些文件复制到我可以访问的Mac上。 当我解压缩文件时,mac识别出我的OSX应用程序,我双击了它 这反过来又为未知原因打开了一个终端窗口以及我的简单应用程序表单。 应用程序本身运行和表现都很好,但我很好奇为什么Mac上会打开一个终端窗口?IIRC如果您直接通过 Lazarus/FPC应用程序也有同样的问题。直接执行
我压缩了OSX版本以及libcUnwind dylib运行时文件的副本,并将这些文件复制到我可以访问的Mac上。
当我解压缩文件时,mac识别出我的OSX应用程序,我双击了它 这反过来又为未知原因打开了一个终端窗口以及我的简单应用程序表单。
应用程序本身运行和表现都很好,但我很好奇为什么Mac上会打开一个终端窗口?IIRC如果您直接通过
Lazarus/FPC应用程序也有同样的问题。直接执行的二进制程序IIRC在这种情况下也不会获得事件,但这些应用程序是基于碳的。当通过捆绑安装程序运行时(这几乎是一个清单、几个目录和一个符号链接)Delphi XE2提供了一个免费工具,可以从Windows为您创建OSX部署应用程序捆绑包,而不需要PAServer
查看自述文件以获取说明。您的应用程序需要从应用程序包中运行。如果您直接运行它,您将看到终端窗口和运行应用程序的命令行的副作用 你会想了解更多关于 如果您使用的是PASServer,在Mac上首次运行程序后,请在Mac上的以下文件夹中查找应用程序包:
/Users/[username]/Applications/Embarcadero/PAServer/scratch-dir/[profilename]
如果您的项目名为Project1,您将在名为Project1的文件夹中看到一个应用程序包
如果你阅读了上面的wiki文章,你就会知道Project1有一个.app的“隐藏”扩展名,整个东西实际上是一个文件夹,包含运行应用程序所需的所有文件
对于Mac OS用户来说,应用程序包显示为单个程序文件,并带有一个图标。用户可以双击应用程序包来运行应用程序,将其拖到自己的平台上,等等
默认情况下,应用程序包将具有Delphi图标,但您可以用自己的图标替换它。在Mac上,只需在Finder中右键单击应用程序包,然后选择ShowPackageContents。在那里,在Contents/Resources文件夹中查找.icns文件
使用随XCode一起安装的Icon Composer应用程序从现有图像文件创建.icns图标文件
看看里面的其他内容。您将看到所需的动态库、程序文件和Info.plist文件,这是一个文本文件,包含应用程序ID、签名和其他重要内容。我猜它与您部署的
libcUnwind动态库运行时文件
有关。我很乐意承认我是一个完整的Mac OSX新手,因为没有更好的词。使用动态库,应用程序将无法运行。dylib文件需要放在一个特殊的目录中吗?我是否必须在mac上的某个特定位置“安装”应用程序才能正常运行?这些都是我不知道的。我妻子有一台MacBook,就我对Mac的了解而言,我想你可以试着在网络研讨会上把这个问题告诉大家,David我展示了Mac的部署。打开了一个终端窗口,它似乎是PC和Mac之间的部署桥梁。我认为它是在监听网络套接字,代表DelphiIDE将文件放入Mac。我不知道这是不是你看到的同一个窗口,但这可以解释它。不,我没有使用这种方法,因为我的办公室里没有mac电脑。我远程编译/压缩/传输到mac,解压缩并启动。