美文网首页iOS消息推送
iOS配合Jenkins输出多个环境包

iOS配合Jenkins输出多个环境包

作者: 老孟 | 来源:发表于2018-05-06 16:27 被阅读232次

    上一文中,搭建好了Jenkins环境,自动化打包的第一步已经好了。
    这时如果测试妹子要打SIT的包,产品要打UAT的包,运营要打PRD的包,怎么搞?
    不能改一下代码,提交一下。然后再改动代码,打另外一个包吧。。。
    所以,此文就为了解决这个问题。

    利用Build Configuration来配置多环境

    原理就是一个Scheme对用一套环境(如:sit,uat,prd等等),然后每个环境又对应两个configuration(debug和release)。因此我们需要新建configuration与Scheme。

    1.新建configuration

    image.png

    点击加号新建,比如我们的这个项目有两个环境,UAT与PRD,每个环境下面又分debug与release,所以要新建4项。
    选中Duplicate "Debug" Configuration输入Debug-UAT。再重复操作,输入Debug-PRD。
    选中Duplicate "Release" Configuration输入Release-UAT。再重复操作,输入Release-PRD。
    结果如图所示。

    image.png

    2.新建Scheme,点击Manage Schemes。

    image.png
    点击加号,新增Scheme。同时别忘记勾选Shared,如果不勾选Shared,其他同事拉取代码是没有新增的Scheme的。 image.png

    3.编辑Scheme,点击Edit Scheme。

    image.png
    这里将Run的Build Configuration设置成debug。Archive设置成Release。同时也勾选Shared。

    4.新建User-defined Build Settings

    image.png

    添加CustomAppBundleld和CustomProductName。


    image.png

    5.进行pod install。

    6.配置和获取环境变量
    使用GCC预编译头参数GCC_PREPROCESSOR_DEFINITIONS
    我们进入到Build Settings里面,可以找到Apple LLVM Preprocessing,这里我们可以找到Preprocessor Macros在这里,我们是可以加一些环境变量的宏定义来标识符。Preprocessor Macros可以根据不同的环境预先制定不同定义的宏。

    1194012-427d4a19e32c41f2.png

    如上图,圈出来的地方其实就是一个标识符。

    因此,在这里我们可以添加我们自己想要的标识符,根据不同的环境,设置不同的标识符。


    image.png

    iOS判断代码如下


    image.png

    7.修改Jenkins配置
    这里我们实现了不同的Scheme对应不同的环境,但是我们在Jenkins构建之前,需要一个选择框,供测试妹子选择不同的环境。

    在参数化构建过程中,添加【选项参数】


    image.png image.png

    名称:// 参数名
    选项:// 选择项,每行一个。第一行的为默认选项。

    点击保存,这是进行构建,就会有选择框。在shell脚本中,使用${buildType}就可以取到选择的值。


    image.png

    8.修改shell脚本
    在xcodebuild archive之前,将scheme_name,development_mode参数,做个if判断,代码如下。

    if [ $buildType = UAT ];then
        echo '///-----------'  
        echo '/// 编译环境:UAT环境'  
        echo '///-----------'
        development_mode=Release-UAT
        scheme_name=apass-UAT
    else
        echo '///-----------'  
        echo '/// 编译环境:PRD环境'  
        echo '///-----------'  
        development_mode=Release-PRD
        scheme_name=apass-PRD
    fi
    

    此时,输出多个环境包就好了~~~

    相关文章

      网友评论

        本文标题:iOS配合Jenkins输出多个环境包

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