ARTICLE DETAIL

资讯详情

深耕郑州网站建设与运营推广的一线实战洞察。

Delphi 12社区版跨平台开发环境搭建指南:FMX原生多端一次搞定

Delphi 12社区版跨平台开发环境搭建指南:FMX原生多端一次搞定 2023年11月RAD Studio 12 / Delphi 12正式发布同期Embarcadero推出了新版Delphi 12 Community Edition社区版。对做原生开发的老Delphi用户来说这是个期待已久的信号跨平台这一块终于又有一款免费且自带完整IDE的选项可以用了。Delphi 12社区版能做什么一句话总结在Windows上安装一次就可以为Windows、macOS、Android、iOS四个平台编写原生应用代码绝大部分可以共用UI层面用FireMonkeyFMX框架一稿适配多端。这套环境适合谁呢适合刚入门的独立开发者、还在评估技术栈的小团队、做毕业设计或开源项目的同学以及一直用Delphi 7 / 2007过来、想重新捡起这门语言的老伙计们。说实话我在搭建这套环境之前也习惯性地以为会和当年一样麻烦装SDK、配JDK、处理各种签名。实际装完才发现社区版的安装流程比以前顺滑很多大部分坑官方都帮你填上了剩下的小坑就是我下面要写的这些。1. 内容整体设计与思路拆解1.1 为什么是Delphi 12社区版先说说我为什么推荐关注Delphi 12社区版而不是继续用旧的Delphi 10.3 / 10.4或者转向其他跨平台方案。第一免费力度足够。社区版允许个人开发者或年收入不超过5000美元的小团队免费使用功能和商业版在代码编写层面的差距不大Delphi 12的新特性比如新的IDE主题、改进的代码补全、增强的VCL / FMX控件基本都能体验到。对很多人来说这是从0到1评估Delphi最好的门槛。第二原生编译是真正的“跨平台”不是套壳。FMX框架写的界面在Windows上编译成Windows原生exe在Android上编译成真正的APK不会像某些混合方案一样需要在设备里塞一个Runtime。这一点在性能敏感的场景里差异非常明显。我记得第一次用Delphi 12编译一个稍复杂的FMX界面在Windows上的启动速度几乎是秒开这比很多解释型跨平台框架的体验要好太多。第三一套代码多端发布后期维护成本低。业务逻辑写一份UI层用FMX的跨平台组件具体平台差异用条件编译或平台单元去处理长期迭代比维护多个技术栈轻松。当然社区版也有一些硬性限制后面我会单独讲。1.2 跨平台环境搭建的整体架构与设计思路搭建Delphi跨平台环境本质上不是在装一个IDE那么简单而是在搭建一条“宿主—目标平台”的流水线。我建议在动手前先把这张图想清楚IDE和编译器跑在Windows本机上负责代码编辑、编译、调试目标平台SDKAndroid SDK / NDK、iOS SDK等需要单独配置IDE通过SDK Manager统一管理iOS / macOS比较特殊受苹果证书和签名机制限制你必须有真实的Mac设备通过PAServer充当桥接Windows上的Delphi IDE才能远程编译和部署到Mac / iPhone上。打个比方Delphi IDE像是厨房Windows、Android、iOS这些目标平台是不同类型的菜品。厨房里备了厨具但有的菜必须用专用锅Delphi帮你提前把锅和灶台都对接好你只需要在控制面板里选一下今天做哪道菜。这套设计里最关键的是把“写代码”和“打包”解耦。你在开发阶段挂在Windows上快速迭代最终发布时再切到Android或iOS目标平台去打包不需要为了不同设备频繁换开发机。理解了这个结构后面每一步操作你就知道它在整个体系里的位置了定位问题也会快得多。2. 核心细节解析与实操要点2.1 安装前的硬性条件与准备工作在开始下载之前有几样准备工作值得先做否则安装到一半容易卡壳。系统要求方面官方推荐配置大致如下项目最低要求推荐配置操作系统Windows 10 64位Windows 11 64位内存8GB16GB及以上磁盘空间20GB可用空间完整安装40GB以上建议放在SSD屏幕1280x7681920x1080或更高分辨率网络可访问Embarcadero官网宽带连接安装过程需要联网我装的时候踩过一个小坑刚开始用一台只有16GB磁盘空间的旧笔记本装结果还不够装一半因为Android SDK和虚拟机镜像会额外占用空间。所以空间一定预留足别装到一半发现磁盘红了。注册账号是必须的。打开Embarcadero官网的Delphi产品页面切到Community Edition版本用邮箱注册一个账户。这个邮箱就是之后接收社区版许可证用的建议用常用邮箱方便翻找激活邮件。下载安装包的时候注意区分社区版页面和Pro试用版页面长得比较像别下载成30天试用版。认准Download Community Edition的入口安装包大约4GB左右下载速度看网络情况耐心等就行。2.2 组件选择与安装过程安装包下载完成后双击开始安装。安装过程有几个界面需要注意选择安装类型时会问你安装哪些平台支持。这里面有几个选项要留意Windows 64-bit本机编译和运行必选Android SDK编译Android APK需要如果你不能连接官方SDK服务这里也可以后续手动导入iOS / macOS SDK需要Mac主机配合虽然你没Mac也能勾上但真正构建时必须要有MacLinux可选Delphi 12也支持Linux服务器开发但不在本主题范围内暂时用不到可以不勾。安装目录的选择上建议保持默认的C盘Program Files路径不要放在中文目录或者带空格的路径下。Delphi对编译路径比较敏感某些旧版本在中文路径下会报奇怪的编译错误虽然12代在这方面有改善但没必要给自己找麻烦规范一点更省心。整个安装过程大约需要15到30分钟具体取决于机器性能和磁盘速度。安装到最后一步会启动IDE首次启动会让你输入许可证这就是用你前面注册的邮箱登录激活。2.3 许可证激活与社区版限制说明激活流程并不复杂。第一次启动Delphi 12 Community Edition时IDE会弹出许可证管理窗口选择“更新 / 输入许可证”软件会引导你登录Embarcadero账号登录后许可证会自动绑定。如果登录后迟迟刷不出许可证有两个排查方向一是确认你用的是社区版安装包而不是Pro试用版二是把IDE完全退出再重新启动一次Delphi的许可证服务偶尔会需要重启后才生效。社区版的主要限制我整理了一张表限制项说明使用者数量只允许1个开发者使用收入门槛个人或公司年收入不超过5000美元企业用户员工数超过5人的组织不能使用社区版第三方控件部分商业第三方控件不提供社区版支持需使用社区可用的控件集支持渠道不包含官方技术支持主要靠社区和文档这些限制对个人项目和评估技术栈来说基本都不算问题。真正的边界是如果你是一家公司想拿来商用且收入超出门槛就必须购买专业版或企业版授权这一点合规上千万别打擦边球。3. 实操过程与核心环节实现3.1 创建第一个FireMonkey跨平台项目环境搭好之后激动人心的环节来了创建第一个跨平台项目。在IDE菜单里选 File New Multi-Device Application这里就是FireMonkey工程。弹出的模板选择界面里有几个常用模板Blank、Header with Navigation等。建议新手直接选Blank我长期做多平台项目也基本从Blank起步因为默认模板带的东西越少后面越可控。建好之后你会看到三个关键区域左侧是Structure面板能看到Form、布局层级中间是Form设计器也可以切到代码视图右下是Target Platforms面板这里就是切换编译目标的控制台。我习惯先放一个Button和一个Label双击Button生成OnClick事件在里面写一句Hello Delphi然后分别在不同平台上跑一遍。这一步虽然简单却是验证环境是否闭环最快的方式能跑通Hello World说明SDK路径、签名、部署通道全部正常后面真正写业务才有底气。3.2 Windows平台编译与运行在Target Platforms面板里选择Windows 64-bit然后点绿色的Run按钮或者按F9。Delphi的编译器速度非常快一个空的FMX项目基本在两三秒内就能编译完接着你的Windows应用窗口就会弹出来。这里有个细节值得说一下Windows平台编译时Delphi用的不是Visual Studio那套工具链而是它自带的原生编译器。所以在Windows上跑Delphi项目你不需要额外安装VS、不需要装.NET Runtime干净得让人舒服。这也是Delphi老用户一直很喜欢它的原因之一。编译生成的产品在哪呢如果工程文件存放在D:\Projects\MyApp目录那么编译输出的exe默认会在D:\Projects\MyApp\Win64\Debug\MyApp.exe。这个exe可以直接拷贝出去运行不需要额外运行时库。3.3 Android开发环境配置与APK打包切到Android目标平台之前先确认Android SDK是否已经就绪。打开 Tools Options Deployment Android SDK ManagerDelphi会检查你本机的SDK情况。社区版安装时如果勾选了Android组件这里通常会自带一个SDK如果显示为空就点Download按钮让Delphi自动下载。这一步是很多新手最容易卡住的地方。我的经验是优先使用Delphi自带的SDK管理器尽量不要手工去安卓官网下载SDK再导入。自带的版本匹配度更高版本冲突最少Android SDK包括platform-tools、build-tools、platform等组成部分Delphi会自动把默认API Level拉到合适版本如果之前装过Android StudioSDK路径可能被SDK Manager识别到但版本不匹配时反而容易出问题。保险起见我建议在这个环节用Delphi管理的独立SDK副本别图省事共用Android Studio的SDK。SDK就绪后回到Target Platforms面板选择Android平台再次点Run。这时Delphi会自动执行一次构建生成debug签名的APK然后通过ADB安装到已连接的Android设备或模拟器上。如果你没有连接设备也可以手动找到APK拷到手机上安装后期预发版测试经常这么干。首次编译Android比较慢因为要生成R文件、处理资源、执行DEX打包通常在几十秒到几分钟不等取决于机器性能。不用慌张这和Windows平台的秒编差异是正常现象。3.4 iOS/macOS开发环境配置说句实话iPhone / iPad的部署是所有平台里最麻烦的因为在苹果生态里签名和部署机制不允许纯Windows环境完成。你需要一台macOS设备MacBook、Mac mini都行作为构建机。流程大致是这样的Mac上安装Xcode并打开“系统设置 远程登录”允许远程访问在Mac上运行Delphi安装包里的PAServerPlatform Assistant Server。PAServer是Delphi IDE与Mac之间沟通的桥梁装好后启动它会显示一个本机IP和端口回到Windows的Delphi IDE在Target Platforms面板里选择iOS Device或macOSIDE会提示你连接Mac。输入Mac的IP和PAServer端口然后输入你Mac的用户名密码连接成功后你的Mac就变成了构建远端构建时Delphi会把工程同步到Mac调用Xcode的编译器做链接同时对iOS需要自动生成签名iOS真机调试还需要你在苹果开发者后台添加设备UDID并且配置开发证书和描述文件这一步只能使用Apple Developer账号来做。没有开发者证书的话iOS只能编译无法安装到真机。社区版同样受这个限制因为授权机制在苹果那边不在Embarcadero这边。如果你只是想在模拟器上看看效果可以通过Xcode自带的模拟器跑一个Delphi生成的.app包这不要求付费证书。4. 常见问题与排查技巧实录4.1 安装与激活阶段的问题安装卡在某个进度很久先检查磁盘剩余空间再检查杀毒软件是不是在实时扫描安装目录。我这里出现过杀毒软件把Delphi的某个dll当可疑文件隔离的情况导致安装完成后启动直接提示缺少组件把dll恢复并加入白名单才解决。许可证激活后仍提示未授权关掉IDE去服务管理器重启Embarcadero相关的许可证服务再重新启动IDE。如果还是不行重新点一次Help菜单里的Manage Licenses手动刷新。4.2 Android SDK与打包问题Android编译时报找不到SDK platform打开Android SDK Manager重新下载对应版本platformDelphi界面里通常有版本号的提示按提示下载就行。安装APK时提示签名冲突如果之前用Android Studio签过名Debug和Release签名不一样就会冲突。最简单的办法是卸载旧应用再安装新APK解决调试期烦恼。ADB检测不到设备手机打开USB调试连接后到Windows设备管理器中确认驱动是否正常。国内某些手机首次连接需要安装厂商驱动这个不是Delphi的问题是通用步骤。4.3 iOS/macOS远程连接问题连不上Mac先确认两台机器在同一个局域网、Mac的远程登录已开启、PAServer是启动状态。Windows防火墙如果拦截了PAServer的端口放行对应端口即可。iOS编译报证书错误去Xcode里Log In你的Apple ID并配置好描述文件后再回到Delphi连接。这一步往往不是Delphi问题而是Xcode侧的设置没做完。4.4 常见问题速查表问题现象可能原因快速处理方式安装包无法启动下载不完整或杀毒拦截校验文件大小 / 哈希暂时关闭实时防护编译报缺少工具链安装时没勾选对应SDK回到IDE的SDK Manager补齐组件安卓打包很慢首次构建生成资源后续增量构建会明显加快ADB设备未显示未开USB调试打开USB调试并安装驱动Mac连接超时PAServer未运行或端口不通重启PAServer并检查防火墙放行iOS签名失败证书或描述文件未配置在Xcode中完成签名设备配置我个人的一点体会是Delphi这套环境配置好后日常开发九成时间都在Windows上写代码、跑Windows版本真正切到Android / iOS去打包时只要平时保持SDK环境不搞乱基本都是一路顺畅。结尾经验这套环境我用了几个月整体体验相当稳定。要说最想提醒后来人的其实是两个容易被忽略的点。第一Android SDK不要乱动尤其是不要随手升级。Delphi对SDK版本有匹配要求一旦升级到它尚未支持的API Level编译期就会冒出一堆莫名其妙的问题。我后来养成一个习惯SDK管理器只允许Delphi去动日常升级SDK工具这种事一律不做。第二跨平台项目一定要尽早规划目录结构和平台差异代码。FMX替你省掉了界面适配的大部分活但文件操作、权限申请、设备能力检测这些仍然建议用单独的单元封装起来每个平台各写一个实现用条件编译来切换。这个习惯越早养成项目越到后期越轻松。如果你手里正好有想做成多端的产品原型比如一个小工具集、一个简单的业务管理系统甚至是给自己用的跨平台音乐管理类应用直接用Delphi 12社区版搭好环境照着这个思路跑一遍比在多个技术栈里来回跳要省心得多。好了环境已经就绪剩下的就看你的项目了。
返回列表