美文网首页
Fastlane+Jenkins实现iOS自动化打包上传

Fastlane+Jenkins实现iOS自动化打包上传

作者: 这个汤圆没有馅 | 来源:发表于2018-08-01 14:28 被阅读0次

    FastLane安装与配置

    • 确认是否安装ruby,版本号要大于2.0。如未安装,移步百度。
    ruby -v
    
    • 确认是否安装Xcode命令行工具
    xcode-select --install
    
    如出现xcode-select: error: command line tools are already installed, use "Software Update" to install updates则已安装,否则会出现提示框,点击安装即可。

    • 安装fastlane
    sudo gem install fastlane
    
    • cd 进入工程初始化
    fastlane init
    
    1.自动截屏。这个功能能帮我们自动截取APP中的截图,并添加手机边框(如果需要的话)
    2.自动发布beta版本用于TestFlight
    3.自动发布到AppStore
    4.手动管理设置
    (ps:可根据自己需要选择,我选择的是4)
    如果你在这个bundle update页面卡很久很久,那么就是被墙了。解决办法:
    1).进入工程找到Gemfile文件
    2).将source "https://rubygems.org" 改成 source "https://ruby.taobao.org"
    3).在终端Ctr + Z取消之前操作,输入bundle update即可

    • 安装蒲公英的Fastlaen插件
    fastlane add_plugin pgyer
    
    成功之后,我们能在工程目录下看到以下红框里的几个文件。
    • Fastlane配置
    1). 实现build号递增,修改Build Setting中的Versioning配置。
    2).配置Fastfile文件
    # 定义fastlane版本号
    fastlane_version “2.46.1” 
    
    # 定义打包平台
    default_platform :ios
    
    def updateBuildNumber
    
    currentTime = Time.new.strftime("%Y%m%d")
    build = get_build_number()
    if build.include?"#{currentTime}."
    # => 为当天版本 计算迭代版本号
    lastStr = build[build.length-2..build.length-1]
    lastNum = lastStr.to_i
    lastNum = lastNum + 1
    lastStr = lastNum.to_s
    if lastNum < 10
    lastStr = lastStr.insert(0,"0")
    end
    build = "#{currentTime}.#{lastStr}"
    else
    # => 非当天版本 build 号重置
    build = "#{currentTime}.01"
    end
    puts("*************| 更新build #{build} |*************")
    # => 更改项目 build 号
    increment_build_number(
    build_number: "#{build}"
    )
    end
    
    #指定项目的scheme名称
    scheme=“xxxxx”
    #蒲公英api_key和user_key
    api_key=“”
    user_key=“”
    
    # 任务脚本
    platform :ios do
    lane :development_build do|options|
    branch = options[:branch]
    
    puts “begin packing development ipa”
    
    updateBuildNumber #更改项目build号
    
    # 开始打包
    gym(
    #输出的ipa名称
    output_name:”#{scheme}_#{get_build_number()}”,
    # 是否清空以前的编译信息 true:是
    clean:true,
    # 指定打包方式,Release 或者 Debug
    configuration:"Release",
    # 指定打包所使用的输出方式,目前支持app-store, package, ad-hoc, enterprise, development
    export_method:"development",
    # 指定输出文件地址
    output_directory:"./fastlane/build",
    )
    
    puts "开始上传蒲公英"
    # 开始上传蒲公英
    pgyer(api_key: “#{api_key}”, user_key: “#{user_key}”)
    
    end
    end
    
    
    (ps: scheme可以设为自己项目名称,蒲公英的 api_key 和 user_key,开发者在自己账号下的 账号设置-API信息 中可以找到。)
    3). 打包上传蒲公英
    fastlane development_build
    

    Jenkins安装及配置

    1).安装Java运行环境 (Kit 8 为佳)
    2).下载最新版Jenkins.war
    3).终端进入war包所在目录,执行命令java -jar jenkins.war安装
    4).完成之后浏览器打开http://localhost:8080/。如果无法连接浏览器,那么应该是8080端口被占用,切换端口,再重新打开浏览器。
    // 8081端口,也可为其他未被占用的端口号
    java -jar jenkins.war --ajp13Port=-1 --httpPort=8081
    
    5).安装插件。(Jenkins输入安全密码及安装界面等等这里跳过)
    选择系统管理 - 管理插件,安装GitLab插件(GitLab Plugin和Gitlab Hook Plugin) + 安装Xcode插件(Xcode integration)
    6).构建项目,⭐️构建一个自由风格的软件项目
    7).配置Git
    URL必须为public属性的项目地址,否则会报错
    Credentials配置,点击Add,如下图。如果URL是Http,类型选Username with password,用户名密码自己设置。如果URL是SSH,类型选SSH Username with private key,还需要配置私钥。
    8).脚本配置,需要cd进入工程目录
    9).Build
    点击立即构建,下面会有构建记录。蓝色表示成功,红色表示失败,同时还可以在控制台看构建信息。

    Jenkins构建成功后,相应的蒲公英也有了最新测试包。以后只要点击一个按钮,就不用再管,省时省力。

    相关文章

      网友评论

          本文标题:Fastlane+Jenkins实现iOS自动化打包上传

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