配置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 管理界面后,点击左侧进入 系统管理
- 然后找到 管理插件 并点击进入
- 进入插件管理后,点击 高级 选项卡
- 然后在页面找到 上传插件,选择已下载好的 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,不然导出失败!