我有两个内置应用程序图标(免费和高级版),是否可以在应用程序内购买成功完成后以编程方式将免费图标替换为高级图标?我可以通过编程方式更改应用程序图标吗
回答
不,图标是在应用程序包中指定的,您不得更改该图标。如果你改变它,你的应用程序签名将变得无效(不同的校验和),因此你的应用程序将不再运行。
这是否也适用于内部应用程序,而不是通过公共App Store发布的应用程序? plist是不可变的吗? – 2015-02-03 23:25:00
恐怕不是;很确定应用程序图标不允许有条件地更改。
如果没有越狱手机,我不认为这是可能的。应用程序图标包含在您不允许写入的应用程序包中。
这是不可能的。应用程序图标不是动态的,它们只能通过iTunes Connect向您的应用程序提交新更新来更新。有关更多信息,请阅读iTunes Connect开发人员指南。 https://itunesconnect.apple.com/docs/iTunesConnect_DeveloperGuide.pdf
我不同意上面的所有答案。 请尝试应用程序“OneTap”,它会让你自己的图标你的新应用程序。 OneTap应用程序在Itune上免费。
我相信很多人有兴趣,如果这是可能的。请保留一个有效的URL链接或解决方案的源代码。 – Vincent 2013-10-21 12:23:21
这是不可能的! OneTap不会更改其自己的AppIcon。它只是打开Safari与选定的图像和用户应按保存到主屏幕。在此之后,您可以点击这个新的应用程序图标,将打开Safari浏览器,将您重定向到OneTap应用程序 因此,以编程方式更改应用程序图标是不可能的 – AlexPrinceton 2014-05-08 08:19:43
不,绝对不是。应用程序包的这一部分是只读的,并且还有代码签名。
有关TapOne应用程序的答案是完全不同的。它为网站或电话号码创建“网络剪辑”。例如,要创建为您的网站的iPhone图标,可以添加这样的事情到您的网页标题:
<link rel="apple-touch-icon" href="/your-custom-icon.png"/>
TapOne和网页剪辑不会编程更改应用程序包中的图标。
这种情况有一个新的解决方案。
您可以使用
setAlternateIconName(_:completionHandler:)
iOS的10.3出来和Xcode 8.3。
更新:
用法很简单,关键是要找出的plist用法和注意,你不能从xcassets加载资产(至少对我来说没有工作)。您需要将图标文件添加到项目中,并选择180x180图像以提高质量。
您需要使用“图标文件(iOS 5)”,新的图标文件不起作用。
最后一件事情是,当您更改按钮上的图标时,会弹出一个警报窗口,其中显示“您已更改”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>
尝试扩展您的答案。你还没有解释过这是UIApplication的一种方法,或者如何设置plist或任何东西。只是说'调用这个方法'对任何人都没有用。 – dlbuckley 2017-01-25 15:19:41
我想与大家分享这个令人兴奋的消息。我会和我一样分享一下如何做。很伤心这对你来说还不够。 – ymutlu 2017-01-25 18:29:18
这是令人兴奋的消息,你是正确的。但是你的回答并不能告诉我们如何使用这个新功能的全部内容,它的含义和实现细节。我投下了答案,因为就目前而言,这仅仅是为了获得选票而不是帮助任何人。如果你修改你的答案以充分解释功能,那么我会高兴地投票它:) – dlbuckley 2017-01-26 09:51:16
的更新:因为iOS的10.3可以由具有在info.plist中定义的备用图标更新的应用图标。
多见于Apple Docs
- 1. 是否可以通过编程方式更改应用程序图标?
- 2. 我可以通过我的应用程序以编程方式启用GPS吗?
- 3. 我可以更改我的iPhone应用程序大图标吗?
- 4. 我可以通过编程方式更新wix.com网站吗?
- 5. 以编程方式更改MediaController图标
- 6. 以编程方式更改ActionBar图标
- 7. 可以通过编程方式关闭iphone应用程序
- 8. 我可以通过网页以编程方式创建Chrome应用程序快捷方式吗?
- 9. 更改iPhone应用程序图标通过可可触摸
- 10. 我可以通过编程方式使用OneNote打印机驱动程序吗?
- 11. iOS 10.3 - 如何以编程方式更改应用程序图标
- 12. 如何以编程方式在Android中更改应用程序图标,2016
- 13. 如何以编程方式更改iPhone应用程序的默认图标?
- 14. 在Android中以编程方式更改应用程序名称和图标?
- 15. 以编程方式更改标签方向,编程方式
- 16. 是可以通过编程方式更改resourceProviderFactoryType?
- 17. 我可以通过编程方式增加按钮onclick-area吗?
- 18. 我可以通过编程方式设置SQLNET.AUTHENTICATION_SERVICES =(NONE)吗?
- 19. 我可以以编程方式将我的应用程序添加到应用程序栏吗?
- 20. Regd:通过Android应用程序以编程方式关闭应用程序
- 21. 通过编程方式更改背景
- 22. 编程方式更改通过JavaScript
- 23. 我可以通过.NET应用程序以编程方式查看托管堆内容吗?
- 24. 以编程方式通过其UI访问应用程序
- 25. 以编程方式更改UIButton标题
- 26. 我可以在动作中更改Adobe Air应用程序图标吗?
- 27. 可以通过代码隐藏iPhone应用程序的图标和图标吗?
- 28. 以编程方式访问应用程序的图标
- 29. 可以通过编程方式暂停Android上的通话吗?
- 30. 我可以通过编程方式更新log4j 1.2 xml配置文件吗?
由于iOS的'10.3'这是可能的!看看这个答案:http://stackoverflow.com/questions/41950994/is-this-possible-to-apply-the-alternative-icon-to-the-ios-application – KlimczakM 2017-03-30 12:16:58