【问题标题】:iPhone - Change icon of the app programmatically at runtimeiPhone - 在运行时以编程方式更改应用程序的图标
【发布时间】:2012-02-22 19:28:06
【问题描述】:

我知道在运行时以编程方式更改应用程序图标是不可能的,至少从 iOS 3.0 开始是这样。

但是...我经常可以在“应用程序”网站上看到可以将图标放在跳板上的应用程序。我记得的第一个应用程序是您将相册中朋友的照片提供给朋友的那种应用程序,它会创建一个图标,因此您只需单击该图标就可以给他打电话:

http://itunes.apple.com/fr/app/speedtouch-the-best-home-screen/id378360978?mt=8
http://itunes.apple.com/fr/app/desktop-shortcut/id421701004?mt=8
http://itunes.apple.com/fr/app/appbutler-app-organizer/id327391626?mt=8
http://itunes.apple.com/fr/app/tap4music/id365578914?mt=8

所以我想,在运行时以编程方式更改应用程序图标仍然是不可能的吗?

【问题讨论】:

标签: iphone objective-c ios icons springboard


【解决方案1】:

更新

Apple 已更改此设置,您现在可以执行此操作:https://developer.apple.com/documentation/uikit/uiapplication/2806818-setalternateiconname

原答案

您在这里想到的是 WebClip,它们基本上是主屏幕上网站的快捷方式。实际应用程序无法在运行时更改其图标,因为它是在静态 Info.plist 文件中定义的。

此规则的唯一例外是报亭应用程序。

【讨论】:

  • 通过网站拨打电话?通过网站快捷方式打开 iTunes 专辑?你能解释一下如何做到这一点吗?那么通过快捷方式打开我的应用呢?
  • 您可能能够破解一些重定向并响应自定义 URL 方案以使其打开您的应用程序,但我以前从未尝试过类似的事情,所以我无法谈论它的完整性。
【解决方案2】:

更改您的实际图标(例如徽章除外)需要更改应用程序包。我很确定您没有对该捆绑包的写入权限,并且无论如何这应该会更改代码签名,从而导致操作系统阻止启动。

所以,不。应用可以放置网站链接,但不能更改自己的应用。

【讨论】:

  • 你是对的,app bundle 是只读的,主要是由于代码签名。
【解决方案3】:

现在可以在 iOS 10.3 中使用 UIApplication.setAlternateIconName(_:completionHandler:) API。

查看我对这个问题的回答:https://stackoverflow.com/a/44966454/233602

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2014-03-07
    • 2023-03-28
    • 1970-01-01
    • 2012-08-17
    • 1970-01-01
    • 2023-03-16
    相关资源
    最近更新 更多