iOS App更换图标Logo(本地更换)

news/2024/5/4 8:21:50/文章来源:https://blog.csdn.net/wyz670083956/article/details/127126570

1.各大购物平台在节假日都是更换App Icon图标

通常有两种方式:1.每换一个新的图标,需要重新上一次AppStore;

                                2.在项目里预留好未来需要更换的图标,用api触发(或者本地时间判断自动更换)

两种方法各有利弊,第一种 弊:每次都需要上AppStore,有点麻烦;利:但是可以保证AppStore上的图标也是最新的

                          第二种,弊:需要把未来的图标设计好,AppStore上的图标不会更新。 利:不用频繁上架,只需要埋好图标,随时更换。

第一种方法大家都会,现在来说说第二种。

苹果官方从iOS10.3开始支持动态更换应用logo,新增的Api如下所示

 

一:添加需要更换的Icon图标(图片)

注意:添加的图标不要放在Assets.xcassets文件里;放在文件目录,如下图(我取名为replaceIcon的图片)

二:配置info.plist信息

2.1添加 Icon files (iOS 5),类型为Dictionary

    注意:全名为Icon files (iOS 5),包括括号里的iOS5

2.2 在Icon files (iOS 5)下添加CFBundleAlternateIcons,类型为Dictionary

2.3 在CFBundleAlternateIcons下添加changeIcon1,类型为Dictionary

注意: changeIcon1 是存放图片的文件名,名字随便起。本文中,只有这里可以随便起名字,其他的都是苹果的固定类名

2.4.在changeIcon1下添加CFBundleIconFiles,类型为Array

2.5.在CFBundleIconFiles下添加一个item0,类型为String类型。这里输入更换图片的名称(步骤一中的replaceIcon)

这里还可以创建多个更换图片文件changeIcon2,changeIcon3

 三.使用

在需要更换图片的地方写以下代码: 代码里的changeIcon1,就是步骤二-->2.3中创建的图片文件名

    if ([UIApplication sharedApplication].supportsAlternateIcons) //来判断是否支持换应用图标    {

        [[UIApplication sharedApplication] setAlternateIconName:@"changeIcon1" completionHandler:^(NSError * _Nullable error) {

            if (error)

            {

                NSLog(@"更换app图标发生错误了 : %@",error);

            }else{

                NSLog(@"更换app图标成功");

            }

        }];

    }

 四.优化

完成上面三步,基本算完图标更换的流程,但是在调用更换图标的方法时(步骤三),系统会弹出一个弹窗,告知用户已经完成更换,如下图。 这样的体验非常不友好。

 

现在我们想办法去掉这个弹窗

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.luyixian.cn/news_show_16559.aspx

如若内容造成侵权/违法违规/事实不符,请联系dt猫网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

「喜迎华诞」手把手教你用微信小程序给头像带上小旗帜

文章目录一、文章前言二、实现原理三、开发步骤四、完整代码五、国庆临近,祝祖国永远繁荣昌盛!一、文章前言 2022年是新中国成立73周年,在这个举国欢庆的日子里,让我们给头像上加上小红旗,迎国庆换新颜,一起…

视频倒放怎么制作?快来学会这几个简单的方法

众所周知,如果我们想要让视频更具有观赏性的话,少不了用视频倒放功能来制作视频。不过还是有很多小伙伴不知道视频倒放怎么制作? 下面我就来手把手教你们视频倒放的制作方法,你们快来看看吧! 方法一:提词全…

Monaco Editor教程(五): 实现同时多文件编辑,tab切换

背景 上一篇我们讲解了如何设置编辑器的值,获取编辑器的值,以及监听编辑器的内容修改。这些功能对于基础的单文件修改,一次只修改一个文件的业务场景比较友好。但如果是复杂的场景,比如WEB IDE,同时打开一个项目的多个…

聊聊SQL注入

明天是国庆1001,祝大家国庆节快乐!!!这个月还有属于程序员的节日:1024SQL注入问题概述:首先SQL注入是一个非常危险的操作,很可能被一些不怀好意的人钻空导致我们系统出现异常等状况,比如数据库遭到破坏或被入侵。原因:使用JDBC的Statement语句添加SQL语句由于我们的JD…

直播电商开发,源码无加密

随着直播电商的流行,很多企业开始使用商场电商直播系统,该企业使用电商直播系统的优势具体体现在哪里?下面由零七科技小编为您总结企业电商直播系统的优点。 使用电商直播系统的优点: 1、全面展示商品风格和效果。 与在线平台的…

【Django-rest-framework框架】第04回 视图集

目录1. 两个视图基类1.1 GenericAPIview属性和方法1.2 基于APIView写5个接口1.3 基于GenericAPIview写5个接口2. 5个视图扩展类3. 9个视图子类4. 视图集5. 源码分析ViewSetMixin6. 总结7 继承关系画出来,有哪些常用属性或方法写出来 1. 两个视图基类 1.1 GenericAPIview属性和…

【redis】7.1 分布式架构概述(章节介绍)

