Чтобы иметь возможность снова отправить в магазин приложений (для опубликованной игры), нам нужно было сделать что-то для 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 является обязательным для нас. Благодарим вас за помощь.
Я не думаю, что это невыполненный код в IL2CPP, но это действительно может быть ошибкой на стороне Unity. –
@JoshPeterson Приятно слышать от инженера Unity. Сообщение, которое вы сделали, показывает, что это может быть проблема с вскрытием. Я помню, что у меня была аналогичная проблема несколько лет назад, когда я попытался использовать стандартный класс почтовых сообщений класса C# для отправки электронной почты. Если это окажется проблемой, почему Unity не обнаруживает импортированные пространства имен и не использует стандартные классы/API из каждого сценария, а затем автоматически удаляет листинг, который мешает этому работать? Это сэкономит столько времени для программистов. Если это окажется проблемой для вскрытия, в скором времени будет много лишних отчетов об ошибках. – Programmer
Я думаю, что проблема с классом почты была исправлена, на самом деле. Мы пытаемся исправить любые проблемы с удалением, связанные с библиотеками классов или кодом UnityEngine, поэтому, если это окажется проблемой, мы попытаемся исправить это. –