【问题标题】:Swift flags not workingSwift 标志不起作用
【发布时间】:2017-08-28 16:13:47
【问题描述】:

我正在开发一款我不想制作的应用,包括带有广告横幅的免费版本和不带广告横幅的付费版本。

我的想法是使用带有标志的#if 语句来指示何时显示广告横幅。

我所做的如下:

创建了两个目标,一个用于付费版本,一个用于免费版本。 像这样为免费版本目标创建一个标志:

viewDidLoad 方法中我添加了以下代码:

    #if FREE
    bannerView = GADBannerView(adSize: kGADAdSizeSmartBannerPortrait)
    self.view.addSubview(bannerView)
    bannerView.frame = CGRect(x: 0.0, y: self.view.frame.size.height - bannerView.frame.size.height, width: bannerView.frame.size.width, height: bannerView.frame.size.height)
    bannerView.adUnitID = ...
    bannerView.rootViewController = self
    bannerView.delegate = self
    bannerView.load(GADRequest())
    #endif

当我选择免费版本并运行代码时,它不会显示广告横幅。任何帮助表示赞赏,谢谢。

【问题讨论】:

  • 您使用的是发布方案吗?因为看起来您只为 Release 设置了标志。默认情况下,Xcode 会将应用程序作为 Debug 运行。
  • 使用#if DEBUG 作为调试条件,如果不在调试中,则在发布中
  • 它作为调试运行,现在它工作正常,我觉得很愚蠢。谢谢! :)
  • 为什么要使用构建标志?这意味着您需要两个版本 - 一个免费版本,带有.... IAP?所以他们购买了它——然后呢? (特别是如果他们是从免费应用程序购买的。)多年来已经确立了如何处理此问题的方法。 (我可能会添加一些关于 IAP 的教程。)没有人为此目的使用构建标志。现在,在查看了一些 IAP 教程(提示,他们大多使用 UserDefaults)之后,您可能需要了解为什么您还需要*恢复购买。

标签: ios swift


【解决方案1】:

默认情况下,Xcode 在 Debug 构建配置中运行构建。

如果您希望在从 Xcode 运行时按原样工作,则将标志添​​加到“其他 Swift 标志”中的调试方案或将您的方案更改为发布(产品 > 方案 > 编辑方案 > 运行 > 构建配置-- 更改为 Release — 不过我建议在此之后将其更改回来,不要让 Run 方案指向 Release,因为那样会使调试更加困难。)

如果您正在制作具有免费/付费版本的应用,您可能需要考虑研究应用内购买,如 cmets 中提到的 dfd。开发人员想要使用这样的 Swift 标志并非不可想象。但是,如果您要在 Xcode 中制作一个应用程序,但将其作为两个单独的应用程序分发到 App Store,那么通过这样的标志来处理可能会有点烦人。

【讨论】:

    猜你喜欢
    • 2015-09-28
    • 1970-01-01
    • 2018-11-08
    • 2023-03-26
    • 1970-01-01
    • 2011-10-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多