配置jenkins,並把iOS包自動上傳至fir.im


  • 安裝jenkins,有兩種方式

1.首先要安裝 homebrew,利用homebrew來管理安裝包十分方便,一條命令就可以

安裝 homebrew命令

$ ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"

安裝成功之后就可以安裝Jenkins了

執行命令

$ brew install jenkins         

就安裝完成了

PS:不要在官網直接下載安裝包!不要在官網直接下載安裝包!不要在官網直接下載安裝包!會遇到很多權限問題!

 

  • 安裝完成后啟動 Jenkins
$  brew services start jenkins

請在瀏覽器輸入地址:

http://localhost:8080/

使用安裝包安裝后會自動打開,如果端口沖突那么請修改端口,下面將端口號改成9090
defaults write /Library/Preferences/org.jenkins-ci httpPort 9090
  • 安裝fir插件

  下載插件

Jenkins 插件下載地址

  • 安裝插件

  進入 Jenkins 管理界面后,點擊左側進入 系統管理


 
  • 然后找到 管理插件 並點擊進入

 
  • 進入插件管理后,點擊 高級 選項卡

 
  • 然后在頁面找到 上傳插件,選擇已下載好的 fir.im jenkins 插件文件路徑,並點擊 上傳 等待安裝成功。


  • 安裝成功后,如果沒有創建 Jenkins 項目,請先創建項目。如果需要配置已存在的項目,請進入在 配置 中找到 增加構建后操作步驟 ,並選擇 Upload to fir.im 添加到 Jenkins 項目中。

 
  • 設置git,如果用git管理代碼倉庫的話

 

 

第一種方式(推薦),直接用腳本

# 這步操作解鎖keychain,login.keychain的路徑是${HOME}/library/keychains,123456是開機的密碼
security unlock-keychain -p 123456 ${HOME}/library/keychains/login.keychain
# 工程名
APP_NAME="GitSearch"
#修改打包類型
TARGET_NAME="GitSearch

  #證書
  CODE_SIGN_DISTRIBUTION="iPhone Distribution: XXXXX Inc. (R9JN3XXXX)"
  provisoning_profile="942daf9e-2925-4fca-9afd-278e60b821e6"

  #切換手動選擇證書模式(在xcode配置中取消Automatically manage signing,不然會報錯!)
  sed -i "" s/'ProvisioningStyle = Automatic;'/'DevelopmentTeam = R9JN3XXXX;ProvisioningStyle = Manual;'/g ${APP_NAME}.xcodeproj/project.pbxproj

  sed -i "" s/'PROVISIONING_PROFILE = "";'/'PROVISIONING_PROFILE = "$provisoning_profile";'/g ${APP_NAME}.xcodeproj/project.pbxproj

  sed -i "" s/'PROVISIONING_PROFILE_SPECIFIER = "";'/'PROVISIONING_PROFILE_SPECIFIER ="xxxx_CI_Distribution";'/g ${APP_NAME}.xcodeproj/project.pbxproj

  sed -i "" s/'DEVELOPMENT_TEAM = "";'/'DEVELOPMENT_TEAM = R9JN3XXXX;'/g ${APP_NAME}.xcodeproj/project.pbxproj

#info.plist路徑
project_infoplist_path="./${APP_NAME}/${TARGET_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_%H_%M)"
FILENAME="${DATE}"
#自己定義fir的token和appid
FIRTOKEN = "863efefc2c22d4b761c096e6af9a6024"
FIRAPPID = "5933aa88548b7a57ff000059"

export LANG=en_US.UTF-8
export LANGUAGE=en_US.UTF-8
export LC_ALL=en_US.UTF-8

echo "=================pod install================="
pod install

echo "=================clean================="
xcodebuild -workspace "${APP_NAME}.xcworkspace" -scheme "${APP_NAME}"  -configuration 'Release' clean


echo "+++++++++++++++++build+++++++++++++++++"
xcodebuild archive -workspace "${APP_NAME}.xcworkspace" -scheme "${APP_NAME}" -configuration 'Release' -archivePath "./build/${FILENAME}/${APP_NAME}.xcarchive" CODE_SIGN_IDENTITY="$CODE_SIGN_DISTRIBUTION" PROVISIONING_PROFILE="$provisoning_profile"

echo "+++++++++++++++++archive && 導出ipa文件++++++++++++++++++"
#export_plist一定要有,請自行百度
xcodebuild -exportArchive -archivePath "./build/${FILENAME}/${APP_NAME}.xcarchive" -exportPath "./build/${FILENAME}"  -exportOptionsPlist "./export_plist/${TARGET_NAME}.plist" CODE_SIGN_IDENTITY="$CODE_SIGN_DISTRIBUTION" PROVISIONING_PROFILE="$provisoning_profile"
echo "+++++++++++++++++復制到桌面++++++++++++++++++"

rm -r -f ${HOME}/Desktop/Package/${APP_NAME}.ipa
mkdir ${HOME}/Desktop/Package
cp -R ./build/${FILENAME}/${APP_NAME}.ipa ${HOME}/Desktop/Package
#fir上傳不一定能成功,可以使用插件
fir p "./build/${FILENAME}/${APP_NAME}.ipa" -T "${FIRTOKEN}" -Q
fir login ${FIRTOKEN}

echo "+++++++++++++++++蒲公英++++++++++++++++++"

curl -F "file=@/Users/next_mac_mini/Desktop/Package/${APP_NAME}.ipa" -F "uKey=d81326899dd50c3382e2f5e99f3a7495" -F "_api_key=495642f9b1336a64ceb2d5cb44d93183" http://www.pgyer.com/apiv1/app/upload

 

第二種方式,使用xcode插件,先去插件管理下載Xcode integration

  • 設置xcode

 

  • xcode高級配置
  • fir插件配置

只需要配置這些就夠了,使用的描述文件就是xcode當前的配置。

郵件配置:

 1.先安裝插件Email Extension Plugin,然后在全局設置中配置郵件模板

然后進入到對應Jenkins,新增一個構建后項目Editable Email Notification

進入高級設置

這里對參數進行以下說明。

Triggers是觸發事件,這里設置成功和失敗都發送郵件

Recipient List 就是收件人

Content是內容,可以根據成功或失敗設置不同的內容

Attachments是附件,這里注意附件必須在Jenkins的build目錄下,我的是在

${HOME}/.jenkins/jobs/iOS GitSearch/workspace/build

 

Attach Build Log代表是否輸出log

 

其余的都按照截圖填上即可

 

XCode 9的exportPlist格式改了,下面這些是需要添加的字段,或者用XCode導出一個包,在同級目錄下會有ExportOptions.plist文件,粘貼過來就行了。但是注意compileBitcode屬性一定是false,不然導出失敗!

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM