flutter_unity_pod/UPGRADE_GUIDE.md
2025-11-25 14:14:57 +08:00

256 lines
5.2 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# Unity Framework 升级指南
本指南说明如何在导出新的真机 UnityFramework 后,将其升级到 Pod 库中。
## 前置条件
- 已从 Unity 导出新的 iOS Framework真机版本
- 该 Framework 包含 arm64 架构
## 快速升级(推荐)
### 使用自动化脚本
```bash
cd /Users/apple/Desktop/work/flutter_unity_pod
./upgrade_framework.sh /path/to/new/UnityFramework.framework
```
脚本会自动完成以下步骤:
1. ✅ 验证新 Framework 的架构
2. 📦 备份当前 XCFramework
3. 🔨 编译模拟器空壳版本
4. 🔄 合并真机和模拟器版本
5. 📥 替换旧的 XCFramework
## 手动升级步骤
如果需要手动升级,请按以下步骤操作:
### 1. 替换真机 Framework
```bash
# 进入 Pod 仓库
cd /Users/apple/Desktop/work/flutter_unity_pod
# 备份当前版本(可选)
cp -r UnityLibrary/UnityFramework.xcframework backup/
# 删除旧的 XCFramework
rm -rf UnityLibrary/UnityFramework.xcframework
```
### 2. 运行构建脚本
```bash
# 先将新的 framework 放到临时位置
cp -r /path/to/new/UnityFramework.framework /tmp/
# 修改 build_xcframework.sh 中的路径
# 将 DEVICE_FRAMEWORK 变量改为新的 framework 路径
# 运行构建脚本
./build_xcframework.sh
```
### 3. 更新版本号(如果需要)
编辑 `UnityFramework.podspec`
```ruby
s.version = '1.0.8' # 更新版本号
```
### 4. 提交到 Git
```bash
# 添加所有更改
git add -A
# 提交
git commit -m "更新 Unity framework 到版本 x.x.x
- 更新游戏资源到最新版本
- 修复 xxx bug
- 添加 xxx 功能"
# 打标签(使用与 podspec 相同的版本号)
git tag 1.0.8
# 推送到远程
git push origin main
git push origin 1.0.8
```
## 在主项目中使用新版本
### 使用本地路径(开发测试)
在主项目的 `ios/Podfile` 中:
```ruby
pod 'UnityFramework', :path => '/Users/apple/Desktop/work/flutter_unity_pod'
```
然后运行:
```bash
cd ios
rm -rf Pods Podfile.lock
pod install
```
### 使用 Git 仓库(正式发布)
在主项目的 `ios/Podfile` 中:
```ruby
pod 'UnityFramework', :git => 'https://gitea.sdws.shop/xim/flutter_unity_pod.git', :tag => '1.0.8'
```
然后运行:
```bash
cd ios
rm -rf Pods Podfile.lock
pod install
```
## 验证升级
### 1. 验证 XCFramework 结构
```bash
# 查看 XCFramework 包含的平台
xcodebuild -checkFirstLaunchStatus \
/Users/apple/Desktop/work/flutter_unity_pod/UnityLibrary/UnityFramework.xcframework
```
应该看到:
- ✅ ios-arm64真机
- ✅ ios-arm64_x86_64-simulator模拟器
### 2. 测试模拟器构建
```bash
cd /path/to/main/project
flutter build ios --simulator --debug
```
### 3. 测试真机构建
```bash
cd /path/to/main/project
flutter build ios --release --no-codesign
```
## 常见问题
### Q: 升级后模拟器无法运行?
A: 检查模拟器空壳是否正确编译:
```bash
cd /Users/apple/Desktop/work/flutter_unity_pod
file UnityLibrary/UnityFramework.xcframework/ios-arm64_x86_64-simulator/UnityFramework.framework/UnityFramework
```
应该显示包含 `arm64``x86_64` 架构。
### Q: 升级后真机无法运行?
A: 检查真机 framework 是否包含所有必需的文件:
```bash
ls -la UnityLibrary/UnityFramework.xcframework/ios-arm64/UnityFramework.framework/
```
应该包含:
- Headers/
- Data/
- UnityFramework二进制文件
- Info.plist
- Modules/
### Q: Git 推送失败(权限不足)?
A: 联系仓库管理员配置写权限,或者先在本地测试通过后再推送。
## 版本管理建议
### 版本号规则
遵循语义化版本:`major.minor.patch`
- **major**: Unity 主版本升级(如 2021 -> 2022
- **minor**: 游戏功能更新、重大修改
- **patch**: Bug 修复、小优化
### 示例
- `1.0.7`: 初始 XCFramework 版本
- `1.0.8`: 修复 bug
- `1.1.0`: 添加新游戏
- `2.0.0`: Unity 版本升级
## 自动化 CI/CD可选
如果希望自动化升级流程,可以创建 CI 脚本:
```yaml
# .github/workflows/upgrade-framework.yml
name: Upgrade Unity Framework
on:
workflow_dispatch:
inputs:
framework_url:
description: 'Unity Framework 下载 URL'
required: true
jobs:
upgrade:
runs-on: macos-latest
steps:
- uses: actions/checkout@v3
- name: Download Framework
run: |
curl -L ${{ github.event.inputs.framework_url }} -o framework.zip
unzip framework.zip
- name: Upgrade Framework
run: ./upgrade_framework.sh ./UnityFramework.framework
- name: Commit and Tag
run: |
git config user.name "CI Bot"
git config user.email "ci@example.com"
git add -A
git commit -m "Auto upgrade framework"
git tag 1.0.${{ github.run_number }}
git push origin main --tags
```
## 回滚步骤
如果升级后出现问题,可以快速回滚:
```bash
# 查看备份
ls backup/
# 恢复备份
cp -r backup/backup_YYYYMMDD_HHMMSS/UnityFramework.xcframework \
UnityLibrary/
# 回退 git 提交
git reset --hard HEAD~1
# 删除标签
git tag -d 1.0.x
git push origin :refs/tags/1.0.x
```
## 支持
如有问题,请联系开发团队或查看:
- 项目 README
- Unity 导出文档
- CocoaPods 官方文档