iPhone 的动态图标更改

2023-11-27

我的问题也和其他人之前问过的一样。

我发现一旦你设置了应用程序的图标,我们就无法更改应用程序图标动态地。是的,我同意了。如果是这样,我们使用动态图标苹果不接受。但我承认苹果有一些规则和规定。

所以这是我的问题:如何动态更改应用程序图标。我不会将我的应用程序放入 AppStore。

每个人都说这是不可能的。我不担心苹果规则。但是,是的,担心答案。

任何人,只要引导我做到这一点,不要告诉我“你不能”。

提前致谢。


iOS 10.3+

有一种方法叫做设置备用图标名称:它是在 iOS 10.3 中引入的,通过它您可以更改应用程序的图标,但是这些图标应该是预定义的。这意味着图标应该添加到应用程序的包中并在info.plist.

Example:

典型的 info.plist 如下所示:

<key>CFBundleIcons</key>
<dict>
    <key>CFBundleAlternateIcons</key>
    <dict>
        <key>alternate_icon_name</key>
        <dict>
            <key>CFBundleIconFiles</key>
            <array>
                <string>alternate_icon_file</string>
            </array>
            <key>UIPrerenderedIcon</key>
            <false/>
        </dict>
        <key>CFBundlePrimaryIcon</key>
        <dict>
            <key>CFBundleIconFiles</key>
            <array>
                <string>default_icon_file</string>
            </array>
            <key>UIPrerenderedIcon</key>
            <false/>
        </dict>
    </dict>
</dict>

实现代码如下:

目标C:

[[UIApplication sharedApplication] setAlternateIconName:@"alternate_icon_name" completionHandler:^(NSError * _Nullable error) {
    NSLog(@"Error...");
}];

Swift 3:

if UIApplication.shared.supportsAlternateIcons
{
    UIApplication.shared.setAlternateIconName("alternate_icon_name", completionHandler: { (error) in
        print(error ?? "")
    })
}

iOS 10.3 之前

您无法动态更改图标文件,因为图标文件名存储在应用程序列表.

Application plist.

您无法动态更改应用程序 plist,因为它存储在应用程序包中readonly.

所以你的要求是不可能实现的。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

iPhone 的动态图标更改 的相关文章

