在iOS应用中,启动图像(使用Images.xcassets)没有显示出来。

37

我在我的应用程序中遇到了一些启动图像无法显示的问题。

我已经在Images.xcassets文件中创建了所有静态图像文件,并将它们放在一个名为“LaunchImage”的资源集中。

我注意到我的项目还包含一个名为LaunchScreen.xib的文件(由Xcode自动生成)。

当我在iPhone6设备上运行应用程序时,这个.xib文件会出现。在iPhone4s模拟器中它没有出现(因为xib启动屏幕仅适用于iOS 8+)。

我想使用我已经创建的静态图像,因为它们符合苹果的指南并且与我的应用程序相匹配。但是,我还没有成功让它显示出来。

我注意到在项目设置下有一个名为App Icons and Launch Images的部分。我看到.xib是如何通过启动屏幕文件选项连接的。

然而,还有一个名为Launch Image Sources的选项。这是做什么用的?

我找到了这篇文章:http://matthewpalmer.net/blog/2014/09/10/iphone-6-plus-launch-image-adaptive-mode/。但它没有解释关于启动图像来源选项的任何内容。

Launch Image Sources旁边有一个名为“Use Asset Catalog”的按钮。当我点击它时,它只说把启动图像迁移到资源目录中。将现有的启动图像复制到一个新的图像集中。选择要使用的资源目录: 。

这让我感到困惑,因为我已经创建了我的资源目录,我绝对不想覆盖images.xcassets文件。那么,如何将其链接到我已经创建的Launch Images Asset Set呢?另外,“现有的启动图像”指的是哪些图像将被复制到新的图像集中?

谢谢!

更新1

所以,我尝试了迁移图像选项,并选择了新的设置选项。这导致创建了一个新的图像集,我将其删除。然而,在启动图像源中留下的名称设置为LaunchImage,它与包含我的启动图像的图像集连接在一起。它确实搞乱了我的LaunchImage集-- 图像设置为未分配。我将它们删除并将文件拖到LaunchImage资产集中的适当框中。然而,当我运行应用程序时,启动图像仍然没有出现。=( 启动图像没有显示。

我甚至删除了 Launch Screen File 中的信息(我假设这是连接到.xib文件的设置)。但是,某种方式,.xib文件出现在我的iPhone6设备上。=( 有什么想法是怎么回事吗?

15个回答

57

我曾经遇到过这个问题。我在模拟器上进行了测试,将“启动屏幕文件”留空,并从plist中移除了关于“启动屏幕文件”的行。我重新启动了 Xcode,但仍然没有效果。在我的情况下,启动画面不是黑色,而是白色。Xcode 7 目标 iOS 9。

我也看过这篇文章:Launch Image does not show up in my iOS App

只有当我从模拟器中删除应用程序并再次运行应用程序时,启动图像才出现。


4
对于真实设备,还需要重新启动设备。 - iluvatar_GR
@iluvatar_GR 我在 Xamarin.iOS 上也遇到了同样的问题。您的答案帮助我解决了问题! - Vipin Krishna

51

我终于搞明白了!

因此,在您的项目设置中,进入名为:App Icons and Launch Images 的部分。

如果不想使用.xib文件,请删除Launch Screen File中的信息。

然后,在Launch Image Source中,选择迁移,并且如果您已经创建了LaunchImage文件并向其中添加了图像,则单击显示的资源目录。包含您的启动映像的那个。

这将在您的图像集中创建一个新的Launch-Image2。要使用您已经创建的那个,请单击Launch Image Source旁边的下拉菜单。您应该会看到其他启动图像集,请选择它。然后重新构建应用程序并运行它。您应该会看到您的启动图像。 =)

希望这有所帮助!

注意:它不会删除您已经在资源目录中拥有的图像。它只会创建一个新的LaunchImage资源集。

参考:https://developer.apple.com/library/ios/recipes/xcode_help-image_catalog-1.0/chapters/StoringAppIconsandLaunchImagesinanAssetCatalog.html


我似乎无法摆脱“Powered by React Native”的标识,即使我已经删除了启动屏幕文件中的信息,使其为空并且不显示.xib文件。它仍然似乎在使用它。如果我删除它,构建将失败并说找不到.xib文件。我在这里做错了什么? - Chipe
@Chipe 我在项目中保留了.xib文件,只是没有使用它。在我的构建设置中也没有配置使用它。你是否移除了连接它的“Launch Screen File”设置? - Sandy D.
完成以上更改后,如果您仍然没有看到更改(启动屏幕),请尝试重新安装应用程序,这将起作用。 - Sagar Daundkar

33

这太 重要 了!

应该是 空的启动屏文件

在此输入图片描述


1
此外,还要清理和重建项目,并删除并重新安装应用程序到设备上。首先我尝试只在这里放置一个空字符串,但它还没有起作用。 - kynnysmatto
在这个页面上,您可以选择启动屏幕故事板,或者选择创建您的启动屏幕Xib文件。 - Srinivasan_iOS

15

解决方案。省时又方便。希望它也能为你节省时间。

  • 确保您的图片大小符合Apple指南要求。
  • 请确保您只选择一个选项,即启动屏幕文件或启动图像源。您可以在项目构建设置->常规中找到这两个选项。

清理并构建。

推荐的解决方案步骤:

  1. 在Image.assests文件夹中创建闪屏图片资源(命名为LaunchImage)。
  2. 启动图像源选项中选择LaunchImage资源。
  3. 并清除启动屏幕文件选项中的文本。
  4. 清理并构建。
  5. 以下是正确配置的参考图像:

输入图片描述


2
确保在删除启动屏文件后进行清理构建,主要是重置模拟器。 - shyla
2
@shyla 这就是关键!重置模拟器并进行清理,简单删除应用程序不会有任何区别。谢谢。 - DD_
从目标>常规中删除“启动屏幕文件名”将从info.plist中删除条目“启动屏幕界面文件基本名称”,因此这将是一个技巧。 - Neeraj Joshi
我尝试了类似的东西,但它没有起作用:https://dev59.com/IqDia4cB1Zd3GeqPFY3r 有什么想法吗?非常感谢。 - Kartick Vaddadi
@VaddadiKartick 重置你的模拟器并再试一次。最好能够检查它是否在真实设备上运行正常。 - iDevAmit
问题:
  1. 为什么我的Xcode(12.4)中没有“启动图像源”下拉菜单?
  2. “启动屏幕文件”没有下拉选项。这正常吗?
- Sem

2

经过几个小时不清楚的回答后:
1)在xCode的设置应用程序中的“常规”部分中进行设置。
2)向下滚动到“应用程序图标和启动图像”部分。
3)清除启动屏幕文件(只需将其留空)。
4)将启动图像源设置为LaunchImage(请记得在Assets.xcassets中创建它们)。
现在,应用程序将使用您在LaunchImage中设置的图像。

