# QGVAPlayer SDK 开发环境(本仓库) ## 1. 项目结构(开发视角) - `QGVAPlayer/QGVAPlayer.xcodeproj`: SDK 主工程(`QGVAPlayer` framework) - `QGVAPlayerDemo/QGVAPlayerDemo.xcodeproj`: ObjC Demo(子工程依赖 SDK) - `QGVAPlayerDemoSwift/QGVAPlayerDemoSwift.xcodeproj`: Swift Demo(子工程依赖 SDK) - `QGVAPlayer.podspec`: Pod 发布配置 两个 Demo 都是直接依赖本地 `QGVAPlayer.xcodeproj`,适合边改 SDK 边验证。 ## 2. 一次性环境准备 在仓库根目录执行: ```bash bash scripts/dev/setup_sdk_dev.sh ``` 脚本会做: - 检查 Xcode / `xcrun` - 检查并尝试安装 `MetalToolchain` - 准备仓库内 `./.deriveddata` 构建目录 - 校验三个 xcodeproj 可被识别 ## 3. 日常开发流程(推荐) 1. 修改 SDK 源码:`QGVAPlayer/QGVAPlayer/**/*` 2. 编译回归 Demo: ```bash bash scripts/dev/build_demo.sh all ``` 可选只编译单个 Demo: ```bash bash scripts/dev/build_demo.sh objc bash scripts/dev/build_demo.sh swift ``` 3. 在 Xcode 中运行 App 验证: - 推荐直接打开根目录 workspace:`QGVAPlayerDev.xcworkspace`(可同时看到 SDK + ObjC Demo + Swift Demo) - 在 workspace 中使用共享 Scheme:`QGVAPlayerDemo` / `QGVAPlayerDemoSwift` - 不建议优先单独打开 `*.xcodeproj`(会看不到完整联调上下文) ## 4. 备注 - 工程内已调整:`QGVAPlayer` 与 `QGVAPlayerDemo` 的 `IPHONEOS_DEPLOYMENT_TARGET` 为 `12.0`(兼容新 Xcode)。 - `build_demo.sh` 里已做命令行覆盖:ObjC Demo 使用 `12.0`(规避 `libarclite`),Swift Demo 使用 `14.5`(匹配 SceneDelegate API)。 - 如果命令行提示 `metal` 不可用,先执行一次: ```bash xcodebuild -downloadComponent MetalToolchain ```