我有两个应用程序图标(免费和高级版),在应用内完成购买后,是否可以通过编程将免费图标替换为高级图标?
这种情况有一个新的解决方案。
你可以使用
setAlternateIconName(_:completionHandler:)
iOS 10.3已经发布,附带xcode 8.3。
更新:
用法相当简单,关键是找到 plist 的使用方法,并注意不能从 xcassets 加载资源(至少对我来说不起作用)。您需要将图标文件添加到项目中,优选180x180像素的高质量图像。
您需要使用“Icon files (iOS 5)”选项,新的 Icon files 不起作用。
最后一件事,在按钮点击时更改图标会弹出一个警告窗口,显示“您已更改“IcoTest”的图标。”
//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>
不,图标是在应用程序包中指定的,您不能更改它。如果更改了图标,您的应用程序签名将变为无效(校验和不同),因此您的应用程序将无法再运行。
<link rel="apple-touch-icon" href="/your-custom-icon.png"/>
这是不可能的。应用程序图标不是动态的,它们只能通过通过iTunes Connect提交新的更新来进行更新。有关更多信息,请阅读iTunes Connect开发人员指南。https://itunesconnect.apple.com/docs/iTunesConnect_DeveloperGuide.pdf
恐怕不行,我很确定应用程序图标不能有条件地更改。
我认为没有越狱的手机是不可能实现的。应用程序图标包含在应用程序包中,您无法对其进行写入。
我不同意以上所有的答案。 请尝试使用应用程序"OneTap",它将允许您制作自己新应用程序的图标。 OneTap应用程序在Itune上是免费的。
10.3
版本以后,这是可能的!请查看以下答案:https://dev59.com/rFgQ5IYBdhLWcg3w9Yvk - KlimczakM