2023年11月,RAD Studio 12 / Delphi 12正式发布,同期Embarcadero推出了新版Delphi 12 Community Edition(社区版)。对做原生开发的老Delphi用户来说,这是个期待已久的信号:跨平台这一块,终于又有一款免费且自带完整IDE的选项可以用了。
Delphi 12社区版能做什么?一句话总结:在Windows上安装一次,就可以为Windows、macOS、Android、iOS四个平台编写原生应用,代码绝大部分可以共用,UI层面用FireMonkey(FMX)框架一稿适配多端。这套环境适合谁呢?适合刚入门的独立开发者、还在评估技术栈的小团队、做毕业设计或开源项目的同学,以及一直用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本机上,负责代码编辑、编译、调试;
- 目标平台SDK(Android 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位 |
| 内存 | 8GB | 16GB及以上 |
| 磁盘空间 | 20GB可用空间(完整安装) | 40GB以上,建议放在SSD |
| 屏幕 | 1280x768 | 1920x1080或更高分辨率 |
| 网络 | 可访问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也能勾上,但真正构建时必须要有Mac;
- Linux(可选):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 Manager,Delphi会检查你本机的SDK情况。社区版安装时如果勾选了Android组件,这里通常会自带一个SDK;如果显示为空,就点Download按钮让Delphi自动下载。
这一步是很多新手最容易卡住的地方。我的经验是:
- 优先使用Delphi自带的SDK管理器,尽量不要手工去安卓官网下载SDK再导入。自带的版本匹配度更高,版本冲突最少;
- Android SDK包括platform-tools、build-tools、platform等组成部分,Delphi会自动把默认API Level拉到合适版本;
- 如果之前装过Android Studio,SDK路径可能被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安装包里的PAServer(Platform Assistant Server)。PAServer是Delphi IDE与Mac之间沟通的桥梁,装好后启动,它会显示一个本机IP和端口;
- 回到Windows的Delphi IDE,在Target Platforms面板里选择iOS Device或macOS,IDE会提示你连接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重新下载对应版本platform,Delphi界面里通常有版本号的提示,按提示下载就行。
安装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社区版搭好环境照着这个思路跑一遍,比在多个技术栈里来回跳要省心得多。好了,环境已经就绪,剩下的就看你的项目了。