配置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,不然导出失败!

 

posted @ 2016-07-28 17:59  小白猪jianjian  阅读(2561)  评论(0编辑  收藏  举报