启动屏幕在Xcode 12的iOS 14上不起作用

时间:2020-09-20 11:18:07

标签: ios xcode launch-screen

我现在非常沮丧。我将Xcode升级到版本12,并在iOS 14上测试了我的应用程序。现在的问题是,我的启动屏幕仅显示为黑色。我使用iOS 13.5设备对其进行了测试,但仍可以按预期运行。我尝试删除了launchscreen.storyboard方法,并在info.plist中添加了Launch Screen键,但是随后将图像缩放为完整大小。

现在,我对launchscreen.storyboard进行了一些测试,发现了一些东西。

  • 如果删除“图像”视图,则启动屏幕将按预期显示。我只添加了一个标签即可使用。
  • 如果我在图像视图中使用系统中的图像,它也可以正常工作。当我使用项目中的图像时,它只是无法正常工作。

您是否遇到了iOS 14和情节提要方法的问题?

如果是,您如何解决?

19 个答案:

答案 0 :(得分:11)

解决方法是在启动故事板中使用带有图像的按钮而不是图像视图。它就像一个魅力!!

答案 1 :(得分:8)

一种解决方法似乎对我有用:

出于一个奇怪的原因,如果我缩小图像的尺寸,那么效果很好。我有一个尺寸为2732x2732的全尺寸图片,但是它没有用。将同一图像的尺寸减小到2400x2400效果很好。我曾尝试使用2500x2500和2600x2600,但均无效果。

最重要的是,每次更改图像时,都必须重新启动模拟器以反映更新的图像。

它尚未在实际设备上运行。像模拟器一样,我必须重新启动设备,然后才能正常工作。

不确定是图像尺寸/大小还是重新引导图像。

其他更新:

我将相同的版本(具有较小的图像)上传到TestFlight并将其安装在我的设备上(基本上从具有大尺寸图像的先前版本进行了更新),不幸的是问题仍然存在:(

现在我要做的是卸载该应用程序,然后从TestFlight重新安装它。问题仍然存在。

最后,我不得不删除该应用重启我的设备并再次安装该应用。这样就可以了。

答案 2 :(得分:3)

对我来说唯一可行的解​​决方法是将图像添加到Images.xcassets文件夹之外。修改并重建应用程序后,它可以正常工作。

某些问题发生在iOS 14或XCode 12上。

答案 3 :(得分:3)

一个原因可能是图像的大小。由于 iOS 14 的启动屏幕图像限制为 25 MB,如 Apples Human Interface Guidelines 中所述。

具有 2.400x2.400 像素的图像将导致大约 22 MB 的内存大小。使用 2.500x2.500,我们达到了 25 MB。

我们遇到了同样的问题,其中 LaunchScreen.storyboard 中的全屏图像在 iPhone 12 等所有 @3x 设备上都是黑色的。仅将 @3x 启动图像的大小从 3.072x3.072 减小到 2.400x2.400 解决了这个问题。

方形图片是支持横向和纵向的简单方法。但它也应该适用于每个方向的不同图像,其中一张图像的总数小于 25 MB。

答案 4 :(得分:3)

因此,这里有很多好主意,但我终于能够解决问题-更像是一种解决方法。我需要将图片存储在Images.xcassets文件夹之外,然后它再次开始工作。这是一个很奇怪的问题。

答案 5 :(得分:2)

我遇到了这个问题

使用LaunchScreen.storyboard并在Assets.xcassets上使用图像时,不能在带有Xcode 12的iOS 14上使用。

我尝试将3x图像更改为2436×1125,然后将2x图像设置为828×1792。

最后,我必须删除该应用程序,重新启动设备,然后再次安装该应用程序。这样就可以了。

答案 6 :(得分:2)

有同样的问题。问题是启动屏幕故事板上使用的.png图像。这导致整个启动屏幕只是黑色。

解决此问题的方法是:

  • 选择较小的图像
  • 从设备/模拟器中删除应用
  • 重新启动设备/模拟器

通过在我们的应用程序中将图像替换为另一图像,我发现图像是错误的来源。立即可以使用其他图像(无需重新启动或其他操作)。

答案 7 :(得分:1)

就我而言,以下工作完成了:-

  1. 从项目->常规->应用程序图标和启动图像->启动屏幕文件中删除启动屏幕文件

  2. 转到info.plist文件并作为源代码打开。

  3. 在此处添加以下代码并更改图像名称:-

    import com.sun.mail.imap.IMAPFolder; import com.sun.mail.imap.IMAPFolder.FetchProfileItem; import com.sun.mail.imap.SortTerm; import javax.mail.Address; import javax.mail.FetchProfile; import javax.mail.Flags; import javax.mail.Folder; import javax.mail.Message; import javax.mail.Store; import javax.mail.UIDFolder; import javax.mail.internet.AddressException; import javax.mail.internet.InternetAddress; import javax.mail.search.AndTerm; import javax.mail.search.BodyTerm; import javax.mail.search.FromStringTerm; import javax.mail.search.FromTerm; import javax.mail.search.OrTerm; import javax.mail.search.SearchTerm; import javax.mail.search.SubjectTerm;

  4. 在iOS 14中,此新密钥已发布(UILaunchScreen)。因此,下次请多加注意。如果出现错误,请检查info.plist文件。

  5. 快乐编码:)

答案 8 :(得分:1)

