Unity ios, использующий https, не может сделать выноску отдыха

Я могу сделать выноску https без проблем на android и редакторе единства, но он не работает на ios. Обратите внимание, что URL-адрес использует HTTPS, а не HTTP. При попытке подключения к xcode я получаю следующую ошибку.

You are using download over http. Currently Unity adds 
NSAllowsArbitraryLoads to Info.plist to simplify transition, but it will be 
removed soon. Please consider updating to https.
NSURLConnection finished with error - code -1002

Из того, что я прочитал, похоже, что список необходимо отредактировать, чтобы разрешить это соединение, но я не уверен, как это сделать. Мой код редактирования списка в настоящее время выглядит так:

[PostProcessBuild]
static void OnPostprocessBuild(BuildTarget buildTarget, string path)
{
    // Read plist
    var plistPath = Path.Combine(path, "Info.plist");
    var plist = new PlistDocument();
    plist.ReadFromFile(plistPath);

    // Update value
    PlistElementDict rootDict = plist.root;
     rootDict.SetString("NSPhotoLibraryAddUsageDescription", "Used for saving high score screenshots");
    rootDict.SetBoolean("NSIncludesSubdomains", true);
    rootDict.SetBoolean("NSTemporaryExceptionAllowsInsecureHTTPLoads", true);
    rootDict.SetString("NSTemporaryExceptionMinimumTLSVersion", "TLSv1.1");

    // Write plist
    File.WriteAllText(plistPath, plist.WriteToString());
}

Верхний ответ на Как я могу добавить NSAppTransportSecurity в мой файл info.plist? дает решение для редактирования списка, но я не уверен, правильно ли я делаю это через единство. Я также попытался вручную отредактировать список в xcode, но он все еще не работал. Я также не уверен, что это вообще проблема, поэтому любые другие предложения будут оценены.

Обновлено: использование xcode версии 9.4 и версии Unity 2018.1.2f1 Personal. код для выноски (одна из них) приведен ниже:

IEnumerator getHighscores() {
    loadingObject.SetActive(true);
    string username = GameManager.loggedInUser;
    using (UnityWebRequest request = UnityWebRequest.Get(Constants.uriBase + "/scores?username = " + username + "&apiKey = " + Constants.apiKey)) {
        yield return request.SendWebRequest();
        loadingObject.SetActive(false);
        if (request.isNetworkError) {
            ErrorMessage.text = "Unable to connect"; //THIS IS THE OUTCOME OF THE IOS CALLOUT
            ErrorMessage.enabled = true;
        } else if ( request.isHttpError) {
            if (request.responseCode == 406) {
                string modifiedResponse = request.downloadHandler.text.Replace("\"", "");
                ErrorMessage.text = modifiedResponse;
                ErrorMessage.enabled = true;
            } else {
                ErrorMessage.text = "Unknown Error";
                ErrorMessage.enabled = true;
            }
        } else {
            ErrorMessage.enabled = false;
            string jsonResponse = request.downloadHandler.text;
            //process successful response here
        }
    }
}

Я добавил код для одной из выноски. их много, но я тестировал именно этот. Также добавлены версия Unity и версия xcode. Этот код отлично работает в android. Константы.URIBase - это базовый домен, который похож на api.game1.mydomain.net.

user3648673 31.05.2018 23:03

Я разобрался в этой проблеме. Проблема заключалась в том, что в строке apiKey был знак%, и iOS явно не справлялась с этим, но все остальное может. Это был потраченный впустую день. Единственная другая проблема, с которой я столкнулся, - это то, что реклама Unity больше не работает на iOS. Есть догадки, почему?

user3648673 01.06.2018 19:20

Думаю, я тоже это понял. Похоже, что Unity сменила проект на другой. Не уверен, почему, но я буду разбираться в этом.

user3648673 01.06.2018 20:49
Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Приемы CSS-макетирования - floats и Flexbox
Приемы CSS-макетирования - floats и Flexbox
Здравствуйте, друзья-студенты! Готовы совершенствовать свои навыки веб-дизайна? Сегодня в нашем путешествии мы рассмотрим приемы CSS-верстки - в...
Тестирование функциональных ngrx-эффектов в Angular 16 с помощью Jest
В системе управления состояниями ngrx, совместимой с Angular 16, появились функциональные эффекты. Это здорово и делает код определенно легче для...
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
0
3
382
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Я понял это. Проблема заключалась в том, что URL-адрес содержал знак%, и iOS, по-видимому, не может с этим справиться.

Другие вопросы по теме