Mac Jenkins+fir 搭建

来源:互联网 发布:unity3d海底模型 编辑:程序博客网 时间:2024/05/17 15:56

阐述

最近在准备产品新版本开发的预备工作,网上看了很多产品方案,感觉一个成熟的产品必然是产品-测试-产品循环,因此寻找了很多关于CI环境搭建方面的资料,最终还是觉得Jenkins+fir这套方案适合公司目前的情况。故将搭建过程记录下来,供大家参考。


步骤

1. 安装Java环境

Jenkins平台需要对应的Java环境,请下载对应版本的Java环境包

下载地址: http://www.java.com/zh_CN/download/mac_download.jsp


2. 下载Jenkins

下载Jenkins最新版本的安装包(注意查看对应的Java版本)
Jenkins官网: https://jenkins.io


3. 安装Jenkins
一直选择(下一步)Next,不需要设置


4. 初始配置 Jenkins
a. 浏览器输入 http://localhost:8080
(注: 如端口冲突,请修改端口)

修改端口方法(命令行): 

$  defaults write /Library/Preferences/org.jenkins-ci httpPort xxxx

(xxxx 为你要修改的端口号)

b. 按照提示,找到密码,输入下方的输入框



c. 找到 /Users/Shared/Jenkins/Home/ 这个目录下,这个目录虽然是共享目录,但是有权限的,非Jenkins用户/secrets/目录是没有读写权限的。

故需要进行操作:  右键 - 显示简介 - 修改权限


d. 打开 initialAdminPassword 文件,复制并黏贴密码



e. 选择 Install suggested plugins (当然也可自己选择对应插件进行安装)


安装截图


如有安装失败的,在失败之后,重启浏览器多次,即可跳过失败的插件安装步骤(失败的插件需要在Jenkins中手动安装)



f. 账户创建(安装失败多次重启浏览器后也会到这个界面)



这样Jenkins就初步安装完成



5. Jenkins 插件安装


a. 通过插件名搜索,选择并安装



b. 自己下载插件,手动安装

插件集合下载地址: https://wiki.jenkins-ci.org/display/JENKINS/Plugins



注意:

需要安装的插件有 (可通过第一种方式)
GitLab 插件
- GitLab Plugin
- GItLab Hook Plugin

Xcode 插件
- Xcode integration

Keychains 插件
- Keychains and Provisioning Profiles Management

打包后续动作插件
- Post-Build Script Plug-in



6. 配置发布证书

a. 进入有关操作界面,如下图



b. 在下图中,上传 /Users/管理员用户名/Library/keychains/login.keychain 文件,并上传有关程序的 Provisioning Profiles 文件(证书p12不需要上传)



c. 在下方输入要使用的证书的名称



d. 设置 Provisioning Profiles 拷贝目的地路径

请输入 /Users/Shared/Jenkins/Library/MobileDevice/Provisioning Profiles/




7. 配置fir插件
按照网址中介绍的fir配置步骤进行配置: http://blog.fir.im/jenkins/



8. 创建一个新项目




初步设置有关内容







Poll SCM (poll source code management) 轮询源码管理 需要设置源码的路径才能起到轮询的效果。一般设置为类似结果: 0/5 每5分钟轮询一次 Build periodically (定时build) 一般设置为类似: 00 20 * 每天 20点执行定时build 。当然两者的设置都是一样可以通用的。

格式是:
分钟(0-59) 小时(0-23) 日期(1-31) 月(1-12) 周几(0-7,0和7都是周日) 更加详细的设置看这里

若 Code Signing Identity第一次不能选择,请Save一下,再次进入设置界面




其中:

APP_NAME 为项目名称
JENKINS_SVN_NAME 为此Jenkins项目名称
CODE_SIGN_DISTRIBUTION 为打包使用的证书名称


附上代码

APP_NAME="WizardIsBoy"JENKINS_SVN_NAME="WizardIsBoy"CODE_SIGN_DISTRIBUTION="Apple Development IOS Push Services: com.caxaAS.WizardIsBoy"project_infoplist_path="/Users/Shared/Jenkins/Home/workspace/${JENKINS_SVN_NAME}/${APP_NAME}/Info.plist"bundleShortVersion=$(/usr/libexec/PlistBuddy -c "print CFBundleShortVersionString" "${project_infoplist_path}")bundleVersion=$(/usr/libexec/PlistBuddy -c "print CFBundleVersion" "${project_infoplist_path}")DATE="$(date +%Y%m%d)"IPANAME="${APP_NAME}_V${bundleShortVersion}_${DATE}.ipa"IPA_PATH="$HOME/GGG/${IPANAME}"echo ${IPA_PATH}echo "${IPA_PATH}">> text.txtecho "=================clean================="xcodebuild -target "${APP_NAME}"  -configuration 'Release' cleanecho "+++++++++++++++++build+++++++++++++++++"xcodebuild -target "${APP_NAME}" -sdk iphoneos -configuration 'Release' CODE_SIGN_IDENTITY="${CODE_SIGN_DISTRIBUTION}" SYMROOT='$(PWD)'xcrun -sdk iphoneos PackageApplication "./Release-iphoneos/${APP_NAME}.app" -o ~/"${IPANAME}"






若 Ruby 出现问题则命令行输入以下命令,进行ruby重新安装
$  rvm get stable
$  rvm reinstall 2.0.0



参考资料:
1. http://gold.xitu.io/post/57b01d50128fe10055bbc6d5?utm_source=gold_browser_extension
2. http://stackoverflow.com/questions/20092600/error-loading-rubygems-plugin-openssl-bundle-loaderror
3. http://blog.fir.im/jenkins/




0 0
原创粉丝点击