2016-06-09 5 views
0

Чтобы иметь возможность снова отправить в магазин приложений (для опубликованной игры), нам нужно было сделать что-то для IPv6. Итак, мы обновили Unity до версии 5.3.5p2 (доступна последняя исправленная версия)Unity iOS IPv6 - IL2CPP UnityEngine.Experimental.Networking crash

Мы прошли переработку всех наших сетевых интерфейсов (мы использовали классические HTTP-запросы для серверных компромиссов и соединений сокетов для загрузки ресурсов), мы поменяли местами все с UnityWebRequest, DownloadHandler и UploadHandler от UnityEngine.Experimental.Networking

Все отлично работает в редакторе и Android, но для iOS это просто ... сбой.

Мы используем: Unity 5.3.5p2 Xcode 7.2 и iPad2 с прошивкой 9.3.2 параметры сборки: IL2CPP Универсальная архитектура (мин IOS 7,1) Уровень API .NET 2.0 Strip код двигателя установлен в положение OFF опция АОТА-компилирование значения: мятный-батут 512 (мы использовали это для моно сценариев бэкэнда) на Xcode: битового код отключен уровень оптимизации установлен (для выпуска и отладки): нет [-O0] Здесь не ошибка, которую мы получаем на консоли при игре:

Не удалось найти метод GetProgress в [UnityEngine.dll] UnityEngine.Experimental.Networking.DownloadHandler . . Невозможно найти метод ReceiveContentLength в [UnityEngine.dll] UnityEngine.Experimental.Networking.DownloadHandler . . [название проекта] составлено с оптимизацией - степпинг может вести себя странно; переменные могут быть недоступны.

(мы очень просто реализовали DownloadHandlerScript с управляемым статическим буфером)

Когда мы строим с моно, как скриптовые Серверными вещи работают отлично. Но IL2CPP является обязательным для нас. Благодарим вас за помощь.

ответ

0

Когда мы строим с моно в качестве скриптинга, все работает нормально. Но IL2CPP является обязательным для нас.

Весьма вероятно, что функция вы звоните из UnityWebRequest еще не реализована в стороне IL2CPP или что это простая ошибка.

Обратите внимание, что вы используете UnityWebRequest от UnityEngine.Experimental пространства имен, которое явно является экспериментальной версией UnityWebRequest, которая еще не созрела. Вам нужно загрузить последнюю версию Unity, которая является Unity 5.4. В 5.4, UnityWebRequest перемещается в пространство имен UnityEngine.Networking, и в этой новой версии исправлены ошибки. Загрузить Unity's 5.4.0b21 here.

Если это не сработает, используйте API Unity WWW вместо UnityWebRequest. Это IPv6 safe в версиях> = 5.3. Также файл для сообщения об ошибке, если UnityWebRequest не работал после обновления Unity до 5.4.

+0

Я не думаю, что это невыполненный код в IL2CPP, но это действительно может быть ошибкой на стороне Unity. –

+0

@JoshPeterson Приятно слышать от инженера Unity. Сообщение, которое вы сделали, показывает, что это может быть проблема с вскрытием. Я помню, что у меня была аналогичная проблема несколько лет назад, когда я попытался использовать стандартный класс почтовых сообщений класса C# для отправки электронной почты. Если это окажется проблемой, почему Unity не обнаруживает импортированные пространства имен и не использует стандартные классы/API из каждого сценария, а затем автоматически удаляет листинг, который мешает этому работать? Это сэкономит столько времени для программистов. Если это окажется проблемой для вскрытия, в скором времени будет много лишних отчетов об ошибках. – Programmer

+0

Я думаю, что проблема с классом почты была исправлена, на самом деле. Мы пытаемся исправить любые проблемы с удалением, связанные с библиотеками классов или кодом UnityEngine, поэтому, если это окажется проблемой, мы попытаемся исправить это. –

Смежные вопросы