前言
有时候一天需要打好几个包,为了区分,我这里实现一个递增 build 号的功能。
1. 配置Xcode 项目工程
修改 Build Settings 中的 Versioning 配置 ,Versioning System 选择 Apple Generic。
2. 编辑 Fastfile 文件
2.1 定义一个递增 build 号的函数,添加到 Fastfile 中
build 自增函数
def updateProjectBuildNumber
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
Fastfile整体内容
# 定义打包平台
default_platform(:ios)
def updateProjectBuildNumber
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
# 任务脚本
platform :ios do
desc "Description of what the lane does"
# 打包时候用的名称 例如 fastlane app
lane :app do
#更改项目build号
updateProjectBuildNumber
gym(
# 每次打包之前clean一下
clean: true,
# 打包出 ipa 文件的路径,我放到了桌面文件夹,你自行更改文件夹
output_directory: '/Users/hengqianjin/Desktop/App',
# 打包的名称,可任意取
output_name: 'app.ipa',
# 项目的 scheme,自己项目名 .xcworkspace 前面的项目名就是
scheme: 'Farm',
# 默认 Release,Release or Debug
configuration: 'Debug',
# 是否包含 bitcode
include_bitcode: false,
# 是否包含 symbols
include_symbols: true,
# 打包导出方式,包含 app-store, validation, ad-hoc, package, enterprise, development, developer-id and mac-application
export_method: 'development',
# 这个设置是为了设置 xcode 自动配置证书和配置文件,当然也可以手动配置,可以参考文档
export_xcargs: '-allowProvisioningUpdates'
)
#配置上传蒲公英账号 蒲公英的 api_key和 user_key 用自己蒲公英账号的,别用我的!!!如果没有可删除
pgyer(api_key:'fbf25d2a525e12d5084b0ae09098ab7b', user_key: '12bba6204bd7c3e26375f653f8086358', update_description: "测试fastlane自动打包")
# mac上的通知弹窗,通知打包完毕
notification(app_icon: "./fastlane/icon.png", title: "打包成功提示", subtitle: "打包成功,已导出安装包", message: "准备发布到蒲公英中……")
end
end
3、运行fastlane 之后
当然,里面的build 格式你可以自行调整
最后: 我只是把别人文章的部分内容摘抄出来而已, 以方便自己查看使用,以及理解
参考文章
iOS 自动化打包发布(Jenkins + Fastlane + GitLab + 蒲公英)