@eskimo, we submitted an issue to the feedback assistant with number FB9872194. In general lines, we think that for the most products an alternative to the full user agent could be use the application brand or name inside the user-agent or provide another header field, removing from it the version, the device or another kind of information, that, could be consider a potential risk for the user. In any case, in my opinion, this change affects a large number of companies and should have been done progressively with prior advice.
Thanks for your support @eskimo & @meaton
Post
Replies
Boosts
Views
Activity
Hey @Claude31, That's correct with these pice of code you can access to your app settings, but in that case to install a .mobileconfig you need to go to settings app because is something related with system not with your app.
The use of
guard let settingsUrl = URL(string: "App-Prefs:") else {
return
}
if UIApplication.shared.canOpenURL(settingsUrl) {
UIApplication.shared.open(settingsUrl, completionHandler: nil)
}
opens settings, and your code open settings and navigate to your app.
@matt, thanks for the support :)
The configuration for packet tunnel is that:
protocolConfiguration
type = plugin
identifier = 7FCF645B-4707-42AE-BFB9-76903115D4F5
serverAddress = x.x.x.x:PORT // This is IP:PORT FORMAT
identityDataImported = NO
disconnectOnSleep = NO
disconnectOnIdle = NO
disconnectOnIdleTimeout = 0
disconnectOnWake = NO
disconnectOnWakeTimeout = 0
includeAllNetworks = NO
excludeLocalNetworks = YES
enforceRoutes = NO
pluginType = bundleIdentifier of the app that contains the extension
authenticationMethod = 0
reassertTimeout = 0
And the code of the start tunnel
override func startTunnel(options: [String : NSObject]?, completionHandler: @escaping (Error?) -> Void) {
let newTunnel = ClientTunnel()
newTunnel.delegate = self
if let error = newTunnel.startTunnel(self) {
completionHandler(error as NSError)
} else {
// Save the completion handler for when the tunnel is fully established.
pendingStartCompletion = completionHandler
tunnel = newTunnel
}
}
And the VPNStatus is .connected
My ClientTunnelConnection receive packets.
The connection to tunnel seems to be ok:
parameters = {
processUUID = A22C0610-214E-3C0F-9ABB-DDEB02351D12
effectiveProcessUUID = A22C0610-214E-3C0F-9ABB-DDEB02351D12
pid = 1153
uid = 501
protocolTransforms = (
)
ipProtocol = 6
}
endpoint = { IP:PORT // Owned by server
}
}
:(.
Why there's no simple tunnel example of Apple updated to the latest version of Xcode and Swift?
@yijiexu did you resolve it? I'm facing with the same problem.
If my NEIPv4Settings points to my local server that it's reading on 127.0.0.1, and NEIPv4Route contains 127.0.0.1 + default & my tunnel remote is the same, I cannot read packets from the flow.
@meaton If I need to send my packets to my local device server, that acts as proxy and then reflow them to internet, which is the best approach with this settings?
My proxy server must to redirect packets to internet or the O.S do it by itself?
Thanks