diff --git a/client/internal/connect.go b/client/internal/connect.go index eb84940dce1..83909dfdd3a 100644 --- a/client/internal/connect.go +++ b/client/internal/connect.go @@ -91,6 +91,9 @@ func (c *ConnectClient) RunOniOS( networkChangeListener listener.NetworkChangeListener, dnsManager dns.IosDnsManager, ) error { + // Set GC percent to 5% to reduce memory usage as iOS only allows 50MB of memory for the extension. + debug.SetGCPercent(5) + mobileDependency := MobileDependency{ FileDescriptor: fileDescriptor, NetworkChangeListener: networkChangeListener, diff --git a/client/internal/peer/conn.go b/client/internal/peer/conn.go index 1ee8cdd79dd..3c4cfb13a27 100644 --- a/client/internal/peer/conn.go +++ b/client/internal/peer/conn.go @@ -487,6 +487,10 @@ func (conn *Conn) configureConnection(remoteConn net.Conn, remoteWgPort int, rem return nil, err } + if runtime.GOOS == "ios" { + runtime.GC() + } + if conn.onConnected != nil { conn.onConnected(conn.config.Key, remoteRosenpassPubKey, ipNet.IP.String(), remoteRosenpassAddr) }