无法加载设备上运行的捆绑软件中从nib引用的映像

SplitView[1290:307] Could not load the "canary04.png" image referenced from a nib in the bundle with identifier "xx.co.mycompany.ipad.SplitView" 

我只在设备上运行时出现错误。 在模拟器中运行没有问题。

我正在使用UIImageView在界面生成器中直接使用图像。

编辑:我已经添加了一个不同的新图像到不同的笔尖,这没有任何问题。

有人有主意吗?

iOS设备上的文件系统区分大小写,所以很可能是个案例。 (Mac OS X通常不区分大小写,因此您在模拟器中没有看到这个问题。)

因此,请检查您是否在代码中使用与文件名本身相同的大小写。

它可能不会被添加到您的目标和XCode 4中,你可以这样做:

  • 在您的项目视图中,单击您的项目名称
  • select您的目标并select“构build阶段”选项卡
  • 拖动您的图像文件到您的“复制束资源”部分

这为我修好了。

XCode(蓝色文件夹)中的引用文件夹中有图像吗? 如果是这样,你必须在图像path中包含文件夹名称,如“Images / canary04.png”

简单的方法

1只需在命令shell中执行grep来查找引用图像的string:

 grep -R 'canary04.png' YourMainDirectoryFolder/* 

2它会给你(例如)这样的输出:

 YourProject/en.lproj/YourViewController.xib: <textField borderStyle="roundedRect" background="canary04.png" id="19"> 

3你现在知道哪个nib文件和它是哪个元素。 只要进入文件并删除参考。

  1. 删除图像所在的蓝色文件夹。
  2. 再次导入并select“如果需要复制项目”。
  3. select“创build组”NOT文件夹

将图像保存为PNG-24。 这个对我有用

你可以做到这一点从你的故事板,或笔尖检查它。 打开它作为源代码:

在这里输入图像说明

然后“查找”其中的图像名称,看看它是否存在,但在您的项目已经无效,可能你已经删除或改变了它的名字,现在它似乎并不有效。

在这里输入图像说明

你把文件包含在目标中了吗? 右键单击Xco​​de中的Target,selectGet Info,然后select顶部的“Targets”组。 确保您的预定目标(S)被选中。

祝你好运。

编辑:上面的文本应该已经阅读右键单击Xcocde中文件(canary04.png) ,然后select获取信息…

对不起,错字。

当我升级到Xcode 4.4.1时,我遇到了这个问题。 我发现尽pipe我已经删除了故事板中的图像(和相应的button等),但在故事板文件中仍然提到了它们(在tabBarItems字段中)。 我手动评论他们(),产品 – >清洁,我没有得到任何错误。

我知道故事板中必须存在虚假引用,因为我以前删除了TabBar,而且当前的应用程序没有问题,只是在控制台中使用恼人的消息。

我遇到过同样的问题。 尝试

  • 清洁
  • build立和运行

它与我合作

在我的情况下,这是因为Photoshop没有正确保存我的文件。 在文件保存对话框中,我点击myfile.png试图覆盖该文件,并以png格式保存文件。

在点击我想覆盖的文件之前,我必须确保将文件格式实际更改为PNG,从而保存在实际的png文件中,从而可以被iOS读取。 有趣的是,界面生成器显示我的psd-as-png文件就好了。

更一般地说,确保你的文件实际上是你认为是这样的格式,因此iOS是期待的。

解决scheme1:

在我的情况下,我已经复制了包含图像的文件夹,甚至选中“目的地:如果需要复制项目” 。 但是它没有被添加到“Build Phase”的“Copy Bundle Resources”中。

您可以添加图像如下:

  1. select目标
  2. select“构build阶段”选项卡
  3. select“复制包资源
  4. 点击下面的“+” (加号)button
  5. find图像并添加它

解决方案1的屏幕截图

解决scheme2:

通过select“移至颠簸”来删除图像 。 再次添加您的项目中的图像与“目标:复制项目,如果需要”选中。

 Note : Make sure that you add images in Assets.xcassets folder and not outside it. 

我也得到这个错误。 我将描述我的场景:

我有一个子目录“IMG”,其中有一些PNG的。
其中一个PNG是“ic_timeprogress_000.png”

在故事板(视觉devise师)我有一个imageView和图像被设置为“ic_timeprogress_000.png”(不编程)。 devise师正确地显示了imageView:

imageView在子目录中

虽然在运行应用程序时,错误被抛出。

所以在故事板中,我从“ic_timeprogress_000.png”更改为“img / ic_timeprogress_000.png”,导致在devise器中无法正确显示图像,但在运行时正确显示(无错误)

imageView在子目录中

虽然我以编程方式改变imageView.image ,所以这个“初始图像”从来没有使用过。

检查以确保canary04.png存在于您的项目中,并且不会被删除。

我的问题是,我把图像保存为.jpg,并将名称更改为.png(仍然是jpg格式)。 它与模拟器一起工作

检查你的图像名称。 如果它包含一些空格,则图像将在模拟器中运行,但不会在设备中显示。 运行时检查大小写敏感的名称等

我在iOS 8中遇到了一个不同的问题。在我的情况下,问题是我select了设备特定的图像集,然后select了iPad。 将其更改回Universal解决了问题。

可以在images.xcassets文件中find此设置,在第三列中显示图像集的属性检查器。

在这种情况下,即使将图像添加到images.xcassets,图像也不会显示在故事板或NIB文件中。 他们也不会显示在模拟器或设备。

当我尝试在Interface Builder(.xib)文件中设置imageView的图像时,我遇到了这个问题。

(我正在使用图像资产)

使用theImage.jpegtheImage@2x.jpg我有2个图像theImage.jpeg Builder可以在编译时使用这些jpg / jpeg格式显示真实图像。 但是我在运行时遇到这个错误:

 Could not load the "theImage" image referenced from a nib in the bundle with identifier "org.etc.etc" 

然后我改变我的图像文件格式为.png ,它的工作!

如果您尝试设置的图片的格式不同,请尝试使用此解决scheme。

我也遇到了jpeg文件无法成功加载的问题,但是我解决了这个问题,而没有将它们改为png格式:例如,如果你有一个名为“bg.jpg”的图像,不要在故事板中使用“bg”名称列在下拉select列表中),而应该在名称字段中明确写入“bg.jpg”

对于编程基础的图像视图,我想使用.jpg扩展像[UIImage imageNamed:@"xx.jpg"]也应该工作(虽然我没有testing虽然)。

尝试清理项目并确保info.plist与xx.co.mycompany.ipad.SplitView匹配

检查图像名称。 然后检查是否可以在paint或photoshop中打开图像。 如果图像是在Photoshop中创build的,有时会出现与.png有冲突的情况

我有同样的问题,如果您的图像是在子文件夹,您需要select“创build组子文件夹”选项,当您复制资源。

我有这个Xcode 5的问题,看起来“组合高分辨率的艺术品”是罪魁祸首。 我打开了应用程序包,所有图像都是* .tiff,导致图像“找不到”:S

修正

打开项目设置,并在顶部search“组合”。 将该设置更改为NO。

在这里输入图像说明

出于某种原因,每个人都错过了这个重要的修复。

在我的情况下,所有图像显示在> iOS 7,但不是与iOS 6.1的设备罚款。 解决scheme是,iOS7是区分大小写,但iOS 6.1不适合我。 我有名为“myImageName”的图像,并命名为“myimagename”女巫导致我的旧iPhone 3无法显示这些图像。
所以重命名他们解决了它。

尝试每一个答案在这里,没有什么,所以这里是另一个小故障,你的图标名称不能有点(。),因为如果它(和Xcode允许你这样做),而故事板中的图标显示,他们将不会加载无论是在模拟器或设备。

也许在设置button的图像之后,您更改了图像的名称。

2015 – 仍然有这个问题。 我正在引用一个不再存在于一个标签button中的图像。

解决scheme:只需检查所有button,UIImage等,并确保您所引用的图像实际上存在于您的项目中。

当我不小心将另一个图像集添加到资源目录文件时,我遇到了这个问题。 我意识到错误后重新命名了它,但似乎并不奏效。

删除文件并再次添加解决了这个问题。

什么对我来说是确保文件的所有者在界面生成器有一个“查看”sockets。

从IB中,从“占位符”中select文件的所有者,然后在“连接检查器”中确保视图sockets连接到当前XIB的主视图。

发生这种情况是因为我在某个时候删除了主视图,忘记重新连接我的新视图。

希望它可以帮助别人。

就我而言,问题是图像格式。 他们是'JPG'文件,而Xcode期待'PNG'文件。 更改文件格式解决了问题。