Delphi 10.1中FireMonkey项目无法添加OS X目标平台的咨询
解决Delphi 10.1迁移项目无法添加OS X目标平台的问题
从你描述的细节来看——新创建的应用能正常添加并编译OS X平台,但迁移过来的旧项目(包括自己的带SQLite3的FMX应用、其他设备的简单32位应用)都无法添加,核心问题肯定出在迁移项目的配置文件残留问题上,毕竟你的开发环境(PASServer、Delphi跨平台配置)已经通过新应用验证是完全正常的。下面是一步步的排查和修复方案:
1. 先检查项目的平台基础设置
打开无法添加OS X的项目,按以下路径操作:
- 点击顶部菜单
Project→Options→Building→Platforms - 查看右侧的
Target Platforms列表,如果没有OS X选项,直接点Add按钮尝试添加。 - 如果点击
Add后找不到OS X选项,或者添加时弹出错误提示,继续往下走。
2. 手动修复项目文件(.dproj)的XML配置
Delphi的.dproj本质是XML格式,跨设备迁移时很容易残留原环境的平台锁定配置,或者缺失OS X平台的必要节点:
- 先关闭Delphi,找到项目的
.dproj文件,用记事本或VS Code打开。 - 搜索
<Platforms>节点,检查是否包含<Platform Value="OSX32"/>(Delphi 10.1的OS X目标平台标识是OSX32)。如果没有,把它添加进去,示例如下:
<Platforms> <Platform Value="Win32"/> <Platform Value="Win64"/> <Platform Value="Android"/> <Platform Value="OSX32"/> </Platforms>
- 另外,检查文件中是否存在
<PropertyGroup Condition="'$(Platform)'=='OSX32'">节点,如果没有,可以参考你新创建的OS X项目的.dproj文件,复制对应的配置节点过来(主要是编译路径、SDK引用等基础配置)。 - 保存修改后重新打开项目,再尝试添加OS X平台。
3. 清理项目的本地缓存配置文件
迁移项目时,往往会携带原环境的本地缓存文件,这些文件会干扰新环境的平台识别逻辑:
- 关闭Delphi,删除项目目录下的这些文件/文件夹:
.dproj.local.identcache__history文件夹- 所有编译生成的
Win32/Win64/Android输出文件夹
- 重新打开项目,再尝试添加OS X平台。
4. 排查SQLite3相关配置的兼容性
你的项目包含SQLite3,虽然用的是标准组件,但也要确认:
- 项目中是否硬编码了Windows版的SQLite库路径(比如
sqlite3.dll)?如果有,可能会触发平台添加时的兼容性检查失败,建议先注释掉硬编码的路径,等OS X平台添加完成后,再在Deployment中配置OS X对应的libsqlite3.dylib。
5. 终极方案:重建项目迁移代码
如果以上步骤都无效,最稳妥的方法是彻底重建项目:
- 在MacMini的Delphi中创建一个新的支持OS X的FMX应用。
- 把旧项目中的所有代码文件(
.pas、.fmx、.dfm、SQLite数据库文件等)复制到新项目目录下。 - 在新项目中依次添加这些文件,然后配置FireDAC的SQLite连接(和旧项目保持一致),最后编译测试。
这个方法可以彻底规避原项目文件的配置遗留问题,适合比较复杂的旧项目。
内容的提问来源于stack exchange,提问作者Al C
相关产品推荐
相关产品推荐

