# UnityFramework Pod

Unity iOS Framework 打包为 CocoaPods，支持真机和模拟器。

## 特性

- ✅ 支持真机运行（完整 Unity 运行时）
- ✅ 支持模拟器运行（空壳实现，用于开发调试）
- ✅ XCFramework 格式，自动处理不同平台
- ✅ 简单的升级流程. test

## 架构支持

| 平台 | 架构 | 说明 |
|------|------|------|
| 真机 | arm64 | 完整的 Unity 运行时 |
| 模拟器 | arm64, x86_64 | 空壳实现，方便开发 |

## 使用方法

### 在 Podfile 中引入

#### 使用 Git 仓库（推荐）

```ruby
pod 'UnityFramework', :git => 'https://gitea.sdws.shop/xim/flutter_unity_pod.git', :tag => '1.0.7'
```

#### 使用本地路径（开发调试）

```ruby
pod 'UnityFramework', :path => '/path/to/flutter_unity_pod'
```

### 安装

```bash
cd ios
pod install
```

## 升级 Framework

当有新的 Unity Framework 导出时，使用自动化脚本升级：

```bash
./upgrade_framework.sh /path/to/new/UnityFramework.framework
```

详细步骤请参考 [UPGRADE_GUIDE.md](./UPGRADE_GUIDE.md)

## 项目结构

```
flutter_unity_pod/
├── UnityLibrary/
│   └── UnityFramework.xcframework/      # 主 XCFramework
│       ├── ios-arm64/                    # 真机版本
│       │   └── UnityFramework.framework/
│       └── ios-arm64_x86_64-simulator/   # 模拟器版本
│           └── UnityFramework.framework/
├── simulator_stub/
│   └── UnityFrameworkStub.m              # 模拟器空壳实现
├── build_xcframework.sh                  # 初始构建脚本
├── upgrade_framework.sh                  # 升级脚本
├── UPGRADE_GUIDE.md                      # 升级指南
└── UnityFramework.podspec                # Pod 配置文件
```

## 开发说明

### 模拟器行为

模拟器版本是空壳实现，所有 Unity 相关方法都会返回空或不执行。当尝试在模拟器运行 Unity 时，会输出日志：

```
UnityFramework: Simulator stub - Unity not available
```

在 Flutter 代码中也有检测：

```dart
// lib/common/utils/unitygame/unity_game_manager.dart:997-1004
if (Platform.isIOS) {
  final isSimulator =
      Platform.environment.containsKey('SIMULATOR_DEVICE_NAME') ||
          Platform.environment.containsKey('SIMULATOR_UDID');
  if (isSimulator) {
    showToast('Unity 游戏仅支持真机运行，请在真机上体验。');
    return;
  }
}
```

### 构建流程

1. 编译模拟器空壳（arm64 + x86_64）
2. 合并真机 framework
3. 创建 XCFramework
4. 打包为 CocoaPod

## 版本历史

### 1.0.7 (2024-11-25)
- 升级到 XCFramework
- 添加模拟器支持
- 简化配置，移除架构排除

### 1.0.6
- 初始版本
- 仅支持真机

## 故障排除

### 模拟器构建失败

确保 XCFramework 包含模拟器架构：

```bash
lipo -info UnityLibrary/UnityFramework.xcframework/ios-arm64_x86_64-simulator/UnityFramework.framework/UnityFramework
```

### 真机构建失败

检查真机 framework 是否完整：

```bash
ls UnityLibrary/UnityFramework.xcframework/ios-arm64/UnityFramework.framework/
```

### Pod install 失败

清理缓存重试：

```bash
pod cache clean UnityFramework --all
rm -rf Pods Podfile.lock
pod install
```

## License

MIT

## 联系方式

- 仓库：https://gitea.sdws.shop/xim/flutter_unity_pod
- 问题反馈：请创建 Issue
