Настройка прокси с использованием CFNetwork работает в симуляторе, а не на устройстве

#iphone #xamarin.ios #xamarin #cfnetwork

#iPhone #xamarin.ios #xamarin #cfnetwork

Вопрос:

Я использую следующий код Xamarin.iOS для настройки прокси.

 var configuration = NSUrlSessionConfiguration.DefaultSessionConfiguration;
System.IntPtr myHandle = Dlfcn.dlopen("/CFNetwork.framework/CFNetwork", 0);
var keyHost = Dlfcn.GetStringConstant(myHandle, "kCFStreamPropertyHTTPProxyHost");
var keyPort = Dlfcn.GetStringConstant(myHandle, "kCFStreamPropertyHTTPProxyPort");
Dlfcn.dlclose(myHandle);
NSDictionary proxyDict = new NSDictionary(keyHost, "<my-host-value>", keyPort, "<my-port-value>");
configuration.ConnectionProxyDictionary = proxyDict;
  

Он работает в симуляторе, но не на устройстве (iPhone и iPad). Как решить эту проблему?

Ответ №1:

После долгих исследований я думаю, что нашел решение. Путь к динамической библиотеке (первый параметр в Dlfcn.dlopen) должен быть:

«/System/Library/Frameworks/CFNetwork.framework/CFNetwork»

или вы можете использовать константы класса:

Константы.CFNetworkLibrary