jenkins+cocoapod+SVN+xcode8+bugly+坑神(xmpp)

安装Jenkins

方法一:安装包http://jenkins-ci.org


此处需注意,否者会有权限等问题(如果不勾选 编译的时候会报LSOpenURLsWithRole() failed with error -10810)
安装成功后,启动会让你去路径下找密码,按照输入就好

启动
open /Applications/Jenkins/jenkins.war
卸载
sudo launchctl unload /Library/LaunchDaemons/org.jenkins-ci.plist  
sudo rm !$  
sudo rm -rf /Applications/Jenkins "/Library/Application Support/Jenkins" /Library/Documentation/Jenkins  
sudo rm -rf /Users/Shared/Jenkins  
# if you want to get rid of all the jobs and builds:  
sudo dscl . -delete /Users/jenkins  
# delete the jenkins user and group (if you chose to use them):  
sudo dscl . -delete /Groups/jenkins 

方法二:命令

安装
brew install jenkins
启动
jenkins
卸载
brew uninstall Jenkins
brew无效? 哦 安装homebrew
$ ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
端口号冲突
sudo defaults write /Library/Preferences/org.jenkins-ci httpPort 7070
启动路径
http://localhost:8080/

安装插件

在系统管理 -> 插件管理中添加如下插件

Xcode integration
Subversion Plug-in

新建一个项目

  1. 点击左侧工具栏”新建”,选择第一项”构建一个自由风格的软件项目”
  2. 基本信息
  3. 参数化构建过程

    由于项目中需要多个网络环境(我们公司需要内网外网环境),因此加入bool参数
  4. SVN配置


  5. 构建
    构建=>增加构建步骤=>Execute shell
pod update --no-repo-update   (可选)

适配坑王XMPP,由于系统和XMPP框架同时用到了 'dnssd',大概就是错误的原因。因此需要pod xmpp3.7的库

pod 'XMPPFramework', :git => "https://github.com/robbiehanson/XMPPFramework.git", :branch => 'master'

当你引用好3.7的库以后,使用jenkins编译又开始频繁报错,找不到头文件,那么添加srcroot


xcode编译报错,大致意思是又跟系统同时用到了相通的枚举类型
重新pod更新。。。
修改XMPPStream.h的头文件
CocoaAsyncSocket/GCDAsyncSocket.h=>GCDAsyncSocket.h
终于通过编译,果然坑多,为了怕吓到后来人(毕竟22个错误),决定将以上步骤改成脚本来执行。
首先依然添加srcroot,在删除,提交到svn。(为了方便执行脚本,添加在删除后,会新增USER_HEADER_SEARCH_PATHS = "",方便查找替换)
在Execute shell中加入如下代码

cd xxxxx.xcodeproj
sed 's#USER_HEADER_SEARCH_PATHS = ""#USER_HEADER_SEARCH_PATHS = "${SRCROOT}/**"#g' project.pbxproj > project.pbxproj.temp
mv project.pbxproj.temp project.pbxproj
cd ..
cd Pods/XMPPFramework/Core/
chmod 777 XMPPStream.h
sed 's#CocoaAsyncSocket/GCDAsyncSocket.h#GCDAsyncSocket.h#g' XMPPStream.h > XMPPStream.h.temp
mv XMPPStream.h.temp XMPPStream.h

编译,ok
接下来多网络环境,继续添加(因为我们请求地址卸载plist中。。。。)

cd $WORKSPACE/xxxxx/core/network
if $NetworkEnvironment 
then
cp ServerInfo1.plist ServerInfo.plist
else
cp ServerInfo2.plist ServerInfo.plist
fi

构建=>增加构建步骤=>Xcode(注意顺序,如果反了,可以拖拽调整)
jenkins本质应该是用xcodebuild进行编译(xctool在xcode8下不好用,好像11月已经更新 还未尝试)。简单说个命令
查看Targets和Schemes

xcodebuild -list



  1. 上传bugly
    最后在添加一个Execute shell
#进入ipa路径
cd ./build
#压缩上传
zip -r project.ipa *
curl —insecure -F "file=@project.ipa" -F "app_id=你的appid" -F "pid=2" -F "title=iOS测试" -F "description=内部测试,请勿外泄" -F "secret=1"  -F "download_limit=1000" https://api.bugly.qq.com/beta/apiv1/exp?app_key=你的appkey

参数解释

curl -F "file=@demo.ipa" -F "uKey=自己的key" -F "_api_key=自己的key
secret int 公开范围(1:所有人,2:密码,4管理员,5QQ群,6白名单,默认公开所有人)
password String 密码(如果公开范围是”密码”需设置)
users String 如果公开范围是”QQ群”填QQ群号;如果公开范围是”白名单”填QQ号码,并使用;切分开,5000个以内。其他场景无需设置

替换的url

curl --insecure -X "PUT" -F "file=@project.ipa" -F "exp_id= df15dfda-324b-4361-92f9-6b56e964fd3e" -F "title=iOS测试" -F "description=内部测试,请勿外泄" -F "secret=1" -F "password=xxxx" -F "users=xxxx" -F "download_limit=1000" https://api.bugly.qq.com/beta/apiv1/exp?app_key=xxxx

bugly上传文档API

参考

jenkinsiOS项目持续集成(SVN+Cocoapods+Workspace)实战扩展(修改版)
Jenkins+GitHub+Xcode+fir搭了一个持续集成环境
使用Bugly+Jenkins+Xcode实现自动打包分发测试 iOS

未来

会加入邮件发送
相关集成测试、单元测试

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 195,719评论 5 462
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 82,337评论 2 373
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 142,887评论 0 324
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 52,488评论 1 266
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 61,313评论 4 357
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 46,284评论 1 273
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 36,672评论 3 386
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 35,346评论 0 254
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 39,644评论 1 293
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 34,700评论 2 312
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 36,457评论 1 326
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 32,316评论 3 313
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 37,706评论 3 299
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 28,990评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 30,261评论 1 251
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 41,648评论 2 342
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 40,859评论 2 335

推荐阅读更多精彩内容