就我而言,未选中 ViewController 属性“是初始视图控制器”。此外,请务必将视图的颜色设置为实际颜色而不是系统颜色,否则您可能会遇到设备主题设置的问题。也就是说,如果您想显示特定颜色。

此外,要访问该设置,请确保单击下拉面板中的实际视图控制器对象。 XcodeImage

答案 9 :(得分:1)

对我有用的是:

  1. xxx.pdf 图像放入 Assets.xcassets 并将“缩放”设置为单一缩放

  2. 在Launch Screen.storyboard中,设置imageView的图片为xxx,然后设置imageViewwidthheightcenterX底部以查看

然后为我工作

Xcode 12.5.1、iPhone 7 Plus、iOS 14.6

答案 10 :(得分:0)

因此,自2020年6月26日以来,我一直通过苹果的反馈系统与FB7795777纠缠于苹果。

我已经提供了我的项目和许多诊断报告,但它们再也没有修复。

但是,今天,我修复了它。

基本上,iOS / iPadOS SDK在启动屏幕过程中对如何支持.PNG和.JPG文件(大小或尺寸是我认为的问题)进行了一些更改。

解决方案:

在Photoshop中打开您的.PNG文件,然后选中“较小文件-8位”选项将其重新导出。它缩小到不到一半的大小,并且第一次工作。

答案 11 :(得分:0)

我也有这个。真是气死我了我的启动屏幕只是背景图片(2048x2048 PNG)和中间的图形(2048x2048 PNG)。

对我来说,解决方法是使用较小的中间图形(720x720 PNG),从任何资产目录中删除图像,然后将其添加到项目中。

直到重新启动模拟器,图像才显示在模拟器上。在构建并安装到iPhone上后,我无需重新启动它。

答案 12 :(得分:0)

这可能会帮助其他人,所以我在这里添加它。

我将Cordova用于混合应用程序,然后加载由Asset Catalog Creator(这是一个很棒的小产品)生成的图像资产。

在我更新到Xcode 12并尝试在iOS 14下运行它之前,它一直运行良好。

我发现,科尔多瓦正在添加“ CDVLaunchScreen.storyboard”,并且他们的资产目录中有一个“ LaunchStoryboard.imageset”(目录),其中仅包含一个contents.json文件。

我只是将其复制到资产目录中,然后将其拖放到更新的项目中(每次由Cordova生成),再次显示启动图像。

不要问我Xcode如何神奇地将这些东西连接在一起,但是对我有用。

如果有帮助,我可以传递与资产目录一起使用的contents.json。

顺便说一句,我的常规设置屏幕没有选择启动屏幕文件,但是Xcode似乎找到了所需的文件。

答案 13 :(得分:0)

我在XCode12 / iOS14和React项目中遇到类似的问题: launchscreen.storyboard在以前的版本中运行正常。自更新到XCode12以来,它显示如下:

  • 闯入黑屏(2-3秒)
  • 然后正确显示启动屏幕

如果我尝试在Info.plist中使用新的“启动屏幕”字典,则会遇到以下问题(在另一个Xamarin App中也是如此)

  • 图像放大/未完全显示
  • 背景颜色设置被完全忽略(尝试使用RGB和Color.xcasset)

自Xcode 12以来,这完全是错误的!

答案 14 :(得分:0)

我有另一个可能的解决方案,因为现有的解决方案都不适合我。

我在我的资产文件中使用 PDF 向量,这通常效果很好。但事实证明它在启动屏幕上不起作用 - 如果它包含 PDF 图像,它只会显示完全跳过启动屏幕。

把它换成一个大的 PNG,问题解决了。

答案 15 :(得分:0)

唯一对我有用的是:

  1. 删除现有的 LaunchScreen.storyboard 并创建一个新的
  2. 选中“用作启动屏幕”

Use as Launch Screen

  1. 检查“是初始视图控制器”

Initial View Controller

  1. 确保您使用的图像不在 Assets.xcassets 文件夹下。我把我的图片放在项目的根目录
  2. 删除应用程序,重启模拟器,然后运行应用程序

宾果游戏!!!

答案 16 :(得分:0)

什么对我有用:

  • 使用建议的@Darkpaw 等较小的图像。毕竟,发布故事板旨在指示即将推出的用户界面,而不是基于艺术作品。
  • 使用 PNG 图像(而非 PDF)并且不要像@Sylber 建议的那样将其放入资产目录

单独说明一下,因为在我完成这两个步骤之前,我有黑色/损坏的发射法师。

答案 17 :(得分:0)

如果您的图像 xcassets 文件夹中的 @1x、@2x、@3x 图像为空白,您可能会看到此问题。

确保每个人都有图片。

您也可以选择您的 1 个图像,并在属性检查器(右侧)中将比例设置为“单一比例”

答案 18 :(得分:-1)

尝试我的解决方案,对我来说效果很好。

  1. 转到Xcode->首选项->位置。

  2. 点击小箭头,看一下下面的图片,以在Finder中打开Xcode目录: enter image description here

  3. 退出Xcode

  4. 在您先前打开的Xcode目录文件夹中打开“ iOS DeviceSupport”文件夹:

enter image description here

  1. 根据需要重命名“ iOS DeviceSupport”文件夹(old_iOS DeviceSupport)
  2. 重新启动Xcode。
  3. Xcode为您创建一个新的“ iOS DeviceSupport”文件夹
  4. 连接您的设备
  5. 构建项目,然后开始!

我在以下位置运行它:

enter image description here