原始答案:最初的回答


2
我在XCode 9.4.1中遇到了这个问题,后来发现是由于资源文件夹未包含在Bundle Resources中所致。 选择项目,然后选择你的目标。进入“Build Phases”,打开“Copy Bundle Resources”。如果你想使用的.xcassets组未列出,则只需从文件浏览器中拖入即可。 对我很有用...

1
今天遇到了类似的问题。试图让xCode自动创建Asset,但它总是未指派。
解决方法是在ImageAsset中手动创建Launch Image,并为其各自的分辨率分配文件。
看起来xCode创建了不同类型的Launch Image资产,因此无法识别资产(v8.3.2) 。

1
问题已解决! 我尝试了很多方法。问题是启动图在模拟器中显示,但在真实设备上没有显示。我有一个带UIImageView的Storyboard。奇怪的是旧图片可以工作,而我最近添加的图片却不能。起初我以为这是资产的问题。不是。然后我检查了颜色配置文件,并尝试了许多具有不同配置文件的尝试:左边是有效的图像,右边是无效的图像。都没有帮助。
enter image description here

然后我开始谷歌并找到了this线程。

主要解决方案如下:

1)对我没有帮助。

使用预览应用程序更改我的启动图像属性:[工具-->分配配置文件...-->ColorSync配置文件:<>]

2)有帮助

即使从XCode中删除应用并重新安装也不起作用。但是更改捆绑标识符有效。在没有其他更改的情况下,现有的捆绑标识符显示没有图像,但新的捆绑标识符正确显示它们所有。我正在使用这个临时解决方法,因为本线程中的先前帖子建议通过TestFlight安装构建不会遇到问题。
我做了三件事(前两件单独做没有用,但可能有助于第三件,第三件起作用) 1)将所有图像复制到根目录(与xcode放置图像的位置相同) 2)在Images.xcassets中创建一个文件夹,并把图像放在里面。 3)launchScreen.xib中的图像最初被称为imageName.png。将其更改为仅imageName(删除文件扩展名)。
在第三件事之后,图像出现了。我不知道前两个步骤是否需要,但希望能帮助某些人。
有所帮助但过时和粗鲁。
将图片从资源目录中移除对我来说解决了这个问题。我只是以旧的方式向项目中添加了用于启动屏幕的@1x,@2x和@3x图像,看起来工作正常。现在正在通过TestFlight确认它,但iTunes Connect此时没有响应。
我认为这是一个iPhone缓存问题。因此,您不需要警告,因为当使用TestFlight安装时,图像将显示。得出这个结论后,我接下来做了以下操作,成功了
1)卸载应用程序
2)重新启动手机
3)将应用程序构建到手机上

0
我刚弄清楚了。我的启动图片没有显示出来,当在设备(iPhone 6、7+)或测试飞行中启动时,会出现白屏。解决方案:将“Landing_screen.png”重命名为“Landing_screen”,删除“.png”部分。https://dev59.com/DloV5IYBdhLWcg3wIbxT#43592662

0

我遇到了同样的问题。

在启动画面中,图片无法显示,但标签和视图等其他元素都能正确显示。

要解决这个问题,首先请检查代码中的所有上述设置。如果仍然无效,则重新启动iPhone可以解决我的问题。

希望对大家有所帮助(乐意提供帮助):)


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接