gpt4 book ai didi

macos - 如何为 Mac OSX 部署 FireMonkey 应用程序?

转载 作者:行者123 更新时间:2023-12-03 14:36:30 25 4
gpt4 key购买 nike

我可以使用 PAServer 在 Mac OSX 上运行 FireMonkey 应用程序。但现在,我想部署应用程序 Mac OS(类似于 Windows 下的 MSI)。我怎样才能做到这一点?

最佳答案

您需要阅读有关 Application Bundles 的更多信息.

使用 Delphi 通过 PAServer 创建和部署的应用程序包

由于您使用的是 PAServer,您会发现它已经为您创建了一个应用程序包。通过 PAServer 运行程序后,请在 Mac 上的以下文件夹中查找应用程序包:

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

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

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

直接在 Mac 上运行此应用程序包。如果它提示缺少 dylib,例如 libmidas.dylib,只需将它们从 PAServer 文件夹复制到应用程序包的 MacOS 文件夹中即可。

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

更改图标

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

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

查看 bundle 内部

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

有关部署的更多信息

如果您的应用程序可以独立包含在应用程序包中,则标准方法是 put the application bundle inside a disk image .dmg file ,允许用户将应用程序放入应用程序文件夹中。

如果您的应用程序需要安装其他文件、库、数据库或框架等,您应该创建一个包。您可以利用PackageMaker去做这个。软件包类似于您提到的 Windows 上的“msi”安装程序。

当用户双击该包时,它由 Installer 运行。它有一个向导风格的界面,引导用户安装应用程序。您还可以使用代码签名证书对包进行签名。

如果您想将应用程序包包含在应用程序商店中,则需要 sign它。您还需要sandbox它。

Sandboxing and the Mac App Store - Nov 2, 2011

The vast majority of Mac users have been free from malware and we're working on technologies to help keep it that way. As of March 1, 2012 all apps submitted to the Mac App Store must implement sandboxing. Sandboxing your app is a great way to protect systems and users by limiting the resources apps can access and making it more difficult for malicious software to compromise users' systems. Learn more by visiting the App Sandbox page.

关于macos - 如何为 Mac OSX 部署 FireMonkey 应用程序?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8159485/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com