Unity自动打包Apk
unity打包apk相对来说比较容易,相信出过的人都明白,出包过程,没有大的难度,一步一操作,一步一等待,繁琐耗时,不懂的人又代替不了。这时候需求就来了,如何简单的一键打包搞定,这个就稍微有点难度,当然作为程序员就是要解决这些问题,封装变化,变繁为简。

$unity_path -projectPath $project_path -quit -batchmode -executeMethod ProjectBuild.ProjectSetting -qmplatform $platform
//$unity_path unity执行文件路径
//$project_path 项目工程路径
//-batchmode 不打开unity
//-executeMethod 执行unity方法
//ProjectBuild.ProjectSetting Editor下的脚本名为ProjectBuild,其中有个名为ProjectSetting的方法,具体代码如下
//-qmplatform $platform 传入的参数
(2)、有一些属性设置,比较难找,使用 PlayerSettings.SetPropertyInt("ScriptingBackend", (int)ScriptingImplementation.Mono2x, BuildTarget.iPhone); 慢慢尝试
class ProjectBuild : Editor
{
const string OPT_PLATFORM = "-qmplatform";
const string OPT_BUNDLE_VERSION = "-qmbundle_version";
const string OPT_SHOW_VERSION = "-qmshow_version";
const string OPT_VERSION_CODE = "-qmversion_code";
/// <summary>
/// 根据参数配置Unity ProjectSetting
/// </summary>
static void ProjectSetting()
{
Dictionary<string, string> settings = new Dictionary<string, string>();
settings[OPT_PLATFORM] = "";
settings[OPT_BUNDLE_VERSION] = "";
settings[OPT_SHOW_VERSION] = "";
settings[OPT_VERSION_CODE] = "";
string[] args = System.Environment.GetCommandLineArgs();
ParseArgs(settings, args);//解析参数 PlayerSettings.companyName = "****";
PlayerSettings.bundleVersion = settings[OPT_BUNDLE_VERSION];
PlayerSettings.shortBundleVersion = settings[OPT_SHOW_VERSION];
PlayerSettings.defaultInterfaceOrientation = UIOrientation.AutoRotation;
PlayerSettings.allowedAutorotateToLandscapeLeft = true;
PlayerSettings.allowedAutorotateToLandscapeRight = true;
PlayerSettings.strippingLevel = StrippingLevel.StripByteCode;
PlayerSettings.aotOptions = "nimt-trampolines=512,ntrampolines=2048";
PlayerSettings.targetGlesGraphics = TargetGlesGraphics.Automatic;
PlayerSettings.Android.preferredInstallLocation = AndroidPreferredInstallLocation.Auto;
PlayerSettings.Android.targetDevice = AndroidTargetDevice.FAT;
PlayerSettings.Android.minSdkVersion = AndroidSdkVersions.AndroidApiLevel9;
PlayerSettings.Android.forceInternetPermission = true;
PlayerSettings.Android.forceSDCardPermission = true;
PlayerSettings.Android.bundleVersionCode = int.Parse(settings[OPT_VERSION_CODE]);
PlayerSettings.Android.useAPKExpansionFiles = true;//是否使用obb分离模式
PlayerSettings.productName = "******";
PlayerSettings.bundleIdentifier = "*****";
PlayerSettings.SetScriptingDefineSymbolsForGroup(BuildTargetGroup.Android, "宏定义");//宏定义的设置
EditorUserBuildSettings.SwitchActiveBuildTarget(BuildTarget.Android);
}
}
(3)、对于一些如Icon、splash页面的设置可以使用原名替换图片的方法
(4)、 PlayerSettings.Android.useAPKExpansionFiles = true;//是否使用obb分离模式,这个主要是针对Google play的
obb的命名,是需要一定的规则的,不然无法使用,可以使用代码自动设置obb的名字在Editor目录下有这个方法,出包时会自动调用,可以在这里设置
obb的使用上的还有一点小小的坑,Google play商店在下载游戏的时候,会自动下载apk所需的obb,但是有时候也不能保证一定成功,所以需要项目本身就具有这样的检测下载功能
https://www.assetstore.unity3d.com/en/#!/content/3189这里有非常详细的代码,可以copy直接使用
1、sdk的接入
static void Build()
{
string android_project_path = "";//目标目录
BuildTarget target = BuildTarget.Android;
string[] outScenes = GetBuildScenes();//需要打包的scene名字数组
BuildPipeline.BuildPlayer(outScenes , android_project_path, target, BuildOptions.AcceptExternalModificationsToPlayer);
}
// BuildOptions.AcceptExternalModificationsToPlayer 表示出成Android工程
到官方主页http://ant.apache.org下载新版(目前为Ant1.9.6)的ant,得到的是一个apache-ant-1.9.6-bin.zip的压缩包。将其解压到你的硬盘上,例如:C:\apache-ant-1.9.6。然后配置环境变量
ANT_HOME C:/ apache-ant-1.9.6
path C:/ apache-ant-1.9.6/bin
classpath C:/apache-ant-1.9.6/lib
key.store=./config/xxx.keystore
key.alias=xxx
key.store.password=xxx
key.alias.password=xxx
android update project -n $apk_name -t -p "$android_pj_path"
//$apk_name 生成apk的名字
//"$android_pj_path" Android工程路径
5、使用ant release,这个command line需要在Android工程目录下执行,不然command line会找不到路径,最后在bin目录下生成apk文件,有签名的和不签名的
可以考虑与Jenkin结合使用,会更方便操作
(by sht)


