b25c8bbc2c
把 PoC 的 sudo sing-box 外部二进制换成自包含、免 root 的 NEPacketTunnelProvider (System Extension)+ 嵌入 libbox 的生产架构铺好骨架(不破坏现有 PoC 构建)。 - PacketTunnel/:扩展 target 源 — PacketTunnelProvider(LibboxSetup→NewService→start, openTun 建 NEPacketTunnelNetworkSettings)、Info.plist(NEProviderClasses)、 entitlements(packet-tunnel-provider-systemextension + App Group) - Runner/VpnChannel.swift:主 app 经 NETunnelProviderManager 启停 + 状态/速率回传, 对齐 Dart 侧 VpnNativeBridge 的 pangolin/vpn channel 契约 - vpn_bridge_provider.dart:kUseNativeVpnMacOS 开关(默认 false,联调通过后置 true) - docs/p1-macos-system-extension.md:文件清单 + Xcode/签名步骤 + 待办 (Team BYL4KQHMTN;Network Extensions 已确认自助开通、无需 Apple 审批) 非破坏:新源文件未入 build target、注册行/app-group entitlements 均注释、gate 默认 false。 Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
25 lines
926 B
Swift
25 lines
926 B
Swift
import Cocoa
|
||
import FlutterMacOS
|
||
|
||
class MainFlutterWindow: NSWindow {
|
||
override func awakeFromNib() {
|
||
let flutterViewController = FlutterViewController()
|
||
self.contentViewController = flutterViewController
|
||
|
||
// 桌面默认窗口 920×600(对齐设计稿 ui_kits/desktop),最小 720×560。
|
||
let defaultSize = NSSize(width: 920, height: 600)
|
||
self.setContentSize(defaultSize)
|
||
self.contentMinSize = NSSize(width: 720, height: 560)
|
||
self.center()
|
||
|
||
RegisterGeneratedPlugins(registry: flutterViewController)
|
||
|
||
// P1 方案B:VPN 原生控制通道。把 VpnChannel.swift 加入 Runner target(Compile Sources)
|
||
// 后,解开下一行注册(见 docs/p1-macos-system-extension.md §3)。在此之前保持注释,
|
||
// 以免引用未编译符号破坏 Runner 构建。
|
||
// VpnChannel.register(with: flutterViewController.registrar(forPlugin: "VpnChannel"))
|
||
|
||
super.awakeFromNib()
|
||
}
|
||
}
|