分布式架构概述 请求业务比较长(耗时业务),需要分布式系统。 1. 本章节内容 分布式缓存中间件Redis分布式会话与单点登录分布式搜索引擎Elasticsearch分布式文件系统分布式消息队列分布式锁数据库读写分离与分库分表数据库表全局唯一主键i…

迭代器并不全是指针,list的迭代器与vector和string的有什么不一样,让博主告诉你其底层原理!

链表的模拟实现 文章目录链表的模拟实现一、list的基本架构🤖_list_node基本构架--双向带头循环链表二、list的迭代器--重点🐱‍👤list迭代器的基本架构构造函数--node*封装operator*()--得到值operator!()--跟另一个迭代器进行比较operator(…

xLua热更新(一)xLua基本使用

一、什么是xLua xLua为Unity、 .Net、 Mono等C#环境增加Lua脚本编程的能力,借助xLua,这些Lua代码可以方便的和C#相互调用。 xLua是用来实现Lua代码与C#代码相互调用的插件。我们可以借助这个插件来实现热更新方案。 那么为什么要选择Lua实现热更新呢&am…

报告分享|数字化转型,从战略到执行报告

报告链接:http://tecdat.cn/?p=28672 如何加速国家、城市、行业、企业数字化进程,激发数字经济新动能。这份报告通过洞察数字化的6大改变、4大载体、4个阶段、20+场景、100+国家/项目案例/数据,全面系统性地阐述了多层次多场景数字化如何落地实施,最终带来经济、社会价值的…

报告分享|2022年企业数字化人才发展白皮书

报告链接:http://tecdat.cn/?p=28670 数字经济时代,企业对数字化人才的需求急剧增长。此报告对数字化人才培养和企业数字化人才发展现状进行梳理和研究,聚焦于金融、零售、能源和制造四个行业,采用定量与定性相结合的研究方法,对数字化人才的发展态势、岗位能力需求、培养…

第八章 常用用类

文章目录8.4 StringBuffer类8.4.1 StringBuffer对象8.4.2 StringBuffer类的常用方法1.append方法2.charAt(int n)和setCharAt(int n, char ch)8.5 Date类与Calendar类8.5.1 Date类8.5.2 Calendar类8.6 日期的格式变化8.6.1 format方法8.6.2 不同区域的星期格式8.7 Math类、BigI…

【算法】【二叉树模块】求一个二叉树“子树“是否包含另一个二叉树的全部拓扑结构

目录前言问题介绍解决方案代码编写java语言版本c语言版本c语言版本思考感悟写在最后前言 当前所有算法都使用测试用例运行过,但是不保证100%的测试用例,如果存在问题务必联系批评指正~ 在此感谢左大神让我对算法有了新的感悟认识! 问题介绍 …

三个线程顺序打印ABC?我有十二种做法,彻底掌握多线程同步通信机制

大家好,我是老三,这篇文章分享一道非常不错的题目:三个线程按序打印ABC。 很多读者朋友应该都觉得这道题目不难,这次给大家带来十二种做法,一定有你没有见过的新姿势。 1. synchronizedwaitnotify 说到同步&#xf…

Swift中的内存访问冲突、指针、局部作用域

内存访问冲突(Conflicting Access to Memory) 1、内存访问冲突会在两个访问满足以下条件时发生: 至少一个是写入操作它们访问的是同一块内存它们的访问时间重叠(比如在同一个函数内) //无内存访问冲突 func plus(_ n…

PIE-engine 教程 ——利用NDWI加载青海湖三年水域影像和面积计算

这里我们首先画一个自己选择的研究区,用于方便计算NDWI,这里我们将青海湖区域作为我们的研究区,第二步我们就是要设定一个函数,用于在函数中执行循环遍历,这里包括去云和影像筛选过程,最后按照最大值合成&a…

Windows 10 docker 容器添加新端口映射的方法与步骤

在Docker容器已经创建后,需要添加新的端口映射,即对已经存在的Docker容器添加新的端口映射,可以通过以下步骤来添加,即通过修改配置文件的方法。 1、Windows 10 下 Dockers容器的配置文件存在的路径为: 笔者本文是20…

CLIP扩展

Audio CLIP:Extend CLIP to Image,Text and Audio(语音) 在已有的image、text 的基础上又加上了audio语音模态。 找了一些视频,有视频帧(图像)、文本、语音三种模态的信息,仿照CLIP的模型结构。三种模态两…

SpringSecurity + JWT(前后端分离)

文章目录一、先来聊聊 SpringSecurity JWT二、简单聊聊SpringSecurity 完整流程1、认证2、授权三、撸代码1、入门案例2、认证-前端端分离 Demo2.1 环境准备2.2 密码加密存储2.3 数据库校验存储2.4 编写自定义登陆接口2.5 JWT 认证过滤器2.6 退出登陆3、授权-前后端分离 Demo3.…

Spring In Action 5 学习笔记 chapter8 RabbitMQ(AMQP)要点

本文记录Sping In Action5 第8章 发送异步消息 RabbitMQ(AMQP)中的踩坑情况。 网搜的Spring In Action5的书籍在线翻译 https://potoyang.gitbook.io/spring-in-action-v5/ 第8章的源码请自行github或gitee搜索,或参考一下。 GitHub - habuma/spring-in-action-5…