首先我们假设所有的环境和参数都配置好了。

常规打包: 打开Unity -> File -> Building Setting -> 点击 Build 按钮。

脚本打包:不需要打开Unity,通过脚本完成手动点击 Build 按钮的操作。

Jenkins 打包:不需要在部署了工程的电脑上操作, 通过访问 Web 或者 设置自动打包命令来执行打包脚本。

脚本打包 apk

Unity 提供了命令行打包的接口,Mac 上打包安卓脚本如下:

#!/bin/sh

# unity app path
UNITY_PATH=/Applications/Unity/Unity.app/Contents/MacOS/Unity# project path
PROJ_PATH=/Users/David/Proj/UnityAutoBuild/AutoBuildecho "============== Unity Build APK Begin =============="$UNITY_PATH -projectPath $PROJ_PATH -executeMethod Batchmode.BuildAndroid -logFile $PROJ_PATH/android/Android.log -batchMode -quitecho "============== Unity Build APK Finish =============="

其中,BuildAndroid 是 Batchmode.cs 中的一个静态方法,里面最重要的方法是

foreach (EditorBuildSettingsScene scene in EditorBuildSettings.scenes)
{if (!scene.enabled) continue;levels.Add(scene.path);
}string res = BuildPipeline.BuildPlayer(levels.ToArray(), "TestAutoBuild.apk", BuildTarget.Android, BuildOptions.None);

脚本打包 iOS

脚本打包 iOS, 会分成两个步骤:
第一步类似于安卓打包, 但是生成的是 Xcode工程。
第二步是将 Xcode工程打包成 ipa。(个人免费账号无法生成 ipa,需要购买申请开发者账号)

iOS 打包脚本如下:

#!/bin/sh

# unity app path
UNITY_PATH=/Applications/Unity/Unity.app/Contents/MacOS/Unity# project path
PROJECT_PATH=/Users/David/Workspace/Proj/UnityAutoBuild/AutoBuild#IOS打包脚本路径#
BUILD_IOS_PATH=${PROJECT_PATH}/iOS/ipa_build.sh#生成的Xcode工程相对路径#
XCODE_PATH=iOS/XCodeXCODE_TRUE_PATH=${PROJECT_PATH}/${XCODE_PATH}#生成的ipa的相对路径#
IPA_PATH=ipa#将unity导出成xcode工程#
echo "============== Unity Build XCode Project Begin =============="
$UNITY_PATH -projectPath $PROJECT_PATH -executeMethod Batchmode.BuildiOS project-$XCODE_PATH -quit
echo "============== Unity Build XCode Project Finish =============="#开始生成ipa#
echo "============== Unity Build IPA Begin =============="
echo $XCODE_TRUE_PATH
echo $IPA_PATH
echo $BUILD_IOS_PATH$BUILD_IOS_PATH $XCODE_TRUE_PATH $IPA_PATH
echo "============== Unity Build IPA Finish =============="

ipa_build.sh

#!/bin/sh

