【问题标题】:Programmatically switch between appicon-sets at runtime在运行时以编程方式在 appicon 集之间切换
【发布时间】:2015-05-10 21:11:27
【问题描述】:

我使用 Xcode 6 创建了两个版本的 iOS 应用程序:免费和付费。为了从视觉上区分一种,我使用不同的背景颜色:免费版是橙色,而付费版是红色。我对两个版本都使用了一个项目,并且一个全局布尔变量将整个应用程序从免费更改为付费(反之亦然)。

当然,所有图标也必须不同。我需要两个 appicon 集:一个带有橙色图标,另一个带有红色图标。

所以我的问题是:如何在运行时以编程方式在两个 appicon 集之间切换?如何告诉我的项目,如果全局变量为 false,则使用橙色图标集,如果为 true,则使用红色图标集?

下一张图片说明了两个 appicon 集,但是如何在代码中调用它们?

我们的想法是,如果到月底您忘记支付订阅费用,应用会变为橙色,然后您会在视觉上意识到自己忘记支付,并且在您支付后应用会再次变为红色。

【问题讨论】:

  • 抱歉,这个功能是不可能的,您必须创建一个付费版本和一个免费版本,其标志类似于Cornelius 建议的标志。
  • 您可以随时在您的应用中实现自定义主题管理器,但目前并不真正支持在资产之间进行切换。
  • 因为iOS 10.3 这是可能的! stackoverflow.com/questions/41950994/…

标签: ios xcode6


【解决方案1】:

【讨论】:

    【解决方案2】:

    简短回答:你不能那样做。

    长答案:假设您想要一个付费应用程序和一个免费应用程序(与一个应用程序内购买的免费应用程序相反),您应该为免费和付费版本使用不同的targets。您可以为每个目标使用不同的 info.plist 文件,并在这些文件中指定要用作应用程序图标的图像。您还可以在此处更改应用程序和捆绑包名称,以便在 App Store 上拥有两个不同的应用程序。

    添加一个识别目标的预处理器宏,然后您可以在代码中使用它来定义编译时的差异:

    #ifdef LITE_VERSION
        [self showAds];
    #else
        [self showUsefulInformation];
    #endif
    

    【讨论】:

      【解决方案3】:

      Apple 不允许在运行时切换应用图标。因此无法在 App 图标之间切换。如果您需要这样做,请在 iTunesConnect 中创建两个具有不同应用名称的应用。

      【讨论】:

        猜你喜欢
        • 2012-05-02
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2014-10-09
        相关资源
        最近更新 更多