SignalR 2.x не работает с новейшими версиями iOS (ошибка Il2CPP) - PullRequest
0 голосов
/ 05 сентября 2018

друг и я создали игру с использованием Unity3D, мы используем библиотеку SignalR для связи между сервером и клиентом. Он хорошо работает на ПК, Android и MAC, но не на iOS. В ходе нашего исследования мы пришли к выводу, что SignalR имеет зависимость Newtonsoft.Json, которая использует System.Reflection.Emit, которая не поддерживается в IL2CPP, потому что она генерирует код на лету.

Xcode создает приложение и открывает его, но все, что связано с взаимодействием между сервером и клиентом, не работает и возвращает тот же тип ошибки. В скриптовых опциях серверной части Unity3D вы можете изменить опции на Mono, которые поддерживают генерацию кода на лету, но не больше, потому что Mono не поддерживается в iOS 11 или выше.

Кто-нибудь знает, как это можно исправить или избежать, все еще используя SignalR в качестве решения сервер / клиент?

Мы попытались протестировать это даже на самом простом примере (подключение к серверу через клиента), и он вернул ошибку, из-за которой генерация кода во время выполнения не поддерживается.

Это простой пример кода, который не будет работать:

ServerConnection = "insert_your_server_name_here";
connection = new HubConnection(ServerConnection, true);
proxy = connection.CreateHubProxy("name_of_proxy");
connection.Start().Wait();

Это возвращает ошибку с:

    /Users/builduser/buildslave/unity/build/Tools/il2cpp/il2cpp/libil2cpp/icalls/mscorlib/System.Reflection.Emit/DynamicMethod.cpp(20) : Unsupported internal call for IL2CPP:DynamicMethod::create_dynamic_method - System.Reflection.Emit is not supported.
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...