设为首页 收藏本站
查看: 1315|回复: 0

[经验分享] Jenkins 集成Unity3D Xcode

[复制链接]

尚未签到

发表于 2018-1-6 21:42:19 | 显示全部楼层 |阅读模式
  如果Mac 上没有安装brew。先安装:ruby -e "$(curl -fsSL https://raw.github.com/Homebrew/homebrew/go/install)"
  首先安装jenkins #: brew install jenkins        brew 官网:http://brew.sh   或直接从Jenkins下载:http://jenkins-ci.org
  安装完成后浏览器打开:http://localhost:8080   Jenkins 默认地址
  首先请先安装两个插件: Manage Jenkins--> Manage Plugins --> Available -->Xcode integration   && Unity3d plugin
  本地Unity项目
  第一步:新建一个item
  1 New item --> item name --> Build a free-style software project
  第二步:添加一个项目
  1 Source Code Management --> None (注意如果选择本地。要把Unity工程拷贝到Jenkins的工作目录下类似于/Users/qingyun/.jenkins/jobs/ProjectName/workspace  。 这里要拷贝的对象为Unity工程里面Library 、Assets 同级的路径,把这里所有的文件拷贝把workspace下
  第三步:添加Unity 项目
  1 Add build step--> Unity
  2 Unity3d installation name .选择设置好的unity(如果开始没设置,那么回到Jenkins主界面,设置Unity)
  设置Unity插件如果已设置可以忽略这里:1Manage Jenkins -> Configure System -->Unity3d -->name(随便起) &&
  Installation directory:/Applications/Unity/Unity.app  (Unity的安装地址)
  3 Editor command line arguments 输入脚本:-quit -batchmode -executeMethod PerformBuild.CommandLineBuild
  PerformBuild.CommandLineBuild 的意思是执行脚本里的CommandLineBuild  方法。
  注意BuildProject.cs 这个脚本一定要放到Unity工程下面的Assets-->Editor下面。BuildProject.cs参考代码如

  

using UnityEditor;  

using System.IO;  

using System.Collections;  

using UnityEngine;  

using System.Collections.Generic;  

  

class PerformBuild  
{
  

static string[] GetBuildScenes()  
{
  
List
<string> names = new List<string>();  

  

foreach(EditorBuildSettingsScene e in EditorBuildSettings.scenes)  
{
  

if(e==null)  

continue;  

  

if(e.enabled)  
names.Add(e.path);
  
}
  

return names.ToArray();  
}
  

  

static string GetBuildPath()  
{
  

return "build/iPhone";  
}
  

  
[UnityEditor.MenuItem(
"Project Cos/Resources/Command Line Build Step")]  

static void CommandLineBuild ()  
{
  

  
Debug.Log(
"Command line build\n------------------\n------------------");  

  

string[] scenes = GetBuildScenes();  

string path = GetBuildPath();  

if(scenes == null || scenes.Length==0 || path == null)  

//return;  
Debug.Log(string.Format("Path: \"{0}\"", path));
  
for(int i=0; i<scenes.Length; ++i)
  
{
  
Debug.Log(string.Format("Scene[{0}]: \"{1}\"", i, scenes));
  
}
  

  
Debug.Log("Starting Build!");
  
BuildPipeline.BuildPlayer(scenes, path, BuildTarget.iPhone, BuildOptions.None);
  
}
  

  
static string GetBuildPathAndroid()
  
{
  
return "build/android";
  
}
  

  

  
}
  


BuildProject.cs  第四步:save编译运行。 如果编译成功那么会在WorkSpace/build/下生成iPhone文件。这个文件里的内容就是刚生成的xcode 项目。
  那么接下来设置本地的Xcode 工程。
  第一步:新建一个item
  1 New item --> item name --> Build a free-style software project
  第二步:添加Xcode 项目设置(Add Build step选择Xcode)
  1 Source Code Management-->None --> Add build step -->Xcode
  第三步:设置Xcode
  1 Target (Xcode的target)
  2 选择settings -- >Clean before build 选择Yes (Pack application and build .ipa不要选择。因为Unity不支持)
  3  Code sigining settings..  (如果本地的Xcode 工程里面的证书都设置好了。就不用填了。)
  4 Advanced build settings (其它都不用填。找到Xcode Project Directory 这个一定要注意了。这个地址是本地xcode 项目里面.xcodeproj的有效地址)
  第四步:添加shell 脚本命令(Add Build Step 选择 Execute shell)
  1 Command :

  

xcrun -sdk iphoneos PackageApplication -v /Users/chenqing/.jenkins/jobs/TestLocalUnity/workspace/build/iPhone/build/ProductName.app -o /Users/chenqing/.jenkins/jobs/TestLocalUnity/workspace/build/iPhone/TestLocal.ipa  

  

//修改相应目录。  TestLocal.ipa 是编译生成的ipa 文件  


Execute shell  第五步: save -->Build

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-432378-1-1.html 上篇帖子: 解决jenkins产生的日志过大以及一些衍生问题 下篇帖子: jenkins的构建项目配置
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表