fastlane

2018-12-03  本文已影响24人  大虾咪

1.初始化fastlane

fastlane init

2.在终端中,输入以下命令,即可安装蒲公英的 fastlane 插件。

fastlane add_plugin pgyer

3.修改fastlane文件夹里面的Fastlane

###将********对应替换成自己项目对应的
#测试包命令 (版本描述)
# fastlane develop desc:测试自动发包3.6.0B1

# 网络请求依赖
require 'net/http'
require 'uri'
require 'json'

#蒲公英api_key和user_key
pgyer_api_key  = "*****************"
pgyer_user_key = "*****************"

#下载地址
app_url = "*****************"
app_icon = "*****************"
#钉钉
DingTalkUrl = "*****************"



default_platform(:ios)

platform :ios do
  desc "Push a new release build to the App Store"
  lane :release do
    build_app(workspace: "*****************.xcworkspace", scheme: "*****************")
    upload_to_app_store
  end

  desc "测试包"
  lane :develop do |options|
    gym(
    #输出的ipa名称
    output_name:”*****************”,
    # 是否清空以前的编译信息 true:是
    clean:true,
    # 指定打包方式,Release 或者 Debug
    configuration:"Debug",
    # 指定打包所使用的输出方式,目前支持app-store, package, ad-hoc, enterprise, development
    export_method:"development",
    # 指定输出文件夹
    output_directory:"./fastlane/development",
    )
     puts "开始上传蒲公英"
     pgyer(api_key: “#{pgyer_api_key}”,
           user_key: “#{pgyer_user_key}”,
       password: "123", install_type: "2",
       update_description: options[:desc]
    )

     puts '开始钉钉'
     app_patch = "./fastlane/development/*****************.ipa"
     app_version = get_ipa_info_plist_value(ipa: app_patch, key: "CFBundleShortVersionString")
     app_build_version = get_ipa_info_plist_value(ipa: app_patch, key: "CFBundleVersion")
     app_name    = get_ipa_info_plist_value(ipa: app_patch, key: "CFBundleDisplayName")
     dingTalk_url = DingTalkUrl
     markdown = 
        {
            msgtype: "link", 
                link: {
                text: {
                   各位小姐姐、小哥哥 最新版本已发布,辛苦测试", 
                title: "iOS #{app_name} #{app_version} (#{app_build_version}) 内测版", 
                picUrl: "#{app_icon}", 
                messageUrl: "#{app_url}"
                }
        }
      uri = URI.parse(dingTalk_url)
      https = Net::HTTP.new(uri.host, uri.port)
      https.use_ssl = true

      request = Net::HTTP::Post.new(uri.request_uri)
      request.add_field('Content-Type', 'application/json')
      request.body = markdown.to_json

      response = https.request(request)
      puts "------------------------------"
      puts "Response #{response.code} #{response.message}: #{response.body}"

    
  end
    
end
上一篇下一篇

猜你喜欢

热点阅读