从安卓版发布包恢复的 Godot 4.7 Mono / .NET 9 学习与兼容性研究工程,包含经过真机编译、签名和安装验证的 iOS Xcode 配置。
植物大战僵尸杂交版原作者为 潜艇伟伟迷。本仓库是非官方的 iOS 兼容性移植与学习项目,与原作者无隶属或授权关系。如有侵权,请联系我,我会删除相关内容。
- 当前状态:iPhone 17 Pro / iOS 27.0 可构建并安装。
- 已修复:Mobile 渲染下的植物/僵尸显示、主屏幕图标及触控拖拽松手种植;首次冷卡拖拽的最新源码修复尚待真机验证。
- 使用范围:仅限个人学习、自有设备测试和兼容性研究,请勿公开分发或商业使用。
build_install_ios.sh 会自动完成 C# 编译、Godot iOS 导出、Xcode 签名构建和真机安装,但本地开发工具、NuGet 缓存和签名证书不会提交到 Git。第一次使用前需要完成以下设置。
需要一台 Mac,并安装:
- 完整版 Xcode,不能只有 Command Line Tools;首次启动后登录自己的 Apple ID。
- Godot 4.7 Mono,不能使用非 Mono 版本。
- Godot 4.7 Mono Export Templates,其中应包含
4.7.stable.mono/ios.zip。 - .NET 9 SDK。
jq,用于自动读取和选择物理 iPhone。
确认当前终端使用完整 Xcode:
export DEVELOPER_DIR=/Applications/Xcode.app/Contents/DeveloperGodot 导出模板通常位于:
~/Library/Application Support/Godot/export_templates/4.7.stable.mono/ios.zip
仓库的 .tools/ 目录不会提交。脚本默认从以下位置寻找工具:
.tools/dotnet/dotnet
.tools/godot/Godot_mono.app/Contents/MacOS/Godot
可以把对应工具放入这些目录,也可以使用环境变量指定系统安装位置:
export PVZ_DOTNET_ROOT='/实际的/dotnet根目录'
export PVZ_DOTNET_BIN='/实际的/dotnet可执行文件'
export PVZ_GODOT_BIN='/Applications/Godot_mono.app/Contents/MacOS/Godot'脚本为了加快后续构建使用了 dotnet build --no-restore。全新 clone 后必须先执行一次:
"$PVZ_DOTNET_BIN" restore recovered_project/PlantsVsZombies.csproj如果使用仓库默认的 .tools/ 目录,则执行:
.tools/dotnet/dotnet restore recovered_project/PlantsVsZombies.csproj用 Xcode 打开 ios_build/PVZHybrid.xcodeproj,选择 PVZHybrid Target,然后进入 Signing & Capabilities:
- 勾选 Automatically manage signing。
- 将 Team 改为使用者自己的 Apple 开发团队。
- 将 Bundle Identifier 改成自己的唯一值,例如
com.username.pvzhybrid。
不要沿用仓库作者的 Team ID 和 Bundle ID。脚本最终使用的是 ios_build/PVZHybrid.xcodeproj 中的签名设置;只修改 recovered_project/export_presets.cfg 并不能替代这一步。
- 使用数据线或已配对的无线连接将 iPhone 连接到 Mac。
- 在手机和 Mac 上完成“信任此电脑”。
- 在 iPhone 上开启开发者模式并保持设备解锁。
- 先在 Xcode 的设备窗口确认手机能够被识别。
完成上述首次设置后,在仓库根目录运行:
./scripts/build_install_ios.sh脚本会自动排除 Simulator。只有一台物理 iPhone 时会直接使用;检测到多台时会显示名称、型号和系统版本供选择。也可以手动指定 UDID:
./scripts/build_install_ios.sh '<iPhone UDID>'只生成已签名的 IPA、不安装到手机:
./scripts/build_ipa.sh默认输出为 dist/PVZHybrid.ipa。
该 IPA 使用当前 Xcode 工程的开发签名,只适合签名描述文件所包含的测试设备,不是 App Store 分发包。
本仓库贡献者独立编写的 iOS 兼容性补丁、构建脚本和文档采用 MIT License 开源。
原游戏程序、美术、音频、名称,以及从发布包恢复的代码和资源不属于上述 MIT 授权范围,其权利归各自权利人所有。开源许可证不代表原作者或其他权利人对本项目作出授权。详细说明见 NOTICE。
完整的目录说明、环境要求、导出、真机构建、安装与回归测试步骤见 README_IOS.md。