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项目

持续集成-UniApp

持续集成-UniApp

使用 Jenkins 搭建 iOS/Android 持续集成打包平台

Unittest接口自动化测试UnittestGithubJenkins持续化集成

Jenkin-持续集成