我使用Xcode 6创建了两个版本的iOS应用程序:免费和付费。为了在视觉上区分彼此,我使用不同的背景颜色:免费版本是橙色而付费版本是红色。我在两个版本中使用一个单独的项目,并且全局布尔变量将整个应用程序从免费更改为付费(反之亦然)。
当然,所有图标也必须不同。我需要两个appicon套装:一个装有橙色图标,另一个装有红色图标。
所以我的问题是:如何在运行时以编程方式在两个appicon集之间切换?如何告诉我的项目,如果全局变量为false,则使用橙色图标集,如果为true则使用红色图标设置?
下一张图片说明两个appicon集,但如何在代码中调用它们?
这个想法是,如果到月底你忘了支付订阅费用,那么应用程序会变成橙色,然后你会在视觉上意识到你忘了支付,而在你支付应用程序后再次变成红色。
答案 0 :(得分:1)
您可以尝试以下iOS 10.3中介绍的方法 https://developer.apple.com/reference/uikit/uiapplication/2806818-setalternateiconname
答案 1 :(得分:0)
简短回答:你不能这样做。
答案很长:假设您想拥有一个付费应用和一个免费应用(与一个免费应用购买应用相比),您应该为您的免费和付费版本使用不同的targets。您可以为每个目标使用不同的info.plist文件,并在这些文件中指定要用作应用程序图标的图像。您也可以在那里更改应用程序和包名称,以便在App Store上有两个不同的应用程序。
添加一个标识目标的预处理器宏,然后您可以在代码中使用它来在编译时定义差异:
#ifdef LITE_VERSION
[self showAds];
#else
[self showUsefulInformation];
#endif
答案 2 :(得分:0)
Apple不允许在运行时切换App图标。因此无法在App图标之间切换。如果您需要这样做,请在iTunesConnect中使用不同的应用程序名称创建两个应用程序。