脚本自动化打包

最近尝试过自动化打包,之前有发过一篇Jenkins + SVN + Cocoapods 实现iOS自动化打包
关于自动化打包网上有很多教程,选择自己需要的就行了,今天跟大家介绍下脚本自动化打包
fastlane gym
facebook xctool
使用fastlane gym打包
1.安装gym

sudo gem istall gym

如果安装出现Permition denied的提示
gem install -n /usr/local/bin gym

2.安装fir-cli
gem install fir-cli

3.fastlanede 打包脚本
#!/bin/bash#计时 SECONDS=0#假设脚本放置在与项目相同的路径下 project_path=$(pwd) #取当前时间字符串添加到文件结尾 now=$(date +"%Y_%m_%d_%H_%M_%S")#指定项目的scheme名称 scheme="tete" #指定要打包的配置名 configuration="development" #指定打包所使用的输出方式,目前支持app-store, package, ad-hoc, enterprise, development, 和developer-id,即xcodebuild的method参数 export_method='development'#指定项目地址 workspace_path="$project_path/tete.xcworkspace" #指定输出路径 output_path="/Usersengxun/Desktop/" #指定输出归档文件地址 archive_path="$output_path/tete_${now}.xcarchive" #指定输出ipa地址 ipa_path="$output_path/tete_${now}.ipa" #指定输出ipa名称 ipa_name="tete_${now}.ipa" #获取执行命令时的commit message commit_msg="$1"#输出设定的变量值 echo "===workspace path: ${workspace_path}===" echo "===archive path: ${archive_path}===" echo "===ipa path: ${ipa_path}===" echo "===export method: ${export_method}===" echo "===commit msg: $1==="#先清空前一次build gym --workspace ${workspace_path} --scheme ${scheme} --clean --configuration ${configuration} --archive_path ${archive_path} --export_method ${export_method} --output_directory ${output_path} --output_name ${ipa_name}#上传到fir fir publish ${ipa_path} -T fir_token -c "${commit_msg}"#输出总用时 echo "===Finished. Total time: ${SECONDS}s==="

4.把脚本文件放在工程目录里面和xcodeproj同级目录,然后在终端中切换到工程目录执行脚本即可
脚本自动化打包
文章图片
Paste_Image.png 脚本自动化打包
文章图片
Paste_Image.png 使用facebook xctool打包
1.安装xctool
brew install xctool

【脚本自动化打包】2.打包脚本
#!/bin/bash#计时 SECONDS=0#假设脚本放置在与项目相同的路径下 project_path=$(pwd) #取当前时间字符串添加到文件结尾 now=$(date +"%Y_%m_%d_%H_%M_%S")#指定项目的scheme名称 scheme="DemoScheme" #指定要打包的配置名 configuration="Adhoc" #指定打包所使用的provisioning profile名称 provisioning_profile='AdHoc Profile'#指定项目地址 workspace_path="$project_path/Demo.xcworkspace" #指定输出路径 output_path="/Users/your_username/Documents/" #指定输出归档文件地址 archive_path="$output_path/Demo_${now}.xcarchive" #指定输出ipa地址 ipa_path="$output_path/Demo_${now}.ipa" #获取执行命令时的commit message commit_msg="$1"#输出设定的变量值 echo "===workspace path: ${workspace_path}===" echo "===archive path: ${archive_path}===" echo "===ipa path: ${ipa_path}===" echo "===profile: ${provisioning_profile}===" echo "===commit msg: $1==="#先清空前一次build xctool clean -workspace ${workspace_path} -scheme ${scheme} -configuration ${configuration}#根据指定的项目、scheme、configuration与输出路径打包出archive文件 xctool build -workspace ${workspace_path} -scheme ${scheme} -configuration ${configuration} archive -archivePath ${archive_path}#使用指定的provisioning profile导出ipa #我暂时没找到xctool指定provisioning profile的方法,所以这里用了xcodebuild xcodebuild -exportArchive -archivePath ${archive_path} -exportPath ${ipa_path} -exportFormat ipa -exportProvisioningProfile "${provisioning_profile}"#上传到fir fir publish ${ipa_path} -T fir_token -c "${commit_msg}"#输出总用时 echo "===Finished. Total time: ${SECONDS}s==="

    推荐阅读