启动屏幕在 iOS 14 和 Xcode 12 上不工作
Launch Screen not working on iOS 14 with Xcode 12
我现在很沮丧。我将 Xcode 升级到版本 12,并在 iOS 14 上测试了我的应用程序。现在的问题是,我的启动屏幕只是显示为黑色。我用 iOS 13.5 设备对其进行了测试,它仍然按预期工作。我尝试删除 launchscreen.storyboard 方法并在 info.plist 中添加启动屏幕键,但随后图像被缩放到全尺寸。
现在我用 launchscreen.storyboard 测试了一下,发现了一些东西。
- 如果我删除图像视图,启动屏幕会按预期显示。我只添加了一个标签就可以了。
- 如果我在图像视图中使用系统中的图像,它也能正常工作。当我使用项目中的图像时它不起作用。
您是否遇到过 iOS 14 和故事板方法的问题?
如果是,你是怎么解决的?
似乎对我有用的解决方法:
出于一个奇怪的原因,如果我缩小图像尺寸,那么它工作正常。我有一张尺寸为 2732x2732 的全尺寸图像,但没有用。将同一图像的尺寸减小到 2400x2400 效果很好。我尝试过 2500x2500 和 2600x2600,但 none 有效。
最重要的是,每次更改图像时,我都必须重新启动模拟器以反映更新后的图像。
它还不能在真机上运行。像模拟器一样,我不得不 重新启动设备 然后它才起作用。
不确定是图像 dimension/size 还是重启造成的。
进一步更新:
我将相同的构建(带有较小的图像)上传到 TestFlight 并将其安装在我的设备上(基本上是从具有大尺寸图像的先前版本更新的),不幸的是问题仍然存在 :(
现在我所做的是卸载应用程序并从 TestFlight 重新安装它。问题仍然存在。
最后我不得不删除应用程序、重新启动我的设备并安装应用程序再次。这是它工作正常的时候。
唯一对我有用的解决方法是将图像添加到 Images.xcassets
文件夹之外。修改并重建应用程序后,它按预期工作。
iOS 14 或 XCode 12 上出现了一些问题。
我对 XCode12 / iOS14 和 React 项目有类似的问题:
launchscreen.storyboard 在以前的版本中运行良好。由于更新到 XCode12 它显示如下:
- 进入黑屏(2-3 秒)
- 然后正确显示启动屏幕
如果我尝试在 Info.plist 中使用新的“启动屏幕”词典,我会遇到以下问题(在另一个 Xamarin 应用程序中也是如此):
- 图片放大/未完全显示
- 背景颜色设置被完全忽略(尝试了 RGB 和 Color.xcasset)
自从 Xcode 12 !
以来,这完全被窃听了
有同样的问题。问题是启动屏幕情节提要中使用的 .png 图像。这导致整个启动屏幕都是黑色的。
在我们的案例中修复它的是:
- 选择较小的图片
- 从 device/simulator
中删除应用程序
- 重启device/simulator
我在我们的应用程序中用另一张图片替换了一张图片,发现图片是错误的来源。它立即使用不同的图像(无需重新启动或其他要求)。
我也有这个。真气人。我的启动屏幕只是一个背景图像 (2048x2048 PNG) 和中间的一个图形 (2048x2048 PNG)。
我的解决方法是使用较小的中间图形 (720x720 PNG),从任何资产目录中删除图像,然后将它们添加到项目中。
在我重新启动模拟器之前,图像没有显示在模拟器上。当构建并安装到我的 iPhone 时,我不必重新启动它。
所以这里有很多好主意,但我最终能够解决问题 - 它更像是一种解决方法。我需要将图片存储在 Images.xcassets 文件夹之外,然后它又开始工作了。这是一个很奇怪的问题。
因此,自 2020 年 6 月 26 日以来,我通过他们的反馈系统向 Apple 提出了这个问题 - FB7795777。
我已经提供了我的项目和许多诊断报告,但他们从未返回修复程序。
然而,今天,我修复了它。
基本上,iOS/iPadOS SDK 在启动屏幕过程中对 .PNG 和 .JPG 文件(我认为是大小问题)的支持方式有一些变化。
解决方法:
在 Photoshop 中打开您的 .PNG 文件,然后 re-export 勾选 'Smaller File - 8-bit' 选项。它把它缩小到不到一半的大小,而且第一次就成功了。
在我的案例中,以下内容完成了工作:-
从项目 -> 常规 -> 应用程序图标和启动图像 -> 启动屏幕文件中删除 启动屏幕文件。
转到 info.plist 文件并作为源代码打开。
在此处添加以下代码并更改图像名称:-
<key>UILaunchScreen</key> <dict> <key>UIImageName</key> <string>splash(This is your image name)</string> </dict>
在 iOS 14 发布了这个新密钥 (UILaunchScreen)。所以从下次开始注意。如果出现错误,请检查 info.plist 文件。
编码愉快:)
我遇到了这个问题
当使用 LaunchScreen.storyboard 并在 Assets.xcassets 上使用图像时,不适用于 iOS 14 和 Xcode 12.
我通过尝试将 3x 图像更改为 2436×1125,并将 2x 图像设置为 828×1792 解决了这个问题。
最后我不得不删除该应用程序,重新启动我的设备并再次安装该应用程序。这是它工作正常的时候。
这可能对其他人有帮助,所以我在这里添加。
我将 Cordova 用于我的混合应用程序,然后加载由 Asset Catalog Creator(这是一个很棒的小产品)生成的图像资产。
在我更新到 Xcode 12 并尝试在 iOS 14 下 运行 之前,它一直运行良好。
我发现 Cordova 正在添加一个“CDVLaunchScreen.storyboard”,而他们的资产目录中有一个“LaunchStoryboard.imageset”(目录),其中只包含一个 contents.json文件.
我只是将它复制到我的资产目录中,当我将它拖放到我更新的项目(每次由 Cordova 新生成)时,我的启动图像再次显示。
不要问我 Xcode 如何或为什么神奇地将这些东西连接在一起,但它对我有用。
如果有帮助,我可以传递与我的资产目录一起使用的 contents.json。
顺便说一句,我的常规设置屏幕没有选择启动屏幕文件,但 Xcode 似乎找到了所需的文件。
解决方法是在启动情节提要中使用带有图像的按钮而不是图像视图。它就像一个魅力!!
一个原因可能是图像的大小。由于 iOS 启动屏幕的 14 张图像 限制为 25 MB,如 Apples Human Interface Guidelines.
中所述
一张 2.400x2.400 像素的图像将产生大约 22 MB 的内存大小。使用 2.500x2.500,我们达到 25 MB。
我们遇到了同样的问题 LaunchScreen.storyboard 中的全屏图像在所有 @3x 设备上都是黑色的,例如 iPhone 12. 减小尺寸只有从 3.072x3.072 到 2.400x2.400 的 @3x 启动图像解决了这个问题。
方形图片是支持横向和纵向的简单方式。但每个方向都有不同的图像也应该有效,其中一张图像总共小于 25 MB。
在我的例子中,ViewController 属性,“Is Initial View Controller”没有被选中。另外,请务必将视图颜色设置为实际颜色而不是系统颜色,否则您可能 运行 遇到设备主题设置问题。也就是说,如果你喜欢显示特定的颜色。
此外,要访问该设置,请确保单击下拉面板中的实际视图控制器对象。
我还有另一个可能的解决方案,因为 none 现有解决方案对我有用。
我在资产文件中使用 PDF 矢量,这通常效果很好。但事实证明它在启动屏幕上不起作用 - 如果它包含 PDF 图像,它只会显示完全跳过启动屏幕。
换成大 PNG,问题解决。
唯一对我有用的是:
- 删除现有的LaunchScreen.storyboard并创建一个新的
- 选中“用作启动屏幕”
- 检查“是初始视图控制器”
- 确保您使用的图片不在 Assets.xcassets 文件夹下。我把我的图片放在项目的根目录下
- 删除应用,重启模拟器,运行应用
宾果!!!
对我有用的:
- 使用@Darkpaw 建议的较小图像。毕竟,启动故事板旨在指示即将到来的 UI,而不是基于艺术作品。
- 使用 PNG 图片(不是 PDF)并且不要像@Sylber 所建议的那样将它放在资产目录中
只是单独记录,因为我 black/broken 启动了法师,直到我完成了这两个步骤。
如果您的图像 xcassets 文件夹中的 @1x、@2x、@3x 图像为空白,您可能会遇到此问题。
确保每个都有图像。
您还可以 select 您的 1 个图像,并在属性检查器(在右侧)中将比例设置为“单一比例”
对我有用的是:
将xxx.pdf图像放入Assets.xcassets并将“scale”设置为Single Scale
在Launch Screen.storyboard中,设置imageView的图片为xxx,然后设置imageView
的width 、高度、centerX 和底部 到视图
然后为我工作
Xcode 12.5.1,iPhone 7 加,iOS 14.6
在我自己的案例中,我通过以下几个步骤解决了问题:
- 图片必须是1024px,然后
- 添加到资产
-> 如果您有更大的图像,请使用以下简单步骤的解决方法:
- 生成您的应用程序图标
- 转到应用程序图标文件夹
- 复制该图像的 1024 像素,然后appicon image
- 然后添加到资产中。
这两种方法都非常有效。
在 Xcode 13 启动屏幕不显示而是黑屏。
但这对我有用项目 -> 常规 -> 应用程序图标和启动图像 -> 启动屏幕文件 -> 将 Main 更改为 Launchscreen。
我现在很沮丧。我将 Xcode 升级到版本 12,并在 iOS 14 上测试了我的应用程序。现在的问题是,我的启动屏幕只是显示为黑色。我用 iOS 13.5 设备对其进行了测试,它仍然按预期工作。我尝试删除 launchscreen.storyboard 方法并在 info.plist 中添加启动屏幕键,但随后图像被缩放到全尺寸。
现在我用 launchscreen.storyboard 测试了一下,发现了一些东西。
- 如果我删除图像视图,启动屏幕会按预期显示。我只添加了一个标签就可以了。
- 如果我在图像视图中使用系统中的图像,它也能正常工作。当我使用项目中的图像时它不起作用。
您是否遇到过 iOS 14 和故事板方法的问题?
如果是,你是怎么解决的?
似乎对我有用的解决方法:
出于一个奇怪的原因,如果我缩小图像尺寸,那么它工作正常。我有一张尺寸为 2732x2732 的全尺寸图像,但没有用。将同一图像的尺寸减小到 2400x2400 效果很好。我尝试过 2500x2500 和 2600x2600,但 none 有效。
最重要的是,每次更改图像时,我都必须重新启动模拟器以反映更新后的图像。
它还不能在真机上运行。像模拟器一样,我不得不 重新启动设备 然后它才起作用。
不确定是图像 dimension/size 还是重启造成的。
进一步更新:
我将相同的构建(带有较小的图像)上传到 TestFlight 并将其安装在我的设备上(基本上是从具有大尺寸图像的先前版本更新的),不幸的是问题仍然存在 :(
现在我所做的是卸载应用程序并从 TestFlight 重新安装它。问题仍然存在。
最后我不得不删除应用程序、重新启动我的设备并安装应用程序再次。这是它工作正常的时候。
唯一对我有用的解决方法是将图像添加到 Images.xcassets
文件夹之外。修改并重建应用程序后,它按预期工作。
iOS 14 或 XCode 12 上出现了一些问题。
我对 XCode12 / iOS14 和 React 项目有类似的问题: launchscreen.storyboard 在以前的版本中运行良好。由于更新到 XCode12 它显示如下:
- 进入黑屏(2-3 秒)
- 然后正确显示启动屏幕
如果我尝试在 Info.plist 中使用新的“启动屏幕”词典,我会遇到以下问题(在另一个 Xamarin 应用程序中也是如此):
- 图片放大/未完全显示
- 背景颜色设置被完全忽略(尝试了 RGB 和 Color.xcasset)
自从 Xcode 12 !
以来,这完全被窃听了有同样的问题。问题是启动屏幕情节提要中使用的 .png 图像。这导致整个启动屏幕都是黑色的。
在我们的案例中修复它的是:
- 选择较小的图片
- 从 device/simulator 中删除应用程序
- 重启device/simulator
我在我们的应用程序中用另一张图片替换了一张图片,发现图片是错误的来源。它立即使用不同的图像(无需重新启动或其他要求)。
我也有这个。真气人。我的启动屏幕只是一个背景图像 (2048x2048 PNG) 和中间的一个图形 (2048x2048 PNG)。
我的解决方法是使用较小的中间图形 (720x720 PNG),从任何资产目录中删除图像,然后将它们添加到项目中。
在我重新启动模拟器之前,图像没有显示在模拟器上。当构建并安装到我的 iPhone 时,我不必重新启动它。
所以这里有很多好主意,但我最终能够解决问题 - 它更像是一种解决方法。我需要将图片存储在 Images.xcassets 文件夹之外,然后它又开始工作了。这是一个很奇怪的问题。
因此,自 2020 年 6 月 26 日以来,我通过他们的反馈系统向 Apple 提出了这个问题 - FB7795777。
我已经提供了我的项目和许多诊断报告,但他们从未返回修复程序。
然而,今天,我修复了它。
基本上,iOS/iPadOS SDK 在启动屏幕过程中对 .PNG 和 .JPG 文件(我认为是大小问题)的支持方式有一些变化。
解决方法:
在 Photoshop 中打开您的 .PNG 文件,然后 re-export 勾选 'Smaller File - 8-bit' 选项。它把它缩小到不到一半的大小,而且第一次就成功了。
在我的案例中,以下内容完成了工作:-
从项目 -> 常规 -> 应用程序图标和启动图像 -> 启动屏幕文件中删除 启动屏幕文件。
转到 info.plist 文件并作为源代码打开。
在此处添加以下代码并更改图像名称:-
<key>UILaunchScreen</key> <dict> <key>UIImageName</key> <string>splash(This is your image name)</string> </dict>
在 iOS 14 发布了这个新密钥 (UILaunchScreen)。所以从下次开始注意。如果出现错误,请检查 info.plist 文件。
编码愉快:)
我遇到了这个问题
当使用 LaunchScreen.storyboard 并在 Assets.xcassets 上使用图像时,不适用于 iOS 14 和 Xcode 12.
我通过尝试将 3x 图像更改为 2436×1125,并将 2x 图像设置为 828×1792 解决了这个问题。
最后我不得不删除该应用程序,重新启动我的设备并再次安装该应用程序。这是它工作正常的时候。
这可能对其他人有帮助,所以我在这里添加。
我将 Cordova 用于我的混合应用程序,然后加载由 Asset Catalog Creator(这是一个很棒的小产品)生成的图像资产。
在我更新到 Xcode 12 并尝试在 iOS 14 下 运行 之前,它一直运行良好。
我发现 Cordova 正在添加一个“CDVLaunchScreen.storyboard”,而他们的资产目录中有一个“LaunchStoryboard.imageset”(目录),其中只包含一个 contents.json文件.
我只是将它复制到我的资产目录中,当我将它拖放到我更新的项目(每次由 Cordova 新生成)时,我的启动图像再次显示。
不要问我 Xcode 如何或为什么神奇地将这些东西连接在一起,但它对我有用。
如果有帮助,我可以传递与我的资产目录一起使用的 contents.json。
顺便说一句,我的常规设置屏幕没有选择启动屏幕文件,但 Xcode 似乎找到了所需的文件。
解决方法是在启动情节提要中使用带有图像的按钮而不是图像视图。它就像一个魅力!!
一个原因可能是图像的大小。由于 iOS 启动屏幕的 14 张图像 限制为 25 MB,如 Apples Human Interface Guidelines.
中所述一张 2.400x2.400 像素的图像将产生大约 22 MB 的内存大小。使用 2.500x2.500,我们达到 25 MB。
我们遇到了同样的问题 LaunchScreen.storyboard 中的全屏图像在所有 @3x 设备上都是黑色的,例如 iPhone 12. 减小尺寸只有从 3.072x3.072 到 2.400x2.400 的 @3x 启动图像解决了这个问题。
方形图片是支持横向和纵向的简单方式。但每个方向都有不同的图像也应该有效,其中一张图像总共小于 25 MB。
在我的例子中,ViewController 属性,“Is Initial View Controller”没有被选中。另外,请务必将视图颜色设置为实际颜色而不是系统颜色,否则您可能 运行 遇到设备主题设置问题。也就是说,如果你喜欢显示特定的颜色。
此外,要访问该设置,请确保单击下拉面板中的实际视图控制器对象。
我还有另一个可能的解决方案,因为 none 现有解决方案对我有用。
我在资产文件中使用 PDF 矢量,这通常效果很好。但事实证明它在启动屏幕上不起作用 - 如果它包含 PDF 图像,它只会显示完全跳过启动屏幕。
换成大 PNG,问题解决。
唯一对我有用的是:
- 删除现有的LaunchScreen.storyboard并创建一个新的
- 选中“用作启动屏幕”
- 检查“是初始视图控制器”
- 确保您使用的图片不在 Assets.xcassets 文件夹下。我把我的图片放在项目的根目录下
- 删除应用,重启模拟器,运行应用
宾果!!!
对我有用的:
- 使用@Darkpaw 建议的较小图像。毕竟,启动故事板旨在指示即将到来的 UI,而不是基于艺术作品。
- 使用 PNG 图片(不是 PDF)并且不要像@Sylber 所建议的那样将它放在资产目录中
只是单独记录,因为我 black/broken 启动了法师,直到我完成了这两个步骤。
如果您的图像 xcassets 文件夹中的 @1x、@2x、@3x 图像为空白,您可能会遇到此问题。
确保每个都有图像。
您还可以 select 您的 1 个图像,并在属性检查器(在右侧)中将比例设置为“单一比例”
对我有用的是:
将xxx.pdf图像放入Assets.xcassets并将“scale”设置为Single Scale
在Launch Screen.storyboard中,设置imageView的图片为xxx,然后设置
imageView
的width 、高度、centerX 和底部 到视图
然后为我工作
Xcode 12.5.1,iPhone 7 加,iOS 14.6
在我自己的案例中,我通过以下几个步骤解决了问题:
- 图片必须是1024px,然后
- 添加到资产
-> 如果您有更大的图像,请使用以下简单步骤的解决方法:
- 生成您的应用程序图标
- 转到应用程序图标文件夹
- 复制该图像的 1024 像素,然后appicon image
- 然后添加到资产中。 这两种方法都非常有效。
在 Xcode 13 启动屏幕不显示而是黑屏。
但这对我有用项目 -> 常规 -> 应用程序图标和启动图像 -> 启动屏幕文件 -> 将 Main 更改为 Launchscreen。