1. 程式人生 > >【iOS】Jenkins持續集成iOS包

【iOS】Jenkins持續集成iOS包

edi 節點 path num nco visio os包 接下來 運行

  今天項目經理說讓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>

至此就可以執行構建了

【iOS】Jenkins持續集成iOS包