2017-08-28 56 views
0

我正在开发一款应用程序,我不想在免费版中使用广告横幅和付费版本制作没有广告横幅的应用程序。Swift flags not working

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

我做什么是以下几点:

创建了两个目标,一个是付费版本,一个是免费版。 创建一个标志的免费版本的目标是这样的:

Other Swift Flags

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 

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

+0

您使用的发行计划?因为它看起来像只设置了Release的标志。默认情况下,Xcode将以Debug的形式运行应用程序。 – shim

+0

使用#if DEBUG为您的调试条件,如果不在调试中,则在发布中,然后 –

+0

检查此[有条件编译 - 检查方案](https://stackoverflow.com/questions/45659435/conditional-compilation-check-scheme/45660466 #45660466) –

回答

0

默认情况下,Xcode运行构建调试构建配置。

如果您想从Xcode运行时按原样运行,请将该标志添加到“其他Swift标志”中的调试方案或将您的方案更改为Release(产品>方案>编辑方案>运行>构建配置 - 更改为发布 - 我建议将其更改回来后,不要将Run方案指向Release,因为这会使调试更加困难。)

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