Unity自动打包Apk的更多相关文章
- Unity自动打包 apk
1.流程 Unity打包 apk,会把Unity安装目录下的默认 AndroidManifest.Xml 文件覆盖到apk中去,同时还会拷贝该文件所在目录下的其它默认设置文件,如 res 和 asse ...
- Unity自动打包工具
转载 https://blog.csdn.net/ynnmnm/article/details/36774715 最开始有写打包工具的想法,是因为看到<啪啪三国>王伟峰分享的一张图,他们有 ...
- unity3d在菜单栏,一键设置Player setting及自动打包并设置apk的存储位置
项目进行中,领导要求能够进行一键设置Player settings及自动打包并设置apk的位置,所以自己就上网搜索了很多大神的文章.最后是完成了领导需要的功能,在这里记录并分享一下(此项指针对安卓ap ...
- 基于python脚本,实现Unity全平台的自动打包
转载请标明出处:http://www.cnblogs.com/zblade/ 0. 概述 本文主要针对项目中自动打包过程进行调研,实现用python脚本来打出win/android/ios三个平台下的 ...
- C#实现APK自动打包
C#实现APK自动打包 最近做了一个安卓项目,其中有一个自动打包的功能,要把供应商id写入APK后打包. 一.思路 在AndroidMinifest.xml中加入一个标识字段,如下 ...
- Android Studio Gradle 多渠道自动打包,动态修改HostUrl,签名apk,混淆配置详解
文/ skay csdn博客:http://blog.csdn.net/sk719887916/article/details/40541163 最近遇到项目从Eclispe迁移到Android st ...
- Gradle实现自动打包,签名,自定义apk文件名
Gradle实现自动打包,签名,自定义apk文件名 什么是签名,签名有什么用 Android APP都需要我们用一个证书对应用进行数字签名,不然的话是无法安装到Android手机上的,平时我们调试运行 ...
- 【Unity】打包安卓APK常见问题
问题:unity error invalid command android 原因:Android版本较新,Unity版本太旧(如4.X),Unity打包APK时调用Android工具使用的命令已被安 ...
- unity 打包apk安装失败
Unity 打包Apk安装失败,错误提示:安卓未完成. 解决方案:检查BundleID是否一致
随机推荐
- 开源(免费)三维 GIS(地形,游戏)
先写想法: 想做个简单的地形漫游,于是考虑在ww直接开发,或找个控件形式的开发组件. 最大的期望有: 1. 支持google的sketchup,快速智能三维建模 2. 设计模式做好点,最好先做成组件形 ...
- python 3 安装 scrapy 并运行成功
今天,python 3 安装 scrapy, 并运行成功.特此纪念! 我的环境:windows 10(64位) + python 3.5.2(64位) 其中几个要点说明一下: 1.有几个依赖库需要事先 ...
- 用python简单处理图片(5):图像直方图
我们先来看两个函数reshape和flatten: 假设我们先生成一个一维数组: vec=np.arange(15) print vec 显示为: [ 0 1 2 3 4 5 6 7 8 9 10 1 ...
- 有关JVM内存
程序计数器是一个比较小的内存区域,用于指示当前线程所执行的字节码执行到了第几行,是线程隔离的 Java方法执行内存模型,用于存储局部变量,操作数栈,动态链接,方法出口等信息,是线程隔离的 原则上讲,所 ...
- Atom使用心得 - 21世纪的编辑器
Atom使用心得 - 21世纪的编辑器 Atom下载 Atom简介:是专门为程序员推出的一个跨平台文本编辑器.具有简洁和直观的图形用户界面,并有很多有趣的特点:支持CSS,HTML,JavaScrip ...
- Chrome扩展开发(Gmail附件管理助手)系列之〇——概述
目录: 0.Chrome扩展开发(Gmail附件管理助手)系列之〇——概述 1.Chrome扩展开发之一——Chrome扩展的文件结构 2.Chrome扩展开发之二——Chrome扩展中脚本的运行机制 ...
- 整合 Bing translator 到自己的系统中
整合这个功能, 是因为 aliexpress 的买家来自不同国家, 我的 "小卖家" 同步到买家的留言, 很多西班牙,俄罗斯等小语种的文字, 看不懂. Google 被墙, 基本很 ...
- Mac无法找到摄像头问题解决
facetime显示“未检测到摄像头”之类的,重启后可能摄像头有工作正常了,摄像头不稳定 重置 NVRAM后恢复正常,据说机器卡的时候,此法也可以使用. https://support.apple.c ...
- 中国IT 未来何在
许久之前,已对国内IT业的一些问题颇有看法,而今又恰逢360与AV-C的纠缠,实在忍不住要发发牢骚.IT在中国,发展不过二十来年,却以迅雷之速横扫各个领域,令人感叹,此成就是不可否认的:然而,发展 ...
- hello-weapp 微信小程序最简示例教程
打开微信小程序官方开发文档,最好全篇看一遍,基本上就会了. 点击文档中 工具 选项卡中 下载工具页面 下载对应系统版本的微信开发者工具 注意:脱离微信开发者工具是不能调试的 好了,安装下工具即可打开, ...