iOS 集成指南
核心库引入 (XCFramework)
SDK 核心以 TunnelCore.xcframework 形式提供,支持真机 (arm64) 和模拟器 (x86_64)。
- 在 Xcode 中,选择您的 Target -> General。
- 将
TunnelCore.xcframework拖入 Frameworks, Libraries, and Embedded Content。 - 确保状态设置为 Embed & Sign。
网络扩展 (Network Extension)
iOS 平台实现应用级透明代理通常需要 NetworkExtension。
- 在 Xcode 中添加 Network Extension Capability。
- 选择 Packet Tunnel 类型。
- 配置您的
PacketTunnelProvider类。
提示: 在大多数应用集成场景中,您只需要在 App 内部启动 SOCKS5/HTTP 监听,并手动配置网络库(如 URLSession, AFNetworking, Alamofire)使用该代理即可,无需复杂的 NetworkExtension。
Info.plist 配置
确保添加了网络权限声明,并在需要后台运行时配置后台模式:
xml
<key>UIBackgroundModes</key>
<array>
<string>network-authentication</string>
<string>fetch</string>
</array>
<!-- 如果您使用了本地网络权限 -->
<key>NSLocalNetworkUsageDescription</key>
<string>我们需要访问本地网络以启动代理隧道</string>原生调用示例 (Swift)
swift
import TunnelCore
// 1. 启动隧道
let configJson = "{...}"
let result = TunnelCoreStartTunnel(configJson)
if result == "success" {
print("Tunnel started")
} else {
print("Error: \(result ?? "unknown")")
}
// 2. 获取统计数据 (JSON 字符串)
if let stats = TunnelCoreGetStats() {
print("Stats: \(stats)")
}
// 3. 停止
TunnelCoreStopTunnel()常见问题 (FAQ)
1. Bitcode 支持
由于 Go 编译器不支持 Bitcode,请在 Xcode 项目设置中将 Enable Bitcode 设置为 No。
2. 模拟器运行
我们提供的 XCFramework 已包含模拟器切片。但请注意,模拟器网络环境与真机不同,部分高级加密功能可能因指令集差异导致性能下降。建议以 真机测试 为准。