本文来自网易云社区
作者:孙娇
严选iOS客户端的现有打包方式是通过远程连接打包机执行脚本去打包,打完包会输出相应的ipa的二维码,扫一扫二维码可以安装,但是随着测试队伍的壮大,外包同学越来越多,在打包机输入命令的方式可用度越来越低,手动输入命令的缺陷有:
1、必须手动输入分支名,和buildversion(手动计算自增)
2、远程连接打包机不稳定,经常断线,影响效率
3、切换分支不方便(还经常切换失败)
基于以上的各个问题,我决定改造一下现有的打包方式,让任何一个新来的测试同学都可以直接动手自己打包,最终定下的方案是:底层使用fastlane来执行打包(不要问我选它的原因,毕竟github上有2w的star,好处自然是多到不用说),然后使用Jenkins来执行打包脚本,最终依然生成二维码以供方便的扫码安装。
因此主要步骤分为:
1、安装fastlane,编写打包脚本(网上的教程多到数不过来,请自行搜索),主要的目录结构如下:
主要的就是Appfile和Fastfile文件,Appfile里主要存写的是app包的bundleID,teamID等内容(内容涉及app机密就不贴出来了),Fastfile里主要是存储打包的脚本,我的脚本参考:
default_platform:ios PROJECT_FILE_PATH = "./NeteaseYanxuan.xcodeproj"PLIST_FILE_PATH = "NeteaseYanxuan/NeteaseYanxuan.plist"OUTPUT_DIRECTORY = "/usr/local/var/www/Yanxuan"platform :ios do before_all do |lane, options| git_switch_branch(branch: options[:branch]) git_pull end #debug Build lane :debug do |options| update_info_plist( plist_path: "#{PLIST_FILE_PATH}", display_name: "网易严选push" ) update_app_identifier( xcodeproj: PROJECT_FILE_PATH, plist_path: "#{PLIST_FILE_PATH}", app_identifier: "com.ntes.yanxuan" ) branch_dir = options[:branch] version_number = options[:version] increment_version_number( version_number: "#{version_number}" ) gym( clean: "true", scheme: "NeteaseYanxuan", export_method:"enterprise",