Проблема с использованием ресурсов по требованию через Xamarin. iOS на iOS симуляторе - PullRequest
3 голосов
/ 23 января 2020

Я столкнулся с проблемой, когда не могу получить доступ к ресурсам, помеченным для использования в функции ресурсов Apple по требованию, через приложение Xamarin. iOS, но только при запуске на симуляторе. Это произошло только после обновления моей среды. Ранее я работал в Visual Studio для Ma c версии 8.3.9 и Xcode версии 11.2.1, и мое приложение могло без проблем получать доступ к ресурсам ODR как на симуляторе, так и на физическом устройстве.

Теперь я нахожусь на Visual Studio версии 8.4.2 и Xcode версии 11.3.1, и мое приложение работает неправильно. Тем не менее, я вижу только проблемы при работе на iOS симуляторе (для любой версии iOS). Я могу собрать и запустить на физическом устройстве (под управлением iOS версия 13.0) и не вижу проблем.

Я создаю и отмечаю актив для использования в Apple ODR через Visual Studio для Ma c. У меня есть ZIP-файл, который я добавляю в проект iOS моего приложения непосредственно в качестве ресурса. В его свойствах я устанавливаю BuildAction как BundleResource, выбираю «Не копировать» в выходной каталог и присваиваю ему тег ресурса по требованию.

Когда я создаю свое решение, я вижу этот ZIP-файл, вложенный в каталог * .assetpack в bin/iPhone/Debug/device-builds/iphone12.3-13.0/OnDemandResources. Я полагаю, что вместо этого должно быть указано bin/iPhone/Debug/OnDemandResources/. Когда я запускаю код, который вызывает NSBundleResourceRequest s BeginAccessingResourcesAsync, он, похоже, ничего не делает. Я вижу следующее сообщение об ошибке в окне отладки Application Output в VS после вызова этой функции:

Begin: Request 0x0x600002566100 response: Error: Error Domain=NSCocoaErrorDomain Code=4994 "The requested application data doesn’t exist." UserInfo={NSLocalizedFailureReason=InvalidTag}

Нет других ошибок или исключений. Когда я пытаюсь получить путь к ресурсу от объекта NSBundleResourceRequest.Bundle, он, как ожидается, возвращает ноль.

Есть ли причины, по которым это происходит, и почему это происходит только на симуляторе iOS, а не на физическом устройстве? Я не смог найти ничего полезного при поиске вышеуказанного сообщения об ошибке. Что-то изменилось в Visual Studio относительно того, как встроенные ресурсы создаются в режиме отладки?

1 Ответ

0 голосов
/ 03 апреля 2020

Не совсем ответ, но скорее обходной путь. Использование VS версии 8.3.9 для Ma c, похоже, не выдает эту ошибку, поэтому я вернулся к этой версии

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...