美文网首页
Jenkins+Fastlane

Jenkins+Fastlane

作者: b401a2d97ff2 | 来源:发表于2019-01-22 14:06 被阅读4次

    iOS項目持续集成思路

    1. 部署fastlane,实现本地用fastlane匹配证书、描述文件以及打包(主要);
    2. 部署Jenkins,实现Jenkins的流程和fastlane结合構建;
    3. 远程构建:考虑是否外网要能访问内网的Jenkins服务。

    Fastlane

    • 先决条件-fastlane是ruby脚本集合,检查ruby版本➜ ruby -v;检查是否安装了Xcode CLT➜xcode-select --install
    • 配置fastlane➜ brew cask install fastlane或➜ sudo gem install -n /usr/local/bin fastlane --verbose
    • Ruby源更换➜gem sources --add https://gems.ruby-china.com --remove https://rubygems.org/
    • 打开终端并cd进入你的项目位置➜ fastlane init,根据提示操作后会在项目目录下生成fastlane文件夹和Gemfile
    • Xcode打开项目,【Manage Schemes】中项目scheme勾选【Shared】
    • 编辑Fastfile,创建个性化的lane通道,保存后在终端➜ fastlane+【lane名字】执行lane.
    • Appfile -用于存储应用程序标识符和Apple ID。
    • Fastfile -用于管理您创建的用于调用某些操作的通道(自定义)
    • sudo xcode-select --switch /Applications/Xcode.app/Contents/Developer 确保xcodebuild安装好;
      build_app(即gym)打包示例lane
      (➜ fastlane action gym 终端可显示所有可配置项http://www.code4app.com/blog-859519-21223.html)
    ##Fastfile
    default_platform(:ios)
    
    platform :ios do
      desc "AppStore IPA"
      lane :beta do
        build_app(workspace: "XX.xcworkspace",
                     scheme: "XX",
            include_bitcode: false,
            include_symbols: false,
           output_directory: "./fastlane/output_directory",
              export_method: "app-store")
      end
    
      desc "In-House IPA"
      lane :enterprise do
        build_app(workspace: "XX.xcworkspace",
                     scheme: "XX",
            include_bitcode: false,
            include_symbols: false,
           output_directory: "./fastlane/output_directory",
              export_method: "enterprise")
      end
    
      desc "Ad_Hoc IPA"
      lane :adhoc do
        build_app(workspace: "XX.xcworkspace",
                     scheme: "MassOrganizations",
            include_bitcode: false,
            include_symbols: false,
           output_directory: "./fastlane/output_directory",
              export_method: "ad-hoc")
      end
    end
    

    PS--fastlane安装完不默认export的情况下:
    Add the following line to your bash profile:
    export PATH="HOME/.fastlane/bin:PATH"
    You can either close the terminal session and restart it or run source ~/.bash_profile to load your configuration and then you can go so you start using fastlane

    Jenkins 配置 SVN/GIT

    • 安装Jenkins,依赖JDK➜ /usr/libexec/java_home -V 查看java版本,https://link.jianshu.com/?t=http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html
      下载JDK安装包进行安装,OK后到Jenkins官网下载安装包安装(安装过程中取消勾选start at boot as "jenkins")或➜brew install jenkins;
    • 安装完成后➜ java -jar /Applications/Jenkins/jenkins.war –httpPort=8080 启动Jenkins(若是brew安装的话直接➜ jenkins启动就好了),
    • 打开http://localhost:8080会出现重设初始密码的界面。根据界面中的路径提示去相应文件中取出密码,接着按提示创建管理员用户,配置建议的插件,若失败就retry,确保git和subversion安装。
    sudo cat /Users/Shared/Jenkins/Home/secrets/initialAdminPassword
    
    • 【新建任务】构建一个【自由风格的软件项目】
    • 项目【配置】
    • 【General】-【高级】,勾选【使用自定义的工作空间】,目录输入自定义的工作空间,显示名称可随意;
    • 【源代码管理】,勾选【Subversion】,【Repository URL】输入SVN链接,具体到项目路径,【Credentials】添加SVN账户并选择;
    • 【构建】可选择【执行shell】,➜ cd 【项目路径】下,通过fastlane打包;
    • 若打包完成需要上传,借助curl这个文件传输工具。

    PS-卸载Jenkins
    ➜cd /Library/Application Support/Jenkins/Uninstall.command
    ➜sudo rm -rf /var/root/.jenkins ~/.jenkins

    远程构建

    • 最简思路-以融云为媒介实现端到端的连接,从而触发Jenkins项目构建;
    • 构建机-创建iOS-Project,集成RongIMLib,实现Token(融云控制台可生成)登录并监听消息,判断是否触发构建相应的Task,若触发则调用WebView加载对应JenkinsToken;
    • 触发机-创建iOS-Project,集成RongIMLib,实现Token(融云控制台可生成)登录,由用户点击按钮发送预设消息至构建机融云账号。
    后记

    懒人整理码字不易,感兴趣的给个赞或者关注O(∩_∩)O哈!

    相关文章

      网友评论

          本文标题:Jenkins+Fastlane

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