Xcode 11: не удалось создать экземпляр изображения из каталога активов (файл .car) в пользовательском пакете на iOS 13 - PullRequest
3 голосов
/ 17 октября 2019

Наше приложение для iOS имеет собственный пакет с каталогом ресурсов (файл .car). Это была установка начиная с iOS 9. Извлечение ресурсов изображения и их использование до сих пор не было проблемой с iOS 13 на Xcode 11 (не уверен, работает ли он, когда приложение собрано с xcode 10 и работает на iOS 13).

Вот как пакет используется в приложении: screenshot

Пакет выбирается с помощью этого кода:

let bundlePath = Bundle.main.path(forResource: "TheResource", ofType: "bundle")!var bundle = Bundle(path: bundlePath)

Теперь, когда я печатаю эту переменную bundle, я получаю следующее:

(lldb) po bundle
▿ Optional<NSBundle>
  - some : NSBundle </Users/xyz/Library/Developer/CoreSimulator/Devices/SE8C7E9D-76AF-4564-B21B-78DC990F3D2E/data/Containers/Bundle/Application/PD422A04-B4C8-42F0-A5CB-9465AC70D3A2/abc.app/TheResource.bundle> (not yet loaded)
(lldb) po bundle.loadAndReturnError()
Error Domain=NSCocoaErrorDomain Code=4 "The bundle “TheResource” couldn’t be loaded because its executable couldn’t be located." UserInfo={NSLocalizedFailureReason=The bundle’s executable couldn’t be located., NSLocalizedRecoverySuggestion=Try reinstalling the bundle., NSBundlePath=/Users/xyz/Library/Developer/CoreSimulator/Devices/SE8C7E9D-76AF-4564-B21B-78DC990F3D2E/data/Containers/Bundle/Application/PD422A04-B4C8-42F0-A5CB-9465AC70D3A2/abc.app/TheResource.bundle, NSLocalizedDescription=The bundle “TheResource” couldn’t be loaded because its executable couldn’t be located.}

Это ответ, который я получаю как на устройстве iOS 12, так и на iOS13 устройство. Но ресурсы нормально работают на iOS 12.

Я пробовал следующие вещи безрезультатно:1. Поскольку существует проблема с Xcode 11, генерирующим несколько путей, генерирующих одну и ту же ошибку файла, я переименовал каталог активов .car из Assets.car в нечто более описательное. 2. вызвал .load () для переменной bundle, чтобы попытаться загрузить его, так как он постоянно говорил, что не загружен. 3. Попытался загрузить изображения с расширением, также попытался добавить некоторые черты и использовать метод UIImage(named: <name>, in: <bundle>, compatibleWith: <traits>).

Нашел этот вопрос на яблочном форуме , но это немного отличается от поведения, которое я вижу.

Понятия не имею, почему ресурсы загружаются нормально, когда приложение построено с Xcode 11 и работает на iOS 12, но не загружаются при запуске на устройствах / симуляторах iOS 13.

Любая помощь будетбыть оцененным, я ошеломлен этой проблемой. Спасибо!

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