# 参数判断
if [ $# != 2 ];then  echo "Need two params: 1.path of project 2.name of ipa file"  exit
elif [ ! -d $1 ];then  echo "The first param is not a dictionary."  exit
fi
# 工程路径
xcode_project_path=$1  # IPA名称
ipa_name=$2  # build文件夹路径
build_path=${xcode_project_path}/build  archive_path=${build_path}/Archive/AutoBuild.xcarchive# 清理#
xcodebuild clean# 编译工程
cd $xcode_project_path
xcodebuild || exit  xcodebuild archive \
-project ${xcode_project_path}/Unity-iPhone.xcodeproj \
-scheme Unity-iPhone \
-configuration "Release" \
-archivePath ${archive_path}xcodebuild -exportArchive \
-exportOptionsPlist ${xcode_project_path}/info.plist \
-archivePath ${archive_path} \
-exportPath ${xcode_project_path}

Jenkins 打包:

一般版本发布只在一台机器上进行,不可能每次打包都去电脑上双击下打包脚本,此时可以使用 Jenkins 构建打包环境。简单说, Jenkins实现了通过Web访问,执行了上文的打包脚本。

Jenkins是一个丰富的图形化构建平台。提供脚本命令工具(bat、shell、perl、python、ant等),代码管理工具(svn cvs等)及账号权限管理等上千个辅助插件。为软件的持续化集成工作流程提供完美支持。

使用Jenkins进行Unity打包的好处:
1. 通过网页执行打包命令,很方便
2. 自动构建打包,比如每天晚上12点打包
3. 打包结果通知可以发送到邮件 QQ群等,因为他有丰富的插件支持

Jenkins官网 https://jenkins.io/, 具体方案此处就不展开了。


如有错误,欢迎指出。

email:dxmdxm1992#gmail.com

blog: http://blog.csdn.net/david_dai_1108

Unity脚本打包和Jenkins打包相关推荐

  1. PostCSS a not plugin 打包is jenkins打包发布问题跟踪 Error: [object Object] is not a PostCSS plugin

    之前在develop平台上 一个前台项目全自动构建都正常,昨天构建失败了,报错信息如下: ERROR Failed to compile with 191 errors3:44:52 PMerror ...

  2. html打包apk_将打包彻底一键化!Unity和Jenkins真是绝配

    说起打包,我们的QA简直是要抓狂,这个确实我也很同情他们.项目最开始打包是另一个同事做的,打包步骤是有些繁琐,但是项目上线后,不敢轻易动啊!每次他们打包总要跟我抱怨,国内版本打包步骤要10多步还能忍, ...

  3. Jenkins 打包配置

    一.Jenkins的安装及配置 1.在Jenkins官网下载对应平台的Jenkins安装文件 官网地址:https://www.jenkins.io/zh/ 点击下载,这里选择windows: 下载完 ...

  4. 使用Jenkins打包和部署Maven工程步骤详解

    上节已部署jenkins: https://blog.csdn.net/weixin_39816740/article/details/104943258 并 准备好一个maven项目发布到码云 上节 ...

  5. Jenkins打包部署项目到Windows或Linux运行

    准备工作 安装完Jenkins(插件等等).操作系统.git|svn 等等情况. 部署情况: 配置ftp服务或者配置ssh服务可以自行百度. 第一种:Jenkins部署项目到Linux,运行shell ...

  6. Unity内置资源如何打包避免冗余

    这是第249篇UWA技术知识分享的推送.今天我们继续为大家精选了若干和开发.优化相关的问题,建议阅读时间10分钟,认真读完必有收获. UWA 问答社区:answer.uwa4d.com UWA QQ群 ...

  7. 【Unity3D】Android 打包 ④ ( Android 工程打包 | Unity 中导出安卓工程 | Android Studio 打开 Unity 导出的 Android 工程 )

    文章目录 一. Android 工程打包 二. Android Studio 打开 Unity 导出的 Android 工程 一. Android 工程打包 Android 工程打包 就是将 Unit ...

  8. Jenkins打包IOS项目(疑难问题总结)

    最近正在基于Jenkins工具,实现IOS项目的CI构建,虽然已经折腾出来,但是记录一下踩过的坑 Jenkins打包IOS两种方案: 方案一:在Mac电脑上安装Jenkins,然后将本地作为一个专门用 ...

  9. Jenkins打包部署gitee项目至阿里云ECS服务器

    原文地址:Jenkins打包部署gitee项目至阿里云ECS服务器 - BIGTREE (whwtree.com) 所需插件: Git Parameter Plug-In插件 Publish Over ...

最新文章

  1. 如何监控impala的数据_CDH秘籍(两):cloudera Manager存储监控数据
  2. 程序员的自我修养之马桶修理工:compose方法的妙用!
  3. Windows 下启动前删除Resin日志等文件的bat命令
  4. why the ebitda and ebit differ so much for netflix?
  5. OpenGL Blinn-Phong Shader实例
  6. oracle connection 有时能取到有时候又取不到
  7. 经典面试题:聊一聊垃圾回收算法
  8. NAS 百科 —— http://baike.baidu.com/item/NAS%E7%BD%91%E7%BB%9C%E5%AD%98%E5%82%A8
  9. cad快捷键文件路径_你知道CAD图纸如何才能画得更快嘛?CAD快速绘图技巧!
  10. Swoole HTTP 的应用
  11. Chrome禁用缓存
  12. 企业实施ERP有哪些收益分析-要做到心中有数
  13. Vue3.0 + Ts 项目使用element-plus 自动按需导入 使用v-loading报错
  14. 软件测试每日例会,每日例会(二).md
  15. 19.丑数(UVa136)
  16. HTML标签关系——双标签和单标签,标签的嵌套与并列
  17. 创客思维在高等教育中的启迪作用
  18. 运行期报“#FFxxxxxx”不是属性“xxxxx”的有效值
  19. 【Applied Algebra】物理学中的群论漫谈1:群论基础
  20. 树莓派产生PWM控制伺服电机和步进电机踩坑

热门文章

  1. 3D空战游戏Android源码
  2. 炒股的智慧:股票投资93条秘籍
  3. WiFi万能钥匙 v4.3.50
  4. Java OCR 图像智能字符识别技术[可识别中文]
  5. java项目:基于Springboot+Vue+Element实现汽车租赁系统
  6. tcping实用小工具
  7. 怎么更改计算机管理员用户名和密码,Win10系统无法修改管理员账户密码怎么办?...
  8. 计算机无法安装蓝牙设备,如果蓝牙耳机已连接到计算机并且无法安装设备驱动程序,该怎么办...
  9. OSG入门即osgEarth建立一个地球的详细步骤
  10. ANSYS APDL学习(2):如何将obj文件或stl文件导入ANSYS APDL