iOSJenkins持续集成iOS包
Posted pretty-guy
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了iOSJenkins持续集成iOS包相关的知识,希望对你有一定的参考价值。
今天项目经理说让APP端做一下用Jenkins做持续集成,因为之前没有做过,所以就开始了解,终于在键哥的帮助下,完成了持续集成的功能,感动的不行,在这里感谢键哥。
因为公司的Jenkins是搭建好的,接下来我就直接上配置过程了。
由于公司的Jenkins的环境不是在Mac上的,所以要做自动集成打包的话,就只能把agent(节点)设置到我自己的电脑了,创建agent的过程如图。
其中远程工作目录就是你本地的Jenkins的安装路径。
接下来就是在Jenkins中新建项目了,点击新建,然后选择创建自由风格项目
接下来进入项目配置:
首先要配置的在元数据中配置,指定要运行工程的节点为我们之前创建的节点
然后在源码管理中设置源码管理方式,git地址以及认证方式,同时指定要build的分支
接下来就是构建触发器的设置,在这里设置自动构建的时间
然后就到重点了,添加构建的shell脚本
shell脚本如下
#!/bin/sh ### 配置定义 PROJECT_NAME="项目名称" ### ipa打包的路径 $(WORKSPACE)表示工作空间路径下 ipaPath="${WORKSPACE}/ipa" ### archive的路径 xcarchivePath="${WORKSPACE}/xcarchive" CONFIGURATION="Release" ### develop 分支描述文件 #PROFILE_NAME="InHouse_loanCustomer" ### master 分支描述文件 #PROFILE_NAME="FinupCredit-Development" PROFILE_NAME="FinupPlatform_Adhoc" ### 指定ipa名称 IPAFILE_NAME="${PROJECT_NAME}_${BUILD_NUMBER}.ipa" # unlock login keygen #security unlock-keychain -p ${KEYCHAIN_PASSWORD} ${KEYCHAIN_PATH} || failed "unlock-keygen" # clean echo "xcodebuild clean" xcodebuild clean -workspace ${WORKSPACE}/${PROJECT_NAME}/${PROJECT_NAME}.xcworkspace -scheme ${PROJECT_NAME} -configuration ${CONFIGURATION} || failed "xcodebuild clean" # archive echo "xcodebuild archive" xcodebuild archive -workspace ${WORKSPACE}/${PROJECT_NAME}/${PROJECT_NAME}.xcworkspace -scheme ${PROJECT_NAME} -configuration ${CONFIGURATION} -destination generic/platform=ios -archivePath ${xcarchivePath}/${IPAFILE_NAME}.xcarchive || failed "xcodebuild archive" # export ipa echo "xcodebuild exportArchive" xcodebuild -exportArchive -archivePath ${xcarchivePath}/${IPAFILE_NAME}.xcarchive -exportPath ${ipaPath}/${IPAFILE_NAME} -exportOptionsPlist ${WORKSPACE}/options.plist -verbose || failed "xcodebuild export archive" #-exportFormat ipa #-exportProvisioningProfile ${PROFILE_NAME} #-verbose # run sonar #pushd ${WORKSPACE}/iphone/${PROJECT_NAME} #./run-sonar.sh #popd
设置好脚本之后就可以构建了。
然而到这里还是有问题,好像是在XCode9之后在命令行打包需要额外的options.plist文件,这个文件要放到与工程的同级目录下
options.plist如下
<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd"> <plist version="1.0"> <dict> <key>compileBitcode</key> <true/> <key>method</key> <string>ad-hoc</string> <!-- 描述文件 --> <key>provisioningProfiles</key> <dict> <key>*****</key> <string>****</string> </dict> <key>signingCertificate</key> <string>iPhone Distribution</string> <key>signingStyle</key> <string>manual</string> <key>stripSwiftSymbols</key> <true/> <!-- 团队id --> <key>teamID</key> <string>团队id</string> <key>thinning</key> <string><none></string> </dict> </plist>
至此就可以执行构建了
以上是关于iOSJenkins持续集成iOS包的主要内容,如果未能解决你的问题,请参考以下文章
使用 Jenkins 搭建 iOS/Android 持续集成打包平台