我可以通过编程方式更改app图标吗?

时间:2012-04-06 10:29:40

标签: ios icons

我内置了两个应用程序图标(免费和高级版),在应用程序内购买成功完成后,是否可以通过编程方式将免费图标替换为高级图标?

8 个答案:

答案 0 :(得分:13)

不,图标是在应用程序包中指定的,您不得更改该图标。如果您更改它,您的应用程序签名将变为无效(不是相同的校验和),因此您的应用程序将不再运行。

答案 1 :(得分:10)

这种情况有一种新的解决方案。

您可以使用

setAlternateIconName(_:completionHandler:)

iOS 10.3已经推出了xcode 8.3。

10.3+

更新:

用法非常简单,关键是找出plist的用法并注意你无法从xcassets加载资产(至少对我没用)。您需要将图标文件添加到项目中,并选择180x180图像以获得质量。

您需要使用"图标文件(iOS 5)",新的图标文件不起作用。

最后一件事,当您更改按钮上的图标时,它会弹出一个警告窗口,其中显示'您已更改" IcoTest"的图标。'

enter image description here

//ViewController.swift
@IBAction func ico1Click(_ sender: Any) {
    if UIApplication.shared.supportsAlternateIcons{
        UIApplication.shared.setAlternateIconName("Icon2", completionHandler: { (error) in
            print(error ?? "")
        })
    }else{
        print("NO NO")
    }
}

//Info.plist
<key>CFBundleIcons</key>
<dict>
    <key>CFBundleAlternateIcons</key>
    <dict>
        <key>Icon1</key>
        <dict>
            <key>CFBundleIconFiles</key>
            <array>
                <string>alternater1_180x180</string>
            </array>
            <key>UIPrerenderedIcon</key>
            <false/>
        </dict>
        <key>Icon2</key>
        <dict>
            <key>CFBundleIconFiles</key>
            <array>
                <string>alternater2_180x180</string>
            </array>
        </dict>
    </dict>
</dict>

答案 2 :(得分:3)

不,绝对不是。应用程序包的那部分是只读的,也是代码签名的。

关于TapOne应用程序的答案完全不同。它为网站或电话号码创建“网络剪辑”。例如,要为您的网站创建iPhone图标,您可以在网页标题中添加以下内容:

<link rel="apple-touch-icon" href="/your-custom-icon.png"/>

此处提供了更多信息:https://developer.apple.com/library/ios/documentation/AppleApplications/Reference/SafariWebContent/ConfiguringWebApplications/ConfiguringWebApplications.html

TapOne和网络剪辑不会以编程方式更改应用程序包中的图标。

答案 3 :(得分:1)

这是不可能的。应用程序图标不是动态的,只能通过iTunes Connect向您的应用程序提交新的更新来更新它们。有关详细信息,请阅读iTunes Connect开发人员指南。 https://itunesconnect.apple.com/docs/iTunesConnect_DeveloperGuide.pdf

答案 4 :(得分:1)

更新:自iOS 10.3起,您可以通过在info.plist中定义备用图标来更新应用程序图标。

Apple Docs

了解详情

答案 5 :(得分:0)

我不敢;非常确定应用程序图标不允许有条件地更改。

答案 6 :(得分:0)

如果没有越狱手机,我认为这是不可能的。应用程序图标包含在应用程序包中,您不能写入该文件夹。

答案 7 :(得分:-1)

我不同意上面的所有答案。 请尝试应用程序“OneTap”,它将允许您制作自己的新应用程序图标。 OneTap应用程序在Itune上免费。