美文网首页iOS开发总结
使用 gitlab 自动打包

使用 gitlab 自动打包

作者: l蓝色梦幻 | 来源:发表于2018-05-07 14:32 被阅读1616次

    提及自动化打包工具一般都会想起 Jenkins。使用 Jenkins 配合 Gitlab,svn,github 等就可以配置自动化打包的操作。而且 Jenkins 功能很多很强大,不仅仅可以用于打包。但是如果仅仅是打包的话,而且公司自建有自己的 Gitlab,使用 Gitlab CI 完成自动化打包,可以减少程序员的操作步骤。

    Gitlab CI 原文地址

    iOS 程序代码的准备

    安装 xcpretty 支持 编译 信息友好显示

    创建工程

    1. Product > Scheme > Manage Schemes.


      SharedScheme.png
    2. 上传工程到 gitlab 上

    使用命令行来 Build iOS 项目

    1. 创建 ExportOptions.plist 文件。该文件包含有开发者账号与项目关联相关的配置,很重要。如果不想自己创建,使用 Xcode build 一次包之后就有了。

    2. iOS 打包过程分为两步。第一部分,构建 xcarchive 文件。第二部分,导出 ipa 包

      # 构建 xcarchive.  xcpretty -s 这部分是使用了 xcpretty 解析了 build 过程中的信息使之易读
      xcodebuild archive -archivePath ".build/Test.xcarchive" -workspace XXX.xcworkspace -scheme XXX -configuration Release -sdk iphoneos | xcpretty -s
      # 导出 ipa 包
      xcodebuild -exportArchive -archivePath ".build/Test.xcarchive" -exportPath ".build/Test" -exportOptionsPlist ".option.plist" | xcpretty -s
      

    关于生成的 ipa 包的上传问题

    我们使用的是蒲公英。改部分可以参考蒲公英的文档

    安装 Gitlab runner

    原文地址

    # 下载安装 Gitlab runner 
    sudo curl --output /usr/local/bin/gitlab-runner https://gitlab-runner-downloads.s3.amazonaws.com/latest/binaries/gitlab-runner-darwin-amd64
    # 给 Gitlab runner 添加运行权限
    sudo chmod +x /usr/local/bin/gitlab-runner
    

    准备数据。首先确保你是项目的 admin 或者 Owner。然后打开 Setting -> CI/CD,点击 Runner Settings 后面的 Expand,找到下面的数据:

    ProjectConfig1.png ProjectConfig2.png runnerconfig.png
    $ gitlab-runner register # 注意, 这里不能够使用sudo 提权, 否则不会连接到 gitlab 上
    WARNING: Running in user-mode.                     
    WARNING: Use sudo for system-mode:                 
    WARNING: $ sudo gitlab-runner...                   
                                                       
    Please enter the gitlab-ci coordinator URL (e.g. https://gitlab.com/):
    https://你的 Gitlab 地址/
    Please enter the gitlab-ci token for this runner:
    hYPyyxweyfDT154kgtxx
    Please enter the gitlab-ci description for this runner:
    [MBP.local]: lma-runner
    Please enter the gitlab-ci tags for this runner (comma separated):
    TestTag            
    Whether to run untagged builds [true/false]:
    [false]: true
    Whether to lock the Runner to current project [true/false]:
    [true]: true
    Registering runner... succeeded                     runner=hYPyyxwe
    Please enter the executor: docker, parallels, ssh, virtualbox, docker+machine, docker-ssh+machine, docker-ssh, shell, kubernetes:
    shell
    Runner registered successfully. Feel free to start it, but if it's running already the config should be automatically reloaded! 
    
    
    $ gitlab-runner install
    $ gitlab-runner start
    
    runnerconfigs.png

    当看到如下的时候, 配置成功:


    runnerconfigsuccess.png
    1. 配置 .gitlab-ci.yml 文件
    stages:
      - archive
    
    archive_project:
      stage: archive
      script:
        - export LANG=en_US.UTF-8
        - pod install
        - xcodebuild archive -archivePath ".build/Test.xcarchive" -workspace XXX.xcworkspace -scheme XXX -configuration Release -sdk iphoneos | xcpretty -s
        - xcodebuild -exportArchive -archivePath ".build/Test.xcarchive" -exportPath ".build/Test" -exportOptionsPlist ".option.plist" | xcpretty -s
        - curl -F 'file=@.build/Test/XXX.ipa' -F '_api_key=xxxx' -F 'buildInstallType=2' -F 'buildPassword=XXX' https://www.pgyer.com/apiv2/app/upload
      artifacts:
        paths:
        - .build/Product
        - .build/Test
        expire_in: 2 h
      tags:
        - TestTag
    

    至此,一个简单的 Gitlab 打包环境就已经配置好了。

    关于 Yml 的简介,Gitlab CI 使用高级技巧会专门说这里。

    相关文章

      网友评论

        本文标题:使用 gitlab 自动打包

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