使用flutter_native_splash替换启动图片,iOS端替换不成功

news/2024/7/20 22:46:15 标签: flutter, ios

使用flutter_native_splash替换启动图片,iOS端替换不成功

      • 1、删除App+重启手机;
      • 2、重新创建一个新的`LaunchScreen.storyboard`,比如命名为`NewLaunchScreen.storyboard`,在General里面设置`Launch Screen File`为这个新的`NewLaunchScreen.storyboard`,重新命名启动图片名称(比如原来启动页叫LaunchImage.png,现在叫NewLaunchImage.png),把这个图片放到工程文件夹下,不要放到Assets里面,然后在`NewLaunchScreen`添加imageView,设置约束添加新命名的图片

今天在使用flutter_native_splash插件替换启动图片的时候,Android手机能替换成功,但是iOS端却依旧显示的旧图片,最后手动配置iOS端的启动页也不好使,即使在整个项目中,已经把就图片删除了,依然不好使,后来查了资料,才知道是因为Apple的LaunchStoryboard.storyboard缓存的原因。
由于Apple废弃了LaunchImage,采用Launch Screen的方式来处理启动页,然而Launch Screen是有缓存的,替换新的启动页并不会成功,包括但不限于(重启Xcode、清理Xcode缓存、卸载APP、更改图片名称、启用代码FileManager.default.removeItem(atPath: NSHomeDirectory()+"/Library/SplashBoard")手动删除缓存)都没有效果,
这是删除缓存的代码,不信的同学可以自己试试,反正我是没有成功。

public extension UIApplication {

    func clearLaunchScreenCache() {
        do {
            try FileManager.default.removeItem(atPath: NSHomeDirectory()+"/Library/SplashBoard")
        } catch {
            print("Failed to delete launch screen cache: \(error)")
        }
    }

}

经过我反复的尝试,发现目前想要解决这个问题,有两个办法:

1、删除App+重启手机;

这个方法有个弊端,就是如果有人安装了app,需要更新新版本的时候,启动页依旧不会替换,你总不能让所有安装了app的人都关机重启吧,这也不现实。

2、重新创建一个新的LaunchScreen.storyboard,比如命名为NewLaunchScreen.storyboard,在General里面设置Launch Screen File为这个新的NewLaunchScreen.storyboard,重新命名启动图片名称(比如原来启动页叫LaunchImage.png,现在叫NewLaunchImage.png),把这个图片放到工程文件夹下,不要放到Assets里面,然后在NewLaunchScreen添加imageView,设置约束添加新命名的图片

我在项目中采用的是第二个方法,目测有效,希望能帮到你!!简书地址


http://www.niftyadmin.cn/n/5252056.html

相关文章

STM32 定时器总结

缩写 ARR: Auto-Reload Register(保存定时器的计数范围) PSC: Prescaler register(预分频器寄存器,根据设置的分频因子N,计数N个定时器时钟脉冲后,产生一个CNT计数,以此实现分频功能&#xff0…

IOS安全学习路标

1. iOS基础知识 - 学习Objective-C和Swift编程语言,了解iOS开发的基本原理。 - 熟悉iOS应用的启动过程,包括应用生命周期、应用的主线程和多线程开发等。 - 了解iOS应用的应用包结构,包括应用程序包(.app文件)、库和资…

当前 .NET SDK 不支持面向 .NET X.0 (如8.0)问题的解决方案

如果您加载方案或运行时出现如下错误时: 当前 .NET SDK 不支持面向 .NET 8.0。请面向 .NET 7.0 或更低版本,或者使用支持 .NET 8.0 的 .NET SDK 版本。从 https://aka.ms/dotnet/download 下载 .NET SDK (项目名称).Domain C:\Program Files\dotnet\…

bc-linux-欧拉重制root密码

最近需要重新安装虚拟机的系统 安装之后发现对方提供的root密码不对,无法进入系统。 上网搜了下发现可以进入单用户模式进行密码修改从而重置root用户密码。 在这个界面下按e键 找到图中部分,把标红的部分删除掉,然后写上rw init/bin/…

字节iconpark基于vue使用

1.安装 npm i icon-park/vue 2.导入 说明:导入并在main.js使用。 import { install } from icon-park/vue/es/all; import icon-park/vue/styles/index.css; Vue.use(install) 3.打开官网 ByteDance IconPark 4.复制 说明:点击官方图标库&#xff0c…

力扣257. 二叉树的所有路径(递归回溯与迭代)

题目: 给你一个二叉树的根节点 root ,按 任意顺序 ,返回所有从根节点到叶子节点的路径。 叶子节点 是指没有子节点的节点。 示例 1: 输入:root [1,2,3,null,5] 输出:["1->2->5","…

机器人IC

机器人IC 电子元器件百科 文章目录 机器人IC前言一、机器人IC是什么二、机器人IC的类别三、机器人IC的应用实例四、机器人IC的作用原理总结前言 机器人IC的性能和功能会影响着机器人的运行效果和智能程度。现在市场上有许多厂商提供各种类型的机器人IC,适用于不同的机器人应用…

P3 Qt 控件 —— pushButton

前言 🎬 个人主页:ChenPi 🐻推荐专栏1: 《C_ChenPi的博客-CSDN博客》✨✨✨ 🔥 推荐专栏2: 《Linux C应用编程(概念类)_ChenPi的博客-CSDN博客》✨✨✨ 🌺本篇简介 :这一章我们学一…