fix(client/macos): P1 骨架修正 — bundle id 统一 PacketTunnel + Info.plist 精简
ci-pangolin / Lint — shellcheck (push) Has been cancelled
ci-pangolin / OpenAPI Sync Check (push) Has been cancelled
ci-pangolin / Redline Scan — 脱敏 (UI 文案) (push) Has been cancelled
ci-pangolin / Flutter — analyze + test (push) Has been cancelled

- VpnChannel/Provider: 扩展 bundle id 统一为 com.pangolin.pangolin.PacketTunnel
  (对齐 Xcode 新建 target 的实际 id)
- PacketTunnel/Info.plist: 去掉重复 CFBundlePackageType + 多余 NEMachServiceName,
  只保留 NEProviderClasses(其余标准键由 GENERATE_INFOPLIST_FILE 合并)
- .gitignore: 忽略 Frameworks/Libbox.xcframework(204MB,build-libbox.sh 产出)

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
wangjia
2026-06-19 13:50:51 +08:00
parent da8f3a4fef
commit 07272f5610
4 changed files with 7 additions and 26 deletions
+3
View File
@@ -5,3 +5,6 @@
# Xcode-related
**/dgph
**/xcuserdata/
# libbox 嵌入式核心(204MB,scripts/build-libbox.sh 产出,不入 git)
**/Frameworks/Libbox.xcframework/
+2 -24
View File
@@ -2,37 +2,15 @@
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>CFBundleDevelopmentRegion</key>
<string>$(DEVELOPMENT_LANGUAGE)</string>
<key>CFBundleDisplayName</key>
<string>Pangolin Tunnel</string>
<key>CFBundleExecutable</key>
<string>$(EXECUTABLE_NAME)</string>
<key>CFBundleIdentifier</key>
<string>$(PRODUCT_BUNDLE_IDENTIFIER)</string>
<key>CFBundleInfoDictionaryVersion</key>
<string>6.0</string>
<key>CFBundleName</key>
<string>$(PRODUCT_NAME)</string>
<key>CFBundlePackageType</key>
<string>$(PRODUCT_BUNDLE_PACKAGE_TYPE)</string>
<key>CFBundleShortVersionString</key>
<string>$(MARKETING_VERSION)</string>
<key>CFBundleVersion</key>
<string>$(CURRENT_PROJECT_VERSION)</string>
<!-- System Extension 主体声明:NEPacketTunnelProvider。
NetworkExtension 框架据此把扩展类与 packet-tunnel 类型绑定。 -->
<!-- 自定义键:声明 NEPacketTunnelProvider。其余标准 CFBundle* 键由
GENERATE_INFOPLIST_FILE=YES 自动生成并合并,此处不重复写以免冲突。 -->
<key>NetworkExtension</key>
<dict>
<key>NEMachServiceName</key>
<string>$(TeamIdentifierPrefix)group.com.pangolin.pangolin</string>
<key>NEProviderClasses</key>
<dict>
<key>com.apple.networkextension.packet-tunnel</key>
<string>$(PRODUCT_MODULE_NAME).PacketTunnelProvider</string>
</dict>
</dict>
<key>CFBundlePackageType</key>
<string>XPC!</string>
</dict>
</plist>
@@ -20,7 +20,7 @@ import NetworkExtension
import os
// import Libbox // gomobile bind ; xcframework
private let log = Logger(subsystem: "com.pangolin.pangolin.tunnel", category: "provider")
private let log = Logger(subsystem: "com.pangolin.pangolin.PacketTunnel", category: "provider")
class PacketTunnelProvider: NEPacketTunnelProvider {
// libbox ( Libbox , xcframework LibboxBoxService)
+1 -1
View File
@@ -18,7 +18,7 @@ import os
private let log = Logger(subsystem: "com.pangolin.pangolin", category: "vpn")
final class VpnChannel: NSObject {
private static let tunnelBundleId = "com.pangolin.pangolin.tunnel"
private static let tunnelBundleId = "com.pangolin.pangolin.PacketTunnel"
private var statusSink: FlutterEventSink?
private var statsSink: FlutterEventSink?