随机推荐

  • 如果可能的话,我应该使用 angularjs $http 服务来请求还是 jquery ajax ?

    在我的项目中 我使用 angularjs 框架并且喜欢使用 http每当我进行 ajax 调用时 都会提供服务 但在项目的某些部分 UI 不是通过 ajax 调用直接更新并且不需要 angularjs 绑定 我应该使用 http服务或普通j
  • 聚合根是否应该在领域驱动设计中实现接口

    我正在开发一个使用领域驱动设计和测试驱动开发的项目 在阅读 Evans 的 DDD 书籍时 我注意到他没有为域中的聚合根定义接口 如果我同时进行 DDD 和 TDD 我是否应该为每个聚合根定义接口以使聚合根类易于测试和模拟 如果是这样 我是
  • 调用 getDrawingCache() 时视图太大,无法放入绘图缓存

    我正在尝试截取 LinearLayout 内容的屏幕截图 该布局包含一个可以具有可变高度 宽度的滚动视图 当布局不太大时 此代码可以正常工作 即您不需要在屏幕上滚动太多来查看所有内容 View v1 LinearLayout theLayo
  • FireMonkey 应用程序中是否有可使用的 Web 浏览器组件?

    对于 Delphi VCL 有TWebBrowser和一些第三方组件 例如TEmbeddedWebBrowser可用于浏览网页 有没有类似的网络浏览器组件 但对于火猴框架在德尔福XE2 最好有 Windows 和 Mac 支持 您可以使用C
  • Angular2订阅理解箭头功能

    我尝试通过以下示例来理解打字稿的箭头函数角2可观察的订阅方法 有人能给我解释一下吗 我有这个有效的代码 this readdataservice getPost subscribe posts gt this posts posts 但如果
  • C#中如何实现多行字符串; VB 的 XML Literals 的替代品?

    我在 vb net 中有一个项目使用XML Literals像这样处理大块 SQL Dim SQL As String a Use test alter table BarFoo alter column CouponName nvarch
  • 如何绑定perl脚本中的每个变量?

    我想看到 perl 脚本中的变量被创建 访问 销毁时的每个地方 使用它可以轻松到达tie or Variable Magic 但是如何在创建变量时自动应用这个魔法呢 您可以查看 B Xref 它会生成应用程序中所有变量的交叉引用列表 基本上
  • 导航视图项目按下时不会响应

    我正在开发一个带有侧导航抽屉的应用程序 抽屉打开得很好 但是据说可以 点击 的文本似乎没有响应 动画显示 当轻敲抽屉时会有反馈 您可以听到声音 但没有任何结果 我尝试放置 toast 消息以查看按钮是否注册了操作 但按下时没有出现 toas
  • JPanel 动作监听器

    我有一个 JPanel 其中有一堆不同的复选框和文本字段 我有一个已禁用的按钮 需要在设置特定配置时启用 我需要的是在整个 JPanel 上寻找事件的监听器 每当发生任何变化时 我相信我需要一个动作侦听器 但我找不到任何东西来桥接动作侦听器
  • “导入错误:没有名为 pwd 的模块”,但它存在

    我正在尝试在本地测试 gae boilerplate 但是当我尝试创建新帐户时 会出现以下错误 奇怪的是 如果我打开 python 解释器并输入 import pwd 它就会起作用 Internal Server Error The ser
  • Objective C 中的悬空指针 - nil 也会释放内存吗?

    我的理解是 当内存未被释放或 释放 时 就会发生内存泄漏 当指针未设置为 nil 并且对象被释放时 就会出现悬空指针 我的问题是 可以将对象设置为 nil 释放内存并清除指针引用吗 i e Car myCar Car alloc initW
  • 需要重构箭头反模式的想法

    我继承了一个怪物 它伪装成 NET 1 1 应用程序处理符合医疗保健索赔支付 ANSI 835 标准的文本文件 但它是一个怪物 正在处理的信息涉及医疗保健索赔 EOB 和报销 这些文件由在前几个位置具有标识符的记录和根据该类型记录的规范格式
  • Go结构体和字节数组之间的转换

    我正在用 Go 编写一个客户端 服务器应用程序 我想在 Go 中执行类似 C 的类型转换 例如 在围棋中 type packet struct opcode uint16 data 1024 byte var pkt1 packet n r
  • 如何在视图内切换视图?

    我正在使用 MVVM 轻型框架制作一个 WPF 应用程序 我想做的是在视图中有一个登录表单 当用户按下该视图中的按钮时 它会为附加的 ViewModel 启动 LoginCommand 从那里我要么想要启动一个包含应用程序其余部分的新窗口
  • 没有可用的 mysql-server 软件包

    我正在尝试在 Amazon Linux 实例上设置 MySQL 我已经尝试了所有方法 也使用 y 选项 sudo yum install mysql server sudo yum install mysql56 server sudo y
  • 从类中删除必需的属性,但 MVC3 仍然不会在文本框中没有值的情况下发布表单

    我有课 在某一时刻 我使用 System ComponentModel 将类的属性设置为 Required 好吧 然后我意识到这是没有必要的 我已经删除了所需的属性 但是当我尝试将表单提交到 ActionResult 时 表单不会发布 并且
  • C# - 通过进程名称的一部分来终止进程

    我正在寻找如何在 C 中执行此操作 如下所示 foreach Process proc in Process GetProcessesByName cheatengine x86 64 proc Kill 我正在使用这个语句 但是该程序有不
  • 销毁并重新创建一个对象是否会使指向该对象的所有指针无效?

    这是后续这个问题 假设我有这样的代码 class Class public virtual method this gt Class new this Class Class object new Class object gt metho
  • 检测 Android JNI 代码中的本机内存泄漏

    如何检测Android JNI代码中的内存泄漏 我正在使用弗罗约 2017年更新 valgrind 可用对于安卓 内置的 malloc 调试功能在以下版本中得到了显着扩展 安卓N 对于查找内存泄漏非常有用 您可能需要 exit 应用程序触发
  • iPhone 的动态图标更改

    我的问题也和其他人之前问过的一样 我发现一旦你设置了应用程序的图标 我们就无法更改应用程序图标动态地 是的 我同意了 如果是这样 我们使用动态图标苹果不接受 但我承认苹果有一些规则和规定 所以这是我的问题 如何动态更改应用程序图标 我不会将