Jenkins+git+xcode自动化构建

来源:互联网 发布:数据在计算机内部传送 编辑:程序博客网 时间:2024/05/22 01:33

第一次在CSDN上写东西,好担心写的不好有人打我。写的哪有不对或需要补充的,请在评论区告诉我,我会及时修改。
话不多说。Jenkins的好处我就不一一举例了,总之可以为测试以及程序省很多时间和精力。
下面我较为详细的说明了Jenkins在MAC上的使用及可能遇到的问题,仅供大家参考。由于window比mac上使用jenkins大致相同,并较为简单,我就不再重复了。
———转载请注明出处———

一、jenkins安装(MAC)
1.jdk安装
网上下载jdk并安装,并在终端测试是否可以使用。
2.Tomcat安装
官网http://tomcat.apache.org/下载tomcat.tar.gz或.zip
解压并移动到 /Library下 改名为Tomcat
终端输入

sudo chmod 755 /Library/Tomcat/bin/*.sh Sudo sh startup.sh

3.jenkins安装
方法1:官网https://jenkins.io/index.html下载os x 包
直接点击安装完成,完成后会在application下产生一个jenkins的文件夹,自
动启动safari,并进入Jenkins页面。打开浏览器输入http://localhost:8080,启
动jenkins
方法2:官网https://jenkins.io/index.html下载 .war包,然后运行Java -jar jenkisn.war 进行安装
【问题1】安装完成,自动启动safari,但进入localhost失败,提示无法访问localhost。
【A】检查Java环境是否安装好;若java环境未安装好,重新安装配置java环境。
二、运行Jenkins
http://localhost:8080
就可以进入jenkins的主界面。
如果安装完成后出现启动不了的情况,执行以下命令,清除下既存的plist信息:

sudo launchctl unload /Library/LaunchDaemons/org.jenkins-ci.plistsudo mkdir -p /Users/Shared/Jenkins/Homesudo chown -R daemon /Users/Shared/Jenkinssudo launchctl load /Library/LaunchDaemons/org.jenkins-ci.plist

【注】直接在浏览器运行localhost启动jenkie,会导致一些问题,比如用Xcode去build
的时候,会有code signin 的问题,导致在终端能编译通过的脚本,在Jenkie下无法
通过。或git更新超时,无法从git远程仓库获取。
而出现这个问题的原因在于用户权限问题,用浏览器运行启动jenkie,jenkie的工作目
录会建立在/Users/Shared/Jenkins下,导致它没有权限访问系统的keychains。
正确启动方法是:

sudo launchctl unload /Library/LaunchDaemaons/org.jenkins-ci.plistJava -jar java -jar /Applications/Jenkins/jenkins.war --httpPort=8080

这时,jenkies会在/Users/[user name]/.jenkins 下面建立工作目录,从而它就有权限去
获取相关的keychain。
【注:】终端窗口关闭或mac重启可能会导致jenkins 不能自启
解决:编写脚本执行

    Java -jar java -jar /Applications/Jenkins/jenkins.war --httpPort=8080
  将脚本加到mac 开机启动,并在后台运行

三、jenkins 配置
1.安装插件
系统管理–》管理插件–》可选插件–》勾选Git plugin、Git client plugin、Unity3d plugin、Xcode integration等插件–》安装
2.系统管理–》系统设置——》add unity3d ——》name(随便设) / 安装路径(Windows填unity.exe路径 mac 填Unity.app路径)
四、jenkins自动化构建
新建item——》填写item名称、选择自由风格项目
丢弃旧的构建(可设置保存天数与构建的最大数量)
源码管理:git——》填入Repository URL ——》add(添加凭证:填写正确的Username、Password)
问题1:正确的url填入后依旧提示“Please enter Git repository.”
解决:检查凭证是否添加或正确
点击任意处稍等数秒,有可能有延迟
(以上再三确认没有问题,请仔细阅读二【运行jenkins:是因为jenkins工作目录在/Users/Shared/Jenkins下,导致的权限问题】)
构建触发器:Poll SCM ——》日程表(H15* * * *)每十五分钟检查一次远程仓库,如有变化则触发构建,时间可更改。【其他指令自行百度】
构建:增加构建步骤——》invoke unity3d editor——》选定unity3d installation——》
填写操作命令(例如:-quit -nographics -batchmode -executeMethod AutoBuild.BuildAndroid)【指令使用自行百度】——》保存 Android自动化构建到此结束
Jenkins Xcode 打包ipa:
首先请确认本地的xcode 工程是否能生成ipa 最好先试一次。如果xcode 能正常生成ipa 那么下面的才能实现
添加Xcode 项目设置
Add build step –>Xcode
设置Xcode
1.Target (Xcode的target)
2.选择settings – >Clean before build 选择Yes (Pack application and build .ipa不要选择。因为Unity不支持)
2-1.设置.ipa filename pattern (这个随便填就好)—> Output dirctory (这个表示编译生成的ipa 的路径。/Users/qingyun/XXX 选择一个你能找到的地方)
3.Code sigining settings.. (如果本地的Xcode 工程里面的证书都设置好了。就不用填了。)
4.Advanced build settings (其它都不用填。找到Xcode Project Directory 这个一定要注意了。这个地址是本地xcode 项目里面.xcodeproj的有效地址)
5.添加shell 脚本命令(Add Build Step 选择 Execute shell)
Command:

xcrun -sdk iphoneos PackageApplication -v /Users/lanan/.jenkins/jobs/build/iPhone/build/Release-iphoneos/Kacartoon.app -o /Users/lanan/Desktop/KaCartoonIOS/KaCartoon.ipa//修改相应目录。  KaCartoon.ipa 是编译生成的ipa 文件

保存
问题1: 提示成功,却打包失败,日志显示
Native extension for OSXStandalone target not found
Native extension for Android target not found等等
解决:修改项目工程下Library名称,reset all ,重新点击构建
问题2:权限
解决:在以上过程中可能会有jenkins权限问题,通过终端根据具体问题给予权限

0 0
原创粉丝点击