使用Jenkins搭建iOS开发的CI服务器

来源:互联网 发布:儿童编程软件scratch2 编辑:程序博客网 时间:2024/05/17 07:15

简介


持续集成CI(continuous integration)是一种可以增加项目可见性,降低项目失败风险的开发实践。iOS开发中CI的选择有很多,比如可以使用Apple提供的Bots来完成自动化构建和单元测试,其优点就是和Xcode深度集成,只需几步配置就可以完成,缺点就是不够灵活,可定制化程度不高。这篇文章主要讲解如何使用开源社区的一个CI工具Jenkins来搭建iOS开发的CI环境。如果是搭建单独CI服务器的话,就需要一台单独的mac机器了。

下载并运行


打开Jenkins的官网,在页面的右侧,点击下载最新版本的Jenkins的war包。

下载完成后,打开terminal,进入到war包所在目录,执行命令:

java -jar jenkins.war --httpPort=8888

httpPort指定的就是Jenkins所使用的http端口,这里指定8888,可根据具体情况修改。待Jenkins启动后,打开浏览器输入地址:

http://localhost:8888/

便可以打开Jenkins的管理界面了。

Jenkins配置


安装git插件

Jenkins默认没有安装git插件,需要手动选择安装。进入Jenkins的管理界面,依次选择Manage Jenkins->Manage Plugins,选中“Available”选项,在页面的右上角的“Filter”中输入git过滤条件,在所有列出的结果中,选中“Git Client Plugin”和“Git Server Plugin”这两个选项,然后点击按钮“Download now and install after restart”。等待插件下载安装成功后,重启Jenkins。如下图所示:

图片

需要安装的插件不止这两个,还有git plugin,Credentials Plugin(git用户和密码)”和“Keychains and Provisioning Profiles Management(iOS证书管理,也可以不用,在jenkins服务器上手动安装,然后在xconfig文件中指定证书)

xcode配置文件的配置范本:

CODE_SIGN_IDENTITY[sdk=*] =iPhone Developer: YINGCHEN ZHANG (7QRJQNU276)

PROVISIONING_PROFILE[sdk=*] = 906d2ae1-4d2d-4a45-84d3-256e89738c08


脚本解锁钥匙串:security unlock-keychain  -p YS12101210 ~/Library/Keychains/login.keychain

如果每次签名都需要输入用户名和密码,可能是因为密钥权限问题,双击设置问所有人都可以访问就可以了。

编译脚本:

cd $WORKSPACE
cd iosclnt/libHLSStreamingEngine
pwd
xcodebuild clean -configuration Release 
xcodebuild build -configuration Release 


cd $WORKSPACE
cd iosclnt/Library/SocketRocket
pwd
xcodebuild clean -scheme SocketRocket -configuration Release -sdk iphoneos 
xcodebuild build -scheme SocketRocket -configuration Release -sdk iphoneos


cd $WORKSPACE
cd iosclnt/Library/SDWebImage
pwd
xcodebuild clean -scheme SDWebImage -configuration Release -sdk iphoneos 
xcodebuild build -scheme SDWebImage -configuration Release -sdk iphoneos


cd $WORKSPACE
cd iosclnt/vcloud
pwd
xcodebuild clean -configuration Release -xcconfig ./xcconfig/Release-vcloud.xcconfig
xcodebuild build -configuration Release -xcconfig ./xcconfig/Release-vcloud.xcconfig

打包脚本:

/usr/bin/xcrun -sdk iphoneos PackageApplication -v $WORKSPACE/iosclnt/vcloud/build/Release-iphoneos/vcloud.app -o $WORKSPACE/iosclnt/vcloud/build/Release-iphoneos/vcloud.ipa

cd /Volumes/AutomationData/builds_web/BUILDS/ios/release/
mkdir -p $BUILD_NUMBER

//输出与移动目录脚本:
cd $BUILD_NUMBER
cp $WORKSPACE/iosclnt/vcloud/build/Release-iphoneos/vcloud.ipa  ./
cp -r $WORKSPACE/iosclnt/vcloud/build/Release-iphoneos/vcloud.app.dSYM ./
cp -r $WORKSPACE/iosclnt/vcloud/build/Release-iphoneos/vcloud.app ./


cd /Volumes/AutomationData/builds_web/BUILDS/ios/latest/release/
cp -f $WORKSPACE/iosclnt/vcloud/build/Release-iphoneos/vcloud.ipa  ./



0 0