Jenkins 独立自动化打包ipa

Jenkins的安装,及基本配置

基本配置一致,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

  如下图所示:

   

  结果,如下图所示:

  

原文地址:https://www.cnblogs.com/lulushen/p/8759503.html