3.3 KiB
3.3 KiB
Unity 导出设置(iOS)
- 在 Unity 中选择
File > Build Settings > iOS - 配置项:
- 确保
Export Project被勾选 - 脚本后端选择
IL2CPP - 勾选
Development Build用于调试 - 目标架构选择
ARM64 - 在
Player Settings > Other Settings中:- 设置 Bundle Identifier:
com.example.arTourismFlutterUnity - 最低 iOS 版本: 12.0
- 设置必要的权限(Camera, Location 等)
- 设置 Bundle Identifier:
- 确保
- 导出项目后,将整个导出的 Unity-iPhone 项目复制到 Flutter 项目的
ios/UnityLibrary目录
Info.plist 配置
确保 Info.plist 文件包含所有必要的权限描述:
<!-- 相机权限 -->
<key>NSCameraUsageDescription</key>
<string>此应用需要使用相机进行AR体验</string>
<!-- 相册权限 -->
<key>NSPhotoLibraryUsageDescription</key>
<string>需要相册权限用于保存和选择媒体</string>
<!-- 麦克风权限 -->
<key>NSMicrophoneUsageDescription</key>
<string>此应用需要访问您的麦克风以提供录像服务</string>
<!-- 定位权限 -->
<key>NSLocationWhenInUseUsageDescription</key>
<string>此应用需要访问您的定位以提供导航服务</string>
<key>NSLocationAlwaysUsageDescription</key>
<string>App需要您的同意,才能始终访问位置</string>
跨平台数据交互
Unity 与 Flutter 之间通过 MethodChannel 进行数据交互:
// 在Flutter中
static const platform = MethodChannel('com.example.ar_tourism_flutter_unity.unity');
// 调用Unity方法
await platform.invokeMethod('start_unity', {
'token': userToken,
'sceneName': 'Main',
'returnToHome': true
});
// 接收Unity消息
platform.setMethodCallHandler((call) async {
switch (call.method) {
case 'onUnityMessage':
// 处理来自Unity的消息
break;
case 'onUnityBackPressed':
// 处理Unity返回事件
break;
}
});
iOS 打包流程
-
更新版本号:
- 在
pubspec.yaml中更新版本号 - 在 Xcode 中更新版本号和构建号: 在 Xcode 左侧导航栏中点击最顶部的 "Runner" 项目 在中间区域确保选中 "Runner" target(不是 Project) 点击上方的 "General" 标签 向下滚动找到 "Identity" 部分,里面有两个重要的版本号设置: Version (显示版本号) Build (构建版本号) 确保 与p0ubspec.yaml 中的版本号一致
- 在
-
配置签名和证书:
- 在 Xcode 中配置正确的签名证书和配置文件
-
构建和归档:
flutter build ios --release然后在 Xcode 中进行归档和上传到 App Store
注意事项
- 内存管理:iOS 系统内存限制较严格,需确保 Unity 资源及时释放
- Framework 路径:确保 UnityFramework.framework 在正确的路径并被正确引用
- 权限处理:提前在 Info.plist 中配置所有必要权限
- Bitcode 禁用:Unity 不支持 Bitcode,需在项目配置中禁用
- 架构兼容:确保所有库使用兼容的架构(推荐仅使用 ARM64)
iOS
包名:com.example.arTourismFlutterUnity
打开 Xcode 项目:
Apply to README.md
Run
在 Xcode 中,右键点击项目导航器中的项目根目录
选择"Add Files to 'Runner'..."
导航到项目的 ios/UnityLibrary 目录
确保选中"Create folder references"(创建文件夹引用)选项
点击"Add"按钮
Flutter 3.19.3 ; Flutter Unity Widget 2022.2.1 ; Xcode16.3 ;build version 16E140;pod 1.16.2;