Jenkins 独立自动化打包ipa
基本配置一致,Execute shell不同。
一、首先配置证书等
在首界面,点击系统配置-管理插件-可选插件(搜索key)-选中Keychains and Provisioning Profiles Management直接安装,
安装完成之后,回到系统配置界面,点击Keychains and Provisioning Profiles Management选项,如下图所示:
进入Keychains and Provisioning Profiles Management配置界面,如下图所示:
选择文件login.keychain((command+shift+G前往文件夹)~/Library/Keychains/login.keychain)配置需要的证书及配置文件,选择好之后点击Upload,
输入管理员密码,复制证书的全名(如果不知道,可以打开钥匙串找到证书,右键显示简介复制名称),Provisioning Profiles路径一般在
/User/用户名/Library/MobileDevice/Provisioning Profiles,配置完成点击Save。如下图所示:
这个Keychain其实在/Users/管理员用户名/Library/keychains/login.keychain,当把这个Keychain设置好了之后,Jenkins会把这个Keychain拷贝到Jenkins/Library/keychains这里,(Library是隐藏文件)。Provisioning Profiles文件也直接拷贝到 Jenkins/Library/MobileDevice文件目录下。
二、构建项目的基本配置一样,脚本不同,如下图所示:
关键的就是xcodebuild。
脚本:
# 工程名 APP_NAME="xxx" # 证书 CODE_SIGN_DISTRIBUTION="iPhone Distribution: xxx, Ltd." # info.plist路径 project_infoplist_path="./${APP_NAME}/Info.plist" #取版本号 #bundleShortVersion=$(/usr/libexec/PlistBuddy -c "print CFBundleShortVersionString" "${project_infoplist_path}") #取build值 #bundleVersion=$(/usr/libexec/PlistBuddy -c "print CFBundleVersion" "${project_infoplist_path}") #DATE="$(date +%Y%m%d)" #IPANAME="${APP_NAME}_V${bundleShortVersion}_${DATE}.ipa" #要上传的ipa文件路径 #IPA_PATH="$JENKINS_HOME/${IPANAME}" #打印ipa路径 #echo ${IPA_PATH} echo "=================clean=================" xcodebuild -target "${APP_NAME}" -configuration 'Release' clean echo "+++++++++++++++++build+++++++++++++++++" #路径根据jenkins路径相关 xcodebuild -archivePath "/Users/xxx/.jenkins/Home/workspace/semf-ios/build/Release-iphoneos/$APP_NAME.xcarchive" -project $APP_NAME.xcodeproj -sdk iphoneos -scheme "$APP_NAME" -configuration "Release" archive echo "+++++++++++++++++ipa+++++++++++++++++" #这里ExportOptions.plist需要注意,这个文件是手动添加到/Users/Datacvg/.jenkins/Home/workspace/semf-ios/,这个plist文件可以是使用xcode打包时自动生成的文件,复制到文件夹里面。(Home/workspace,Home不要弄错)
#路径可以使用变量,这里写死了
xcodebuild -exportArchive -archivePath "/Users/xxx/.jenkins/Home/workspace/semf-ios/build/Release-iphoneos/$APP_NAME.xcarchive" -exportPath "/Users/xxx/.jenkins/Home/workspace/semf-ios/build/ipa" -exportOptionsPlist '/Users/xxx/.jenkins/Home/workspace/semf-ios/ExportOptions.plist' -allowProvisioningUpdates
点击应用,返回立即构建,结果如下图所示:
上面Exported就是ipa的路径。
Android 打包apk
需要在系统管理中配置全局变量,环境变量,如下图所示:
项目中的基本配置基本相同,执行命令脚本Execute shell不同,chmod +x gradlew权限问题;
chmod +x gradlew
./gradlew assemblerelease
或者./gradlew build
如下图所示:
结果,如下图所示: