美文网首页
利用XCode Targets创建多scheme的iOS项目

利用XCode Targets创建多scheme的iOS项目

作者: leacode | 来源:发表于2017-09-25 15:49 被阅读399次

    前言

    在我们的开发iOS的时候,通常会遇到一个项目打包成多个环境的问题,也会遇到一套代码打包成多个项目的问题,最常用的做法是写一个配置文件,在打包的时候修改一下配置文件,来达到打不同配置的包的目的。这里,我为大家介绍一种新的方式,可以大大提高打包时的效率,当然,因为我从苹果发布swift开始就开始用swift开发程序,这一篇教程是有关swift项目的配置,oc项目的配置我会另外写一篇文章来介绍。

    实现步骤

    1、创建一个程序,命名为TargetsDemo
    1506319920791.jpg
    2、右键点targets->TargetsDemo 并点击Duplicate
    1506320759810.jpg
    3、这里我们可以发现我们的项目出现了以下变化:
    • targets中多了一个名为TargetsDemo copy的项目


      1506320857318.jpg
    • 项目文件中多了一个TargetsDemo copy-Info.plist 的文件


      1506320910286.jpg
    • 点击左上角TargetDemo会多出了一个TargetsDemo copy的target


      1506321050026.jpg

    当然,大多数人都不能接受自动生成的copy为后缀的名字,而且TargetsDemo copy-Info.plist文件名也需要修改,首先我们来修改TargetsDemo copy-Info.plist, 将TargetsDemo copy-Info.plist重命名为TargetsDemoDev.plist 并拖动到info.plist同一个目录里.

    1506321391614.jpg

    同时把targets里的 TargetsDemo copy 也重命名为TargetsDemoDev, 由于修改了plist文件的名字和位置,我们需要在TargetsDemoDev这个target的Build Setting中将相应的配置做修改:


    1506321488865.jpg 1506321594869.jpg

    接下来,将左上角Manage Schemes中将Scheme的名字也改成TargetsDemoDev

    1506321710059.jpg 1506321710059.jpg 1506321738560.jpg

    今后我们选择此处不同的scheme就能打不同的包了

    4、实现不同的配置

    我们有了共享同一套代码的两个targets,有了能一键切换的schemes, 接下来我们就要实现不同的target打包的时候代码能够运行的两套配置的能力了。
    在TargetsDemoDev的build setting中找到Other Swift Flags这个项目,在里面添加 -DDEVELOPMENT


    1506324399785.jpg

    接下来就可以在代码里实现了,我们先来创建一个Config.swift的文件,创建的时候记得勾选TargetsDemoDev这个target:


    1506322406225.jpg

    这时我们在main.storyboard中的视图中添加一个label,并在代码中赋值为配置的symbol:

    #if DEVELOPMENT
        let symbol = "Development"
    #else
        let symbol = "Production"
    #endif
    
    1506322633625.jpg

    切换不同的scheme运行,我们可以看到显示的内容并不相同,这里的symbol可以换成不同环境的url,不同环境的标题等需要分开配置的内容。

    1506323102842.jpg 1506324404728.jpg
    5、What's more?
    • 如果你想给不同的target不同的icon,不同的启动界面,甚至不同的storyboard, 你可以创建另一个App icons, LaunchScreen.storyboard 或者storyboard, 并在TargetsDemoDev.plist中配置即可。
    • 如果想一套代码打包成不同项目,只需要在对应的target中配置对应的Bundle Identifier以及 Display Name即可。

    希望你能喜欢这篇教程,最后的demo可以从我的 github页面中下载:

    相关文章

      网友评论

          本文标题:利用XCode Targets创建多scheme的iOS项目

          本文链接:https://www.haomeiwen.com/subject/dxtdextx.html