swift - iOS 13 上的自定义 bundle 中的 Xcode 11 : Failed to instantiate image from asset catalog (. 汽车文件)

标签 swift assets ios13 resourcebundle xcode11

我们的 iOS 应用程序有一个自定义 bundle ,其中包含 Assets 目录(.car 文件)。 自 iOS 9 以来一直是这样的设置。直到现在,在 Xcode 11 上使用 iOS 13 时,获取图像资源并使用它们还不是问题(不确定当应用程序使用 xcode 10 构建并在 iOS 13 上运行时是否有效)。

这是在应用程序中使用 bundle 的方式: screenshot

使用以下代码获取 bundle :

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

现在,当我打印这个 var bundle = Bundle(path: bundlePath) 变量时,我得到以下结果:

(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 设备和 iOS 13 设备上收到的响应。但资源在 iOS 12 上加载良好。

我尝试了以下方法但没有成功:
1. 由于 Xcode 11 存在抛出多个路径生成相同文件错误的问题,因此我将 .car Assets 目录从 Assets.car 重命名为更具描述性的内容。
2. 在bundle变量上调用.load()来尝试加载它,因为它一直说未加载。
3.尝试加载带有扩展名的图像,还尝试添加一些特征并使用bundle方法。

找到了这个question on apple forum,但这与我看到的行为没什么不同。

不知道为什么当使用 Xcode 11 构建并在 iOS 12 上运行应用程序时,资源加载正常,但在 iOS 13 设备/模拟器上运行时却无法加载。

任何帮助将不胜感激,我对这个问题感到困惑。 谢谢!

最佳答案

您用于加载区分大小写的名称是否与 Assets 目录名称完全相同?

迁移到 Xcode 11 时遇到了这个问题,问题本质上

UIImage(名为:“fooImage”...

当目录中的实际名称是“FooImage”时。

因此,请先检查您的名称​​区分大小写...

关于swift - iOS 13 上的自定义 bundle 中的 Xcode 11 : Failed to instantiate image from asset catalog (. 汽车文件),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58426370/

相关文章:

ios - 有没有办法以编程方式将 View 从一个按钮居中到另一个按钮?

android - Android java getResource.getIdentfier 存在于 IOS Swift 中吗?

laravel - 如何在流明中执行 {{ asset ('/css/app.css' ) }} ?

ios - 应用程序在 iOS 13 上崩溃,因为从 -traitCollection 返回 nil,这是不允许的

ios - 索引超出范围(无法进入if条件)

ios - 向 Firebase 发送数据时出现错误 "InvalidFirebaseData"

swift - iOS 13 Beta - 相机捕捉以错误的方向保存照片

IOS 13 UIWindow 实例在应用程序启动期间为零

heroku - 将 CORS 与 Rails 4 和 heroku 结合使用

ruby-on-rails - Sprockets错误Sprockets::NotImplementedError:未实现自定义asset_path帮助器