AplicaciΓ³n Flutter para iOS que se conecta a una VPN OpenVPN usando TunnelKit.
- β ConexiΓ³n a VPN OpenVPN
- β DesconexiΓ³n de VPN
- β
VisualizaciΓ³n de estados en tiempo real:
- Desconectada
- Conectando
- Conectada
- Desconectando
- β Interfaz moderna y amigable
- β IntegraciΓ³n nativa con iOS usando TunnelKit
βββββββββββββββββββββββββββββββββββββββ
β Flutter UI (Dart) β
β - Botones conectar/desconectar β
β - VisualizaciΓ³n de estado β
βββββββββββββββ¬ββββββββββββββββββββββββ
β
β MethodChannel
βΌ
βββββββββββββββββββββββββββββββββββββββ
β Swift Native (iOS) β
β - VPNManager β
β - VPNConfiguration β
β - AppDelegate β
βββββββββββββββ¬ββββββββββββββββββββββββ
β
β TunnelKit API
βΌ
βββββββββββββββββββββββββββββββββββββββ
β PacketTunnelProvider β
β (Network Extension) β
β - Maneja el tΓΊnel VPN β
β - Usa TunnelKitOpenVPN β
βββββββββββββββββββββββββββββββββββββββ
tunnelkit_flutter/
βββ lib/
β βββ main.dart # UI de Flutter con MethodChannel
βββ ios/
β βββ Runner/
β β βββ AppDelegate.swift # IntegraciΓ³n del MethodChannel
β β βββ VPNManager.swift # LΓ³gica de conexiΓ³n VPN
β β βββ VPNConfiguration.swift # Certificados y config VPN
β β βββ Runner.entitlements # Permisos de la app
β β βββ Info.plist
β βββ TunnelExtension/
β β βββ PacketTunnelProvider.swift # Network Extension
β β βββ TunnelExtension.entitlements # Permisos de extensiΓ³n
β β βββ Info.plist
β βββ Podfile # Dependencias TunnelKit
βββ INSTRUCCIONES_VPN.md # π GuΓa completa paso a paso
βββ COMANDOS_RAPIDOS.md # β‘ Comandos ΓΊtiles
# Flutter
flutter pub get
# iOS (CocoaPods)
cd ios
pod install
cd ..open ios/Runner.xcworkspaceVer INSTRUCCIONES_VPN.md para la configuraciΓ³n completa.
flutter run- Flutter SDK ^3.7.2
- iOS 12.0 o superior
- Xcode 14 o superior
- CocoaPods instalado
- Cuenta de Apple Developer (para firmar la app y crear provisioning profiles)
- Dispositivo iOS fΓsico (no funciona en simulador)
- TunnelKitCore ~> 6.0
- TunnelKitManager ~> 6.0
- TunnelKitOpenVPN ~> 6.0
- TunnelKitOpenVPNAppExtension ~> 6.0
Los datos de conexiΓ³n estΓ‘n en ios/Runner/VPNManager.swift:
private let server = "cyberfencevpn.v4.softether.net"
private let port = "9201"
private let username = "cyberfencevpnpro"
private let password = "md4rshywX2YUDXCoanxghYF4ryvWPN"Los certificados y TLS keys estΓ‘n en ios/Runner/VPNConfiguration.swift.
- Network Extensions (Packet Tunnel)
- App Groups:
group.com.perez.CyberFence - Keychain Sharing
- App Groups:
group.com.perez.CyberFence - Keychain Sharing
- App principal:
com.example.cyberFence.tunnelkit_flutter - Network Extension:
com.example.cyberFence.tunnelkit-flutter.TunnelExtension
Estos deben estar configurados en Apple Developer Portal con las capabilities necesarias.
- INSTRUCCIONES_VPN.md - GuΓa completa de configuraciΓ³n paso a paso
- COMANDOS_RAPIDOS.md - Comandos ΓΊtiles para desarrollo
cd ios
pod install- Configura tu Team en Xcode (Signing & Capabilities)
- Verifica los provisioning profiles en Apple Developer
- Acepta los permisos de VPN cuando iOS los solicite
- Ve a ConfiguraciΓ³n β General β VPN para verificar
flutter build iosflutter run -vflutter clean
cd ios
pod install
cd ..
flutter runProyecto privado - CyberFence
Adaptado de CyberFence-Original para Flutter