2021-11-15 11:02:55 +08:00
|
|
|
|
# Customise this file, documentation can be found here:
|
|
|
|
|
# https://github.com/fastlane/fastlane/tree/master/fastlane/docs
|
|
|
|
|
# All available actions: https://docs.fastlane.tools/actions
|
|
|
|
|
# can also be listed using the `fastlane actions` command
|
|
|
|
|
|
|
|
|
|
# Change the syntax highlighting to Ruby
|
|
|
|
|
# All lines starting with a # are ignored when running `fastlane`
|
|
|
|
|
|
|
|
|
|
# If you want to automatically update fastlane if a new version is available:
|
|
|
|
|
# update_fastlane
|
|
|
|
|
|
|
|
|
|
# This is the minimum version number required.
|
|
|
|
|
# Update this, if you use features of a newer version
|
|
|
|
|
fastlane_version "2.153.1"
|
|
|
|
|
|
|
|
|
|
default_platform :ios
|
|
|
|
|
|
|
|
|
|
#声明
|
|
|
|
|
ENV["FASTLANE_APPLE_APPLICATION_SPECIFIC_PASSWORD"] = "pnpm-livf-iqwt-vjxq"
|
|
|
|
|
|
|
|
|
|
APP_NAME = "xplan-ios"
|
|
|
|
|
WORKSPACE = "xplan-ios.xcworkspace"
|
|
|
|
|
SCHEME = "xplan-ios"
|
|
|
|
|
IPA_NAME = "#{APP_NAME}.ipa"
|
|
|
|
|
START_DATE = Time.now.strftime('%Y-%m-%d %H:%M:%S %A')
|
|
|
|
|
START_TIME = Time.now
|
|
|
|
|
ENV_APPLESTORE = ""
|
|
|
|
|
CONFIGURATION = "Debug" # 默认是 Debug (可选 Release)
|
|
|
|
|
EXPORT_METHOD = "development" # 默认是 development (可选 ad-hoc,app-store)
|
|
|
|
|
OUTPUT_DIRECTORY = "./archive/#{CONFIGURATION}" # IPA 文件导出地址(符号表文件)
|
|
|
|
|
|
|
|
|
|
platform :ios do
|
|
|
|
|
before_all do
|
|
|
|
|
|
|
|
|
|
def colorize(text, color_code)
|
|
|
|
|
"\e[#{color_code}m#{text}\e[0m"
|
|
|
|
|
end
|
|
|
|
|
|
|
|
|
|
def green(text); colorize(text, 32); end
|
|
|
|
|
def magenta(text); colorize(text, 35); end
|
|
|
|
|
def cyan(text); colorize(text, 36); end
|
|
|
|
|
|
|
|
|
|
desc "project TuTu archive debug ipa to fir"
|
|
|
|
|
puts "" + magenta("====== 🚀🚀 project TuTu archive debug ipa to fir 🚀🚀 ======") + ""
|
|
|
|
|
puts "" + green("====== 🚀🚀 打包开始的时间为: #{START_DATE} ==== 🚀🚀 ======") + ""
|
|
|
|
|
|
|
|
|
|
#1. 开始前的一些操作,如代码更新(git_pull)
|
|
|
|
|
|
|
|
|
|
# git_pull # 拉取新代码
|
|
|
|
|
# # cocoapods(repo_update:true)
|
|
|
|
|
# sh "pod update"
|
|
|
|
|
end
|
|
|
|
|
|
|
|
|
|
# debug
|
|
|
|
|
desc "1. 发布iOS Dubug ipa 到 firim 网站"
|
|
|
|
|
lane :d do
|
|
|
|
|
|
|
|
|
|
CONFIGURATION = "Debug"
|
|
|
|
|
EXPORT_METHOD = "development"
|
|
|
|
|
archiveAction
|
|
|
|
|
end
|
|
|
|
|
|
|
|
|
|
# release
|
|
|
|
|
desc "2. 发布iOS Release ipa 到 firim 网站"
|
|
|
|
|
lane :r do
|
|
|
|
|
CONFIGURATION = "Release"
|
2022-05-25 10:57:09 +08:00
|
|
|
|
EXPORT_METHOD = "ad-hoc"
|
2021-11-15 11:02:55 +08:00
|
|
|
|
|
|
|
|
|
archiveAction
|
|
|
|
|
end
|
|
|
|
|
|
|
|
|
|
# appstore
|
|
|
|
|
desc "3. 发布iOS Release ipa 到 苹果商店"
|
|
|
|
|
lane :store do
|
|
|
|
|
|
|
|
|
|
ENV_APPLESTORE = "Apple Store"
|
|
|
|
|
CONFIGURATION = "Release"
|
|
|
|
|
EXPORT_METHOD = "app-store" # 默认是 development (可选 ad-hoc,app-store)
|
|
|
|
|
|
|
|
|
|
archiveAction
|
|
|
|
|
end
|
|
|
|
|
|
|
|
|
|
# archive
|
|
|
|
|
desc "4. 打包操作"
|
|
|
|
|
lane :archiveAction do
|
|
|
|
|
|
|
|
|
|
#git_pull" # 拉取新代码
|
|
|
|
|
# cocoapods(repo_update:true)
|
|
|
|
|
#sh "pod update"
|
|
|
|
|
|
|
|
|
|
#自动增加build
|
|
|
|
|
updateProjectBuildNumber
|
|
|
|
|
|
|
|
|
|
# 开始时间
|
|
|
|
|
startDate = Time.now.strftime('%Y-%m-%d %H:%M:%S %A')
|
|
|
|
|
startTime = Time.now
|
|
|
|
|
puts "" + magenta("====== 🚀🚀 打包开始的时间为: #{startDate} ==== 🚀🚀 ======") + ""
|
|
|
|
|
|
|
|
|
|
#gym配置,打包输出。
|
|
|
|
|
|
|
|
|
|
#fastlane gym --export_method ad-hoc
|
|
|
|
|
#fastlane gym --export_method enterprise
|
|
|
|
|
#fastlane gym --export_method app-store
|
|
|
|
|
#清除上一次的ipa文件
|
|
|
|
|
#clean_ipafile
|
|
|
|
|
#导出路径
|
|
|
|
|
# output_directory = "./archive/#{configuration}"
|
|
|
|
|
# 开始打包
|
|
|
|
|
gym(
|
|
|
|
|
# 指定打包所使用的输出方式,目前支持app-store, package, ad-hoc, enterprise, development
|
|
|
|
|
export_method: EXPORT_METHOD,
|
|
|
|
|
export_xcargs: "-allowProvisioningUpdates",
|
|
|
|
|
workspace: WORKSPACE,
|
|
|
|
|
# 指定打包方式,Release 或者 Debug
|
|
|
|
|
configuration: CONFIGURATION,
|
|
|
|
|
# 指定scheme的名字
|
|
|
|
|
scheme: SCHEME,
|
|
|
|
|
# 是否清空以前的编译信息 true:是
|
|
|
|
|
clean:true,
|
|
|
|
|
# 指定输出文件夹,这里会保存我们最后生成的ipa文件
|
|
|
|
|
output_directory: OUTPUT_DIRECTORY,
|
|
|
|
|
# 输出的ipa名称
|
|
|
|
|
output_name: IPA_NAME
|
|
|
|
|
)
|
|
|
|
|
|
|
|
|
|
if ENV_APPLESTORE == "Apple Store"
|
|
|
|
|
#do Something
|
|
|
|
|
uploadAppleStore
|
|
|
|
|
else
|
|
|
|
|
#do Otherthing
|
|
|
|
|
uploadToFirim
|
|
|
|
|
end
|
|
|
|
|
|
|
|
|
|
# 上传符号表
|
|
|
|
|
#upload_dSYM
|
|
|
|
|
|
|
|
|
|
# 统计结束时间
|
|
|
|
|
endDate = Time.now.strftime('%Y-%m-%d %H:%M:%S %A')
|
|
|
|
|
endTime = Time.now
|
|
|
|
|
|
|
|
|
|
# 输出打包开始时间 和 结束时间
|
|
|
|
|
puts "" + magenta("====== 🚀🚀 打包执行开始的时间为: #{START_DATE} ==== 🚀🚀 ======") + ""
|
|
|
|
|
puts "" + magenta("====== 🚀🚀 打包执行结束的时间为: #{endDate} ==== 🚀🚀 ======") + ""
|
|
|
|
|
|
|
|
|
|
# 输出总用时
|
|
|
|
|
SECONDS = endTime - START_TIME
|
|
|
|
|
UI.message("执行完毕,用时" + cyan("#{SECONDS}") + "秒")
|
|
|
|
|
|
|
|
|
|
end
|
|
|
|
|
|
|
|
|
|
# 上传到 firim
|
|
|
|
|
desc "5. 执行上传操作"
|
|
|
|
|
lane :uploadToFirim do
|
|
|
|
|
puts "" + magenta("====== 🚀🚀 ==== 执行上传到 fir 的命令 ==== 🚀🚀 ======") + ""
|
|
|
|
|
# fir 的配置信息
|
2023-03-23 16:13:05 +08:00
|
|
|
|
fir_cli api_token: "ed9d92c209718eb877522b2a716065ad", changelog: "Hello fir.im", specify_file_path:"#{OUTPUT_DIRECTORY}/#{IPA_NAME}"
|
2021-11-15 11:02:55 +08:00
|
|
|
|
# pgyer(api_key: "d1b2989cde5da7909baa2e7677104a48",
|
|
|
|
|
# user_key: "fe25d4bc286baf919209843d9cb45da0",
|
|
|
|
|
# ipa: "#{OUTPUT_DIRECTORY}/#{IPA_NAME}")
|
|
|
|
|
# puts "" + magenta("====== 🚀🚀 ------ 上传到 蒲公英 成功, 请查看 ------- 🚀🚀 ======") + ""
|
|
|
|
|
# UI.message("下载地址为:#{firimUrlPath} ")
|
|
|
|
|
end
|
|
|
|
|
|
|
|
|
|
#
|
|
|
|
|
desc "6. 发布到 Apple Store"
|
|
|
|
|
lane :uploadAppleStore do
|
|
|
|
|
|
|
|
|
|
deliver(force: false, skip_screenshots: true, skip_metadata: true)
|
|
|
|
|
puts "" + magenta("====== 🚀🚀 ------ 上传到 Apple Store 成功, 请查看 ------- 🚀🚀 ======") + ""
|
|
|
|
|
|
|
|
|
|
end
|
|
|
|
|
|
|
|
|
|
# 用于更新 App 的 build Num 的方法
|
|
|
|
|
desc "7. 用于更新 App 的 build Num 的方法"
|
|
|
|
|
lane :updateProjectBuildNumber do
|
|
|
|
|
|
|
|
|
|
# 获取当前时间
|
|
|
|
|
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
|
|
|
|
|
# 如果是当天的版本 格式为:2019122703 当天的年月日加上构建的次数 日期+build
|
|
|
|
|
build = "#{currentTime}#{lastStr}"
|
|
|
|
|
else
|
|
|
|
|
# => 非当天版本 build 号重置
|
|
|
|
|
build = "#{currentTime}01"
|
|
|
|
|
end
|
|
|
|
|
UI.message("*************| " + magenta("更新 Build #{build}") + " |*************")
|
|
|
|
|
# => 更改项目 build 号
|
|
|
|
|
increment_build_number(
|
|
|
|
|
build_number: "#{build}"
|
|
|
|
|
)
|
|
|
|
|
|
|
|
|
|
end
|
|
|
|
|
|
|
|
|
|
desc "8. 上传符号表操作"
|
|
|
|
|
lane :upload_dSYM do
|
|
|
|
|
#上传符号表到 bugly
|
|
|
|
|
|
|
|
|
|
bugly(app_id: "f80a6c7ccc",
|
|
|
|
|
app_key: "b3549e1a-11ae-40ed-8568-29b5b72c61a2",
|
|
|
|
|
symbol_type: 2,
|
|
|
|
|
bundle_id: "com.laihui.lookinglove",
|
|
|
|
|
product_version: "1.3.1",
|
|
|
|
|
channel: CONFIGURATION
|
|
|
|
|
)
|
|
|
|
|
|
|
|
|
|
end
|
|
|
|
|
|
|
|
|
|
lane :resigh do
|
|
|
|
|
resign(
|
|
|
|
|
ipa: "/Users/gzlx/Desktop/HAYO 2020-04-09 16-56-30/HAYO.ipa", # can omit if using the `ipa` action
|
|
|
|
|
signing_identity: "Apple Development: yikai xu (67DUV395JB)",
|
|
|
|
|
provisioning_profile: "/Users/gzlx/Desktop/HYAO证书/adhoc-3.mobileprovision", # can omit if using the _sigh_ action
|
|
|
|
|
)
|
|
|
|
|
end
|
|
|
|
|
|
|
|
|
|
lane :review do
|
|
|
|
|
deliver(
|
|
|
|
|
ipa: "#{OUTPUT_DIRECTORY}/#{IPA_NAME}",
|
|
|
|
|
force: true, # Skip HTMl report verification
|
|
|
|
|
skip_metadata: true,
|
|
|
|
|
skip_screenshots: true
|
|
|
|
|
)
|
|
|
|
|
end
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
# You can define as many lanes as you want
|
|
|
|
|
|
|
|
|
|
after_all do |lane|
|
|
|
|
|
# This block is called, only if the executed lane was successful
|
|
|
|
|
|
|
|
|
|
slack(
|
|
|
|
|
slack_url: "https://hooks.slack.com/services/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",
|
|
|
|
|
message: "Successfully deployed new App Update.",
|
|
|
|
|
payload: {"text": "{A very important thing has occurred! <https://fir.im/g9mv|Download> for details!"}
|
|
|
|
|
)
|
|
|
|
|
end
|
|
|
|
|
|
|
|
|
|
error do |lane, exception|
|
|
|
|
|
slack(
|
|
|
|
|
slack_url: "https://hooks.slack.com/services/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",
|
|
|
|
|
message: "打包失败了, 请查看原因",
|
|
|
|
|
success: false
|
|
|
|
|
)
|
|
|
|
|
end
|
|
|
|
|
end
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
# More information about multiple platforms in fastlane: https://github.com/fastlane/fastlane/blob/master/fastlane/docs/Platforms.md
|
|
|
|
|
# All available actions: https://docs.fastlane.tools/actions
|
|
|
|
|
|
|
|
|
|
# fastlane reports which actions are used
|
|
|
|
|
# No personal data is recorded. Learn more at https://github.com/fastlane/enhancer
|