安装Jenkins
- 安装包安装
- HomeBrew安装
安装包安装
由于Jenkins 依赖于Java,所以在安装Jenkins前,需要先检查是否已安装Java环境。 在终端输入命令进行检测:
$ java -version
然后前往Jenkins官网下载安装包安装
homeBrew安装
brew install jenkins
初始化Jenkins
-
在终端输入
jenkins
启动服务 - 在浏览器中输入
http://localhost:8080
中进行访问 - 依照图中描述在终端输入 cat + 密码路径,获取密码复制下一步
- 等待插件安装完成。
- 配置完管理员账户,就成功安装完成啦
安装插件
新建任务
打包脚本
#!/bin/sh
export LANG=en_US.UTF-8
# 1.设置配置标识,编译环境(根据需要自行填写 release | debug )
configuration="debug"
# 工程名(根据项目自行填写)
APP_NAME="项目名"
# TARGET名称(根据项目自行填写)
TARGET_NAME="项目名"
# ipa前缀(根据项目自行填写)
IPA_NAME="项目名"
# 工程根目录#工程源码目录(这里的${WORKSPACE}是jenkins的内置变量表示(jenkins job的路径):/Users/plz/.jenkins/workspace/TestDome/)
# ${WORKSPACE}/TestDome/ 中的TestDome根据你的项目自行修改
CODE_PATH="${WORKSPACE}/xx/${TARGET_NAME}"
echo "-------------- CODE_PATH: ${CODE_PATH}"
# info.plist路径
project_infoplist_path= "${CODE_PATH}/${TARGET_NAME}/Info.plist"
# 取版本号
bundleShortVersion= $(/usr/libexec/PlistBuddy -c "print CFBundleShortVersionString" "${project_infoplist_path}")
# bundleVersion= $(/usr/libexec/PlistBuddy -c "print CFBundleVersion" "${project_infoplist_path}")
echo "------- info plist path : ${project_infoplist_path}"
echo "------- bundleShortVersion : ${bundleShortVersion}"
# $echo "------- bundleVersion : ${bundleVersion}"
# 日期
DATE=$(date +%Y%m%d%H%M%S)
# 工程文件路径
ARCHIVE_NAME="${APP_NAME}_${DATE}.xcarchive"
# 存放ipa的文件夹名称(根据自己的喜好自行修改)
IPANAME="${IPA_NAME}_IPA"
# 要上传的ipa文件路径 ${username} 需要换成自己的用户名
ROOT_PATH="/Users/wanglei/Desktop/Jenkins"
ARCHIVE_PATH="${ROOT_PATH}/Archive/${ARCHIVE_NAME}"
IPA_PATH="${ROOT_PATH}/Export/${IPANAME}"
echo "-------------- ARCHIVE_PATH: ${ARCHIVE_PATH}"
echo "-------------- IPA_PATH: ${IPA_PATH}"
# 导包方式(这里需要根据需要手动配置:AdHoc/AppStore/Enterprise/Development)
EXPORT_METHOD="AdHoc"
# 导包方式配置文件路径(这里需要手动创建对应的XXXExportOptionsPlist.plist文件,并将文件复制到根目录下[我这里在源项目的根目录下又新建了ExportPlist文件夹专门放ExportPlist文件])
if test "$EXPORT_METHOD" = "AdHoc"; then
EXPORT_METHOD_PLIST_PATH=${CODE_PATH}/ExportOptions.plist
elif test "$EXPORT_METHOD" = "AppStore"; then
EXPORT_METHOD_PLIST_PATH=${CODE_PATH}/ExportOptions/AppStoreExportOptios.plist
elif test "$EXPORT_METHOD" = "Enterprise"; then
EXPORT_METHOD_PLIST_PATH=${CODE_PATH}/ExportOptions/EnterpriseExportOptions.plist
else
EXPORT_METHOD_PLIST_PATH=${CODE_PATH}/ExportOptions/DevelopmentExportOptions.plist
fi
echo "-------------- EXPORT_METHOD_PLIST_PATH: ${EXPORT_METHOD_PLIST_PATH}"
# 指ipa定输出文件夹,如果有删除后再创建,如果没有就直接创建
if test -d ${IPA_PATH}; then
"-------------- 删除:IPA Path : ${IPA_PATH}"
rm -rf ${IPA_PATH}
mkdir ${IPA_PATH}
"-------------- 创建:IPA Path : ${IPA_PATH}"
else
mkdir -pv ${IPA_PATH}
"-------------- 创建:IPA Path : ${IPA_PATH}"
fi
# 进入工程源码根目录
cd "${CODE_PATH}"
echo "-------------- 安装Pod Code Path: ${CODE_PATH}"
# 执行pod
pod install --verbose --no-repo-update
#mkdir -p build
# 清除工程
echo "-------------- Clean项目 执行Shell: xcodebuild clean -workspace ${APP_NAME}.xcworkspace -scheme ${APP_NAME} -configuration ${configuration}"
xcodebuild clean -workspace ${APP_NAME}.xcworkspace -scheme ${APP_NAME} -configuration ${configuration}
# 将app打包成xcarchive格式文件
echo "-------------- archive项目 执行Shell: xcodebuild archive -workspace ${APP_NAME}.xcworkspace -scheme ${APP_NAME} -configuration ${configuration} -archivePath ${ARCHIVE_PATH}"
xcodebuild archive -workspace ${APP_NAME}.xcworkspace -scheme ${APP_NAME} -configuration ${configuration} -archivePath ${ARCHIVE_PATH}
# 将xcarchive格式文件打包成ipa
echo "-------------- 导出ipa包 执行Shell: xcodebuild -exportArchive -archivePath ${ARCHIVE_PATH} -exportPath "${IPA_PATH}" -exportOptionsPlist ${EXPORT_METHOD_PLIST_PATH} -allowProvisioningUpdates"
xcodebuild -exportArchive -archivePath ${ARCHIVE_PATH} -exportPath "${IPA_PATH}" -exportOptionsPlist ${EXPORT_METHOD_PLIST_PATH} -allowProvisioningUpdates
# 删除工程文件
# echo "+++++++++删除工程文件+++++++++"
# rm -rf $ARCHIVE_PATH