原生数据面 macOS 冒烟通过(P0 闸)+ 修 stasel WebRTC macOS 切片缺头

- P0 闸达成:新增 macOS 独立单测 target CommilitiaDropMacTests(把 LibWebRtcEngine.swift 直接编入测试 bundle,无宿主 app、同模块无需 @testable),跑与 iOS 同一份环回端到端测试——两个引擎同进程交叉连,20MB 伪随机源逐字节比对。macOS 上线协议(offer/answer/ICE + 分片 / 背压 / ack / finalize)在 libwebrtc 闭环,证实原生数据面在 Mac 可用(≈3s 通过)。是 Mac 复用 iOS 引擎的技术前提
- 修 stasel/WebRTC 149.0.0 原生 macOS 切片缺头:macos-x86_64_arm64 随包只带 umbrella WebRTC.h、缺全部 80+ 子头(ios / maccatalyst / simulator 三切片各 93 头齐全),umbrella #import 的子头找不到致 import WebRTC 在原生 macOS 编不过;切片二进制本身有效(arm64+x86_64 dylib)。scripts/patch-macos-webrtc-headers.sh 从同包 ios-arm64 切片补齐(子头为平台守卫 ObjC 声明、跨切片同构;排除 3 个 UIKit 绑定视图头 + 从 umbrella 去掉本包缺失的 RTCMTLNSVideoView.h)。幂等,须 SPM resolve 之后、build 之前跑
- LibWebRtcEngineTests.swift 导入条件化:仅 #if os(iOS) 时 @testable import CommilitiaDrop(macOS 侧引擎编在同模块、无需 import),iOS 与 macOS 共用同一份测试文件验证同构闭环
- Justfile:mac-prep(xcodegen + -resolvePackageDependencies + 补头脚本)→ mac-build / mac-test 均依赖之;build / test 加 -disableAutomaticPackageResolution 防 build 期再解析冲掉补丁
- 验证:just mac-test 从残缺态复现全绿——resolve + 补头(1→90)+ 编译 + 环回测试通过
This commit is contained in:
2026-07-07 21:59:35 +08:00
parent 29e5c0a739
commit 9d46e26f50
4 changed files with 87 additions and 5 deletions
+22
View File
@@ -199,6 +199,24 @@ targets:
# App Group entitlementSupport/macOS/AppMac.entitlements)在 macOS 属受限能力,即便
# ad-hoc 签名也须 provisioning profile;脚手架阶段(本地免账号编译 / 自测)暂不挂,待桌面
# 剪贴板 / 小组件共享落地 + Developer ID 签名(Phase 6)再引用该文件。见 AppMac.entitlements。
# 原生数据面 macOS 冒烟(P0 闸):把 LibWebRtcEngine.swift 直接编入独立测试 bundle(无宿主 app,
# 同模块无需 @testable import),跑与 iOS 同一份环回端到端测试——两个引擎同进程交叉连,验证
# libwebrtc 的 macOS 切片上线协议(offer/answer/ICE + 分片 / 背压 / ack / finalize)逐字节闭环。
# 证实原生数据面在 Mac 可用,是 Mac 复用 iOS 引擎的技术前提。
CommilitiaDropMacTests:
type: bundle.unit-test
platform: macOS
deploymentTarget: "26.0"
sources:
- path: Tests
- path: Sources/Engine/LibWebRtcEngine.swift
dependencies:
- package: WebRTC
settings:
base:
PRODUCT_BUNDLE_IDENTIFIER: net.commilitia.Commilitia-Drop.mac.tests
ARCHS: arm64
GENERATE_INFOPLIST_FILE: "YES"
schemes:
CommilitiaDrop:
build:
@@ -214,6 +232,10 @@ schemes:
build:
targets:
CommilitiaDropMac: all
test:
targets:
- CommilitiaDropMacTests
gatherCoverageData: false
run:
config: Debug
archive: