jenkins
项目中测试组专用服务器上安装jenkins方便持续集成和交付。
jenkins是一个开源软件项目,是基于Java开发的一种持续集成工具,用于监控持续重复的工作,旨在提供一个开放易用的软件平台。安装流程请戳
fastlane
简单来说,以iOS应用发布流程为例,整个流程的各部分工作fastlane都能帮你完成。
主要突出的几个组件:
- sigh:生成并下载开发者证书
- produce:在iTunes Connector上创建你的应用
- gym:打包你的应用
- snapshot:实现应用截屏并取得图片
- pilot:将你的应用发布到TestFlight进行测试
- deliver:将你的应用的二进制代码,截屏和原数据等信息上传到AppStore
环境
安装fastlane
[sudo] gem install fastlane
命令行位置定位到目标Xcode项目根目录,然后执行如下
fastlane init
然后会有一些选项和输入项(AppId账号密码),按需输入即可,会进行一些相关的初始化
完成后项目根目录会生成一个fastlane文件夹,其中至少含有Appfile,Fastfile两个关键文件:
Appfile:记录你的项目,账号等关键信息,如包名,Apple ID,Team ID等;
Fastfile:关键的操作文件。根据你自己的需求,在其中定制自己的操作流;
Fastfile结构
default_platform(:ios)
platform :ios do
desc "Push a new build to TestFlight"
lane :package do
build_app(scheme: "FastlaneApp")
upload_to_testflight
end
end
fastlane的主要使用就是需要根据自己的需求定制自己的lane,lane里面加入各种各样的action即可。
Fastfile编写完毕后,使用fastlane + [lane名称]即可执行
使用终端定位到项目根目录,执行如下
fastlane [lane名称],如:
fastlane package
在jenkins中配置fastlane命令
APP打包命令
使用xcodebuild命令打包ipa
sh "xcodebuild -exportArchive -archivePath #{archive_path}.xcarchive -exportPath #{archive_path} -exportOptionsPlist #{plist_path}"
使用gradle命令打包apk
gradle(
task: "assemble",
build_type: "Release",
print_command: false,
properties: {
"tinkerEnable" => false,
"android.injected.signing.store.file" => "#{real_store_file}",
"android.injected.signing.store.password" => "#{store_password}",
"android.injected.signing.key.alias" => "#{key_alias}",
"android.injected.signing.key.password" => "#{key_password}",
}
)
OTA分发
上传到fir.im
fir命令行安装
[sudo] gem install fir-cli
sh "fir publish #{file_path} -T #{token} -c \"#{title}"
上传到蒲公英
sh "curl -F \"file=@#{file_path}\" -F \"uKey=#{pgyerUKey}\" -F \"_api_key=#{pgyerApiKey}\" -F \"updateDescription=#{title}#" -F \"publishRange=2\" http://www.pgyer.com/apiv1/app/upload"
上传到testflight
upload_to_testflight
参考文档:
Fastlane官方网页
Actions详细列解