zoukankan      html  css  js  c++  java
  • Mac下使用Jenkins打包IOS和安卓APP

            在项目中,依赖开发手动打包效率低且版本控制不稳定。 测试人员需要掌握独立环境部署能力才是正途。

    一、选择Mac系统的原因

          因为要打包IOS的APP, IOS的编译环境是Xcode,这个需要安装在Mac系统上。  所以如果要编译IOS并打包,则要使用Mac系统。

     

    二、Jenkins分布式构建

      1、在使用jenkins自动构建时,我们可能包含服务端、前端、客户端APP(安卓和IOS)等编译构建。 服务端语言又分为java、.net、.net core 、C++等,每种编程语言的编译环境及方法均不一样。

        如果在一个服务器上搭建环境,就会很杂乱。需要编译构建的程序多了,构建服务器本身的资源使用也会成为瓶颈。  所以后期发展成熟,建议使用分布式构建。  jenkins支持Master/Slave的主从架构来实现。

      2、主从架构

        1、jenkins服务器为主节点,处理调度构建作业。

        2、主机进行构建任务分发,从机来具体执行

        3、监视从机节点,记录从机的构建结果

       主从最终实现的效果图:     (本期主要讲述APP打包,主从架构概过,感兴趣的同学可以自行百度实践)

    三、APP打包环境准备

      1、jenkins环境 (有文件安装和命令行安装,推荐使用命令行安装)

        a、安装jenkins前需要安装jdk,版本1.8以上

        b、文件安装:官网下载 https://jenkins.io/zh/download/  (根据搭建服务器环境自由选择,本次我们需要构建IOS的IPA包,选择 Mac os)

          

            命令安装:

                1、先需要安装软件包home brew,直接在终端对话框中敲    /usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"

                2、查看brew是否安装成功:    brew -v

                  能显示版本号即安装成功 

                3、直接命令行安装jenkins  : brew install jenkins    (因为我已安装,所以显示此提示)

             c、在浏览器中输入http://localhost:8080,首次安装应该会出现如下界面,这里需要你去找到Jenkins的初始密码。  密码在如下的 红色提示路径下

          

               d、后续都采用默认安装,即可完成安装 

      2、xcode下载安装  (xcode可以直接在appstore中下载及安装,此文件有点大  有接近10g)

        

      

      3、安卓打包工具 android-sdk安装:

        a、Android-sdk 资源站点 http://www.androiddevtools.cn  ,一直下一步安装

         

        b、android-sdk安装完成后,找到android-sdk/tools 安装路径,双击 android程序,唤出SDK Manager

         

        c、更新sdk组件  (由于谷歌被墙了,所以某些sdk无法更新,需要设置国内镜像站点)    

          Mac顶部菜单点击Android SDK Manager -> Preferences

          HTTP Proxy Server填写:mirrors.neusoft.edu.cn

          HTTP Proxy Port填写:80

          勾选Force https:// ,然后点击“Close”

        

          Mac顶部菜单点击Tools -> Manage Add-on Site,选择右侧“User Defined Sites”:    

            把下面这堆网址:

                http://mirrors.neusoft.edu.cn/android/repository/addon-6.xml 
                http://mirrors.neusoft.edu.cn/android/repository/addon.xml    
                http://mirrors.neusoft.edu.cn/android/repository/extras/intel/addon.xml    
                http://mirrors.neusoft.edu.cn/android/repository/sys-img/android-tv/sys-img.xml    
                http://mirrors.neusoft.edu.cn/android/repository/sys-img/android-wear/sys-img.xml    
                http://mirrors.neusoft.edu.cn/android/repository/sys-img/android/sys-img.xml    
                http://mirrors.neusoft.edu.cn/android/repository/sys-img/google_apis/sys-img.xml    
                http://mirrors.neusoft.edu.cn/android/repository/sys-img/x86/addon-x86.xml    
                http://mirrors.neusoft.edu.cn/android/repository/addons_list-2.xml    
                http://mirrors.neusoft.edu.cn/android/repository/repository-10.xml

             全手动New加进去,然后就可以下载了,点击

             

    四、jenkins中环境变量配置

      1、Android环境变量配置 ,在 系统管理-系统设置中添加 Android_Home

          

        

      2、gradle配置

        在 系统管理-全局工具配置中 添加一个gradle版本。  我们编译使用的V4.6 

    五、Android打包工程配置

      1、创建一个自由风格的工程

        

      2、旧的构建数据丢弃 

           

      3、源码拉取,可以选择svn或者git,看项目使用的配置管理工具

              

      4、设置构建触发策略,我这里选择的定时触发(6点和12点自动构建打包)

            

      5、编译构建并将编译的包放到共享目录 

            1、测试环境或线上环境的编译任务assembleBetaDebug,可以咨询安卓开发。(如果开发没有设置打包渠道,可以手动在代码路径 app/build.gradle下加入此代码)

            

        

            2、添加一个Execute shell,将生成的apk包转移到共享目录下。  (大多人使用的windows的办公电脑,取包不方便,放到共享目录后 取包很方便了)

            

    cp ./app/build/outputs/apk/beta/debug/app-beta-debug.apk /Users/mjb/Desktop/CI/android_new_trunk.apk
    mv ./app/build/outputs/apk/beta/debug/app-beta-debug.apk /Users/mjb/Desktop/CI/android/trunk/xxx-${BUILD_ID}.apk

      

      

        放到共享目录后,取包方便很多 、    另外也可以考虑将包放到蒲公英平台或者生成固定二维码,直接下载。

    六、IOS打包工程配置

      1、前面配置省略,跟安卓类似

        2、使用shell脚本编译  (jenkins对于xcode插件兼容性不好,所以建议调用shell执行xcodebuild脚本来编译)

         第一个的shell是编译xcodebuild,第二个shell是变换共享目录

        

        

    #!/usr/bin/env bash
    #xcodebuild clean -workspace /Users/mjb/.jenkins/workspace/mjd-app-ios/Sales.xcworkspace -sdk iphoneos -scheme "Sales" -configuration "Debug" archive #Release
    xcodebuild -archivePath "/Users/mjb/.jenkins/workspace/mjd-app-ios/build/Sales.xcarchive" -workspace /Users/mjb/.jenkins/workspace/mjd-app-ios/Sales.xcworkspace -sdk iphoneos -scheme "Sales" -configuration "Debug" archive
    xcodebuild -exportArchive -archivePath "/Users/mjb/.jenkins/workspace/mjd-app-ios/build/Sales.xcarchive" -exportPath "/Users/mjb/.jenkins/workspace/mjd-app-ios/build/Sales_debug" -exportOptionsPlist '/Users/mjb/.jenkins/workspace/mjd-app-ios/build/ExportOptions.plist' -allowProvisioningUpdates

    注意,在编译前需要将这两个文件复制到对应目录 

    最后实施完成的效果 :

    安卓和IOS都能成功打包 apk和ipa了 

                  

        

  • 相关阅读:
    对scott中emp表进行各种操作
    可兼容的事件绑定方法
    深度复制
    原型链的继承
    如何在github上发布自己的项目
    用单例连接oracle数据库
    Struts2之输入验证
    JSP之监听器Listener(二)
    JSP之监听器Listener(一)————————ServletContextListener
    JSP之过滤器Filter
  • 原文地址:https://www.cnblogs.com/jsondai/p/11364793.html
Copyright © 2011-2022 走看看