iOS Jenkins自动打包

#!/bin/bash -ilex

#为防止后来者看不懂,我加了一些注释:首先上面这行命令不要删,否则会jenkins找不到Mac的环境,报错command not found

#我们的目录多了一个 RRPadClient 文件夹,先cd进去才能正常使用fastlane

#因为fastlane会自动遍历需要打包的工程(包括.xcworkspace文件)

cd RRPadClient

rm -rf /Users/jason/Library/Developer/Xcode/DerivedData

#生成的ipa名称变量,默认的生成目录就是cd到的目录下,即./${IPANAME}.ipa

IPANAME="Jenkins-iPadClient"

# 打包常用命令

# gym(

#    scheme: scheme,

#    export_method: "ad-hoc",

#    silent:true,

#    output_directory:outputDirectory,

#    output_name:ipaName,

#    archive_path:outputDirectory,

#    export_xcargs: "-allowProvisioningUpdates",

# )

# 使用fastlane 的gym工具进行打包(关于打包命令fastlane或者fir均可以),-j代表打包的是什么渠道

# 支持app-store, ad-hoc, package, enterprise, development

# -q 代表的是 Debug 还是 Release,-n 是打包后的ipa名称。 --export_xcargs 是使用xcode打包时 gym 工具传给Xcode的参数

# allowProvisioningUpdates 代表让 Xcode 每次打包时自动更新最新的配置文件

# 重点: 打包时确保当前 Mac 的 Keychain 中包含正确的 Developer 或者 Distribution 的相应的证书

# Xcode 会遍历当前电脑 ‘~/Library/MobileDevice/Provisioning\ Profiles/’ 下配置文件,找到正确的配置文件并打包

# QENV, 代码运行环境, 测试环境: DebugTest, 正式环境: Release

QENV="DebugTest"

fastlane gym -j development -q ${QENV} -n ${IPANAME} --scheme 'RRPadClient' --export_xcargs '-allowProvisioningUpdates' --clean

#使用curl命令将ipa包上传到蒲公英的开发者后台(也可以使用fir.im)。-F代表post请求参数,ukey和api_key为蒲公英后台分配(不上传蒲公英就删掉这行。)

curl -F "file=@${IPANAME}.ipa" -F "_api_key=b53d236fd6634c6b29710dd5abca347d" https://upload.pgyer.com/apiv2/app/upload

# 发送消息到“iOS+测试”企业微信群

get_branch=$GIT_BRANCH

BODY='{"msgtype":"text","text":{"content": "人人视频 HD 打包完成,环境: '${QENV}', 下载地址: https://www.pgyer.com/JQSq, 密码: rrsp"}}'

curl 'https://qyapi.weixin.qq.com/cgi-bin/webhook/send?key=cae93bb8-9306-4a7b-84d7-be85eb7e54c2' \

-H 'Content-Type: application/json' \

-d "$BODY"





#!/bin/bash -ilex

#代码混淆脚本,如需要快速打包,可注释此行

#ob/ob_gnb.sh

#为防止后来者看不懂,我加了一些注释:首先上面这行命令不要删,否则会jenkins找不到Mac的环境,报错command not found

#我们的目录多了一个PUClient文件夹,先cd进去才能正常使用fastlane,因为fastlane会自动遍历需要打包的工程(包括.xcworkspace文件)

#生成的ipa名称变量,默认的生成目录就是cd到的目录下,即./${IPANAME}.ipa

IPANAME="jenkins-RRTVGN"

#使用fastlane 的gym工具进行打包(关于打包命令fastlane或者fir均可以),-j代表打包的是什么渠道,支持app-store, ad-hoc, package, enterprise, development

#-q 代表的是Debug还是Release,-n 是打包后的ipa名称。 --export_xcargs 是使用xcode打包时,gym工具传给Xcode的参数,allowProvisioningUpdates代表让xcode每次打包时自动更新最新的配置文件

#重点:打包时,确保你的Mac的keychain Access.app(即钥匙链)包含正确的developer或者distribution的相应的证书,Xcode会遍历当前电脑`~/Library/MobileDevice/Provisioning\ Profiles/`下面的配置文件,找到正确的配置文件并打包

fastlane gym -j development -q 'Debug' -n ${IPANAME} --export_xcargs '-allowProvisioningUpdates'

#使用curl命令将ipa包上传到蒲公英的开发者后台(也可以使用fir.im)。-F代表post请求参数,ukey和api_key为蒲公英后台分配(不上传蒲公英就删掉这行。)

curl -F "file=@${IPANAME}.ipa" -F "_api_key=b53d236fd6634c6b29710dd5abca347d" https://upload.pgyer.com/apiv2/app/upload

get_branch=$GIT_BRANCH

# 发送消息到“iOS+测试”企业微信群

BODY='{"msgtype":"text","text":{"content": "多多视频(test)打包完成,分支:'${get_branch}', 下载地址: https://www.pgyer.com/w7DR"}}'

curl 'https://qyapi.weixin.qq.com/cgi-bin/webhook/send?key=cae93bb8-9306-4a7b-84d7-be85eb7e54c2' \

-H 'Content-Type: application/json' \

-d "$BODY"

你可能感兴趣的:(iOS Jenkins自动打包)