如何用unity将做好的unity游戏打包包成apk文件

Unity编程笔录--Unity3D 导出的apk进行混淆和加固(防止反编译)
对于辛辛苦苦完成的程序被人轻易的反编译了,那就得不偿失了,这篇文章就是解决打包出来的进行代码加固和混淆。
准备资料:
1:作用是代码混淆,是的一个插件
2:作用是反编译,做过修改之后回编译成修改好的
3: 作用是反编译代码,方便查看代码
4:梆梆助手 作用是对进行重新签名和对的加固
以上文件下载地址:
密码: jm3m
如果链接无效,请联系我QQ:
1:打包一个带有签名的apk
在打包Player Settings设置里面,需要对签名重新设置,签名可以理解成为一个证书,可以设置密码信息,保证一部分的程序安全,据说在Unity5.0对程序的安全有了初步保障,有一个默认的签名。但是个人习惯还是使用自己的签名为好,如下图:
以上都设置好之后,Alias下拉框选项就会多出一个选项,此时就是需要创建的签名了
点击 之后,如图,填写所需要的信息,就可以创建了新的签名了,新的签名一定要保存好,这个东西对于程序加固还有作用。如图所示
我是保存到桌面上了
然后正常发布自己的apk就可以了
2:对进行反编译
接下来就要用到上面介绍的各种工具了,首先使用的是反编译工具,首先解压出来,这是一个安装包,解压之后,需要进行对其安装,最好是关闭杀毒软件,安装界面是一个界面,
选择1 简体中文就可以了,输入然后回车继续安装
安装过程中,会提示你需要安装,当然,对于已经打包出来说,这些肯定已经配置了,如果还没有配置,则需要配置环境了,当然,还有的的配置,这个请自行搜索,网上很多教程,这里就不多说了,如图所示:
按任意键继续
就开始安装程序了,等待安装完毕后,会有一个选项,这里选择或都可以,我选择
然后会让你选择安装器,这个选择哪个都行,我选择
然后需要你重启电脑,因为要配置鼠标右键的功能
重启后,右键自己发布出来的你会发现多了一些东西,这些东西都是有用的
点击APKDB编译,就准备开始对进行反编译
于是就开始反编译了,编译完成后,就在同级目录下生成一个文件夹,这就是反编译出来的文件
然后就开始对代码的混淆了
3:对程序的代码混淆
这次使用的是的插件,解压后是一个包,导入进去之后,你会发现工具栏多出了两个工具,如图所示
这里主要使用的是里面的选项,我们写的代码是在文件夹下,当然,你看到的是文件,没错,我们的代码就是被编译成了文件,也就是,此时,你可以用进行反编译来获取里面的代码(我分享出来的是绿色版本的,所以不需要安装就可以使用),如图所示
所以就要使用到混淆器,混淆器是把里面的代码变量等信息进行重命名,这样可读性会变得非常差,接着,回到中,点击下的选项,会弹出一个选择文件夹的提示框,这个提示框就是我们刚刚提到的文件夹,也就是解压后的文件夹,选择这个文件夹就可以了,它会自动进行代码混淆,
混淆完成后推出dos命令,此时的就被混淆了,利用我们的看下代码
全都是替换成了这类信息,相信你会头大的,没事,电脑能认识就行。然后就是对已经修改好的apk回编译成可以用的
4:回编译成可用的
对于已经进行代码混淆的文件来说,原先是进行反编译得到的文件,所以还需要回编译回去,右键反编译出来的文件夹,
同样选择使用APKDB编译,此时出现的画面略有不同,
这里选择1就可以了,等待回编译完成后,自动输出一个新的在输出之前,会有一个选项
选择Y就是了,新的目录是在原先目录下重新创建了一个名为“已编译”文件夹,打开后就是回编译的文件了。
到这里,我们完成了对代码的混淆,但是还没有进行加固,防止反编译,所以,请往下看
5:使用梆梆助手来对进行加固
如果还没有账号的需要申请账户,下载梆梆助手才可以使用,
然后导入自己的apk就可以了,这里是流水式的走下来,所以只需要导入和导出就可以了,
添加单个apk文件,选择好刚刚混淆后的,然后你做的事情就是等,等待上传完加固完下载完已完成,当到已完成的时候,说明这里已经可以导出了,导出需要前面提到的自己创建的签名,这里可是会用到的,如果不用,则安装包可能会出现问题
选择导出签名,选择签名文件,输入密码,然后点击开始导出
导出的apk是经过混淆,经过加固比较安全的了
9月19号更新:
其实这样也算不是很安全,同时你也可以对代码进行加壳,网上一搜一大堆的加壳的工具,程序的安全没有绝对的。
可以参考我的另外两篇文章:
http://blog.csdn.net/adambieber/article/details/
http://blog.csdn.net/adambieber/article/details/
好了,到这里结束了,如果有什么问题,请咨询我的:
看过本文的人也看了:
我要留言技术领域:
取消收藏确定要取消收藏吗?
删除图谱提示你保存在该图谱下的知识内容也会被删除,建议你先将内容移到其他图谱中。你确定要删除知识图谱及其内容吗?
删除节点提示无法删除该知识节点,因该节点下仍保存有相关知识内容!
删除节点提示你确定要删除该知识节点吗?教你怎样用unity3d发布一个Android的apk文件.绝对精细。
精华热门加亮
&yo &初识unity3d已经有一段时间了。大约那是2012年的暑假。无意从手机上搜到了这个引擎。从今以后我就喜欢上他了。然后又从网上找了许多关于unity资料。一点点的积累,学习。
&& 尤其是Android游戏的开发。不知道你们对这个引擎感觉怎么样啊。呵呵。好了,话不多说。今天呢。我希望大家能和我来一起学习怎样用uinty3d开发出在android系统上运行的游戏。希望能与君共勉。
为什么要做这个教程呢。主要是因为过了今天晚上就是世界末日了。恐怕以后就没有机会了。(^_^ &哈哈。开玩笑了、)
&& &
&& 那我们就开始吧!!!!
&&1.首先呢。就是必要的一些软件工具了。 不用说unity3d这个是必要的(觉得这是不是废话)。然后就是。我们的一些运行的环境了。 &Java(jdk). &Android模拟器(sdk)[当然你有真机也可以]。这些你可以从网上下载。
在这里我给大家提供一个 Android模拟器(sdk)的 & &Java(jdk)就不提供了吧。度娘一下就出来了。Unity3d
就更不用说了吧(诶。还是有点废话)。呵呵。
2. 安装
一.Java的安装。
这个非常简单。打开你下载好的选择个路径安装就可以了。
在个就是环境配置。右击我的电脑-属性-高级-环境变量-新建三个路径(变量名有的话直接在上面操作就可以了)。
&& 1.变量名JAVA_HOME &
&& & 变量值C:\Program Files\Java\jdk1.7.0_03 (这个可能没有你必须新建。 注意:C:\Program Files\Java\jdk1.7.0_03这是我的。你的可能是D:\......,,E:\......) 这是我的java路径
726 || this.offsetHeight>700){if(this.offsetWidth/726 > this.offsetHeight/700){this.width=726;}else{this.height=700;}}" style="max-width:726max-height:700" title="点击查看原图" onclick="if(this.parentNode.tagName!='A') window.open('http://www.ceeger.com/forum/attachment/Mon_9_2ad57c.png');" />
726 || this.offsetHeight>700){if(this.offsetWidth/726 > this.offsetHeight/700){this.width=726;}else{this.height=700;}}" style="max-width:726max-height:700" title="点击查看原图" onclick="if(this.parentNode.tagName!='A') window.open('http://www.ceeger.com/forum/attachment/Mon_9_e2cba.png');" />
726 || this.offsetHeight>700){if(this.offsetWidth/726 > this.offsetHeight/700){this.width=726;}else{this.height=700;}}" style="max-width:726max-height:700" onclick="if(this.parentNode.tagName!='A'&&this.width>screen.width-461) window.open(this.src);" />
726 || this.offsetHeight>700){if(this.offsetWidth/726 > this.offsetHeight/700){this.width=726;}else{this.height=700;}}" style="max-width:726max-height:700" onclick="if(this.parentNode.tagName!='A'&&this.width>screen.width-461) window.open(this.src);" />
&& 2.变量名CLASSPATH &
变量值 .;%JAVA_HOME%\lib\tools.%JAVA_HOME%\lib\dt.%JAVA_HOME%\C:\Program Files\Java\jdk1.7.0_03\jre\lib\ext\QTJava.zip &
726 || this.offsetHeight>700){if(this.offsetWidth/726 > this.offsetHeight/700){this.width=726;}else{this.height=700;}}" style="max-width:726max-height:700" title="点击查看原图" onclick="if(this.parentNode.tagName!='A') window.open('http://www.ceeger.com/forum/attachment/Mon_9_d237bab5b475ab5.png');" />
726 || this.offsetHeight>700){if(this.offsetWidth/726 > this.offsetHeight/700){this.width=726;}else{this.height=700;}}" style="max-width:726max-height:700" onclick="if(this.parentNode.tagName!='A'&&this.width>screen.width-461) window.open(this.src);" />
&& &3.变量名Path & & 变量值C:\Program Files\Java\jdk1.7.0_03\bin( 这个可能先前已经有了。这段路径你放在前后都无所谓。如果你放在后面C:\...前面要有个分号隔开。如果有了就不用了。)
726 || this.offsetHeight>700){if(this.offsetWidth/726 > this.offsetHeight/700){this.width=726;}else{this.height=700;}}" style="max-width:726max-height:700" title="点击查看原图" onclick="if(this.parentNode.tagName!='A') window.open('http://www.ceeger.com/forum/attachment/Mon_9_3c046d5bc19ee2d.png');" />
726 || this.offsetHeight>700){if(this.offsetWidth/726 > this.offsetHeight/700){this.width=726;}else{this.height=700;}}" style="max-width:726max-height:700" onclick="if(this.parentNode.tagName!='A'&&this.width>screen.width-461) window.open(this.src);" />
注意。这上面都是我个人的。你要清楚你的java安装路径。
二.Android模拟器(sdk)的安装。
这个非常简单。你下载下来后。直接解压就可以了。解压以后就是这样的。
别忘了。这个也需要 环境设置。将你的模拟器platform-tools文件夹路径添加到上面讲的Path
变量值下。我的是G:\adt-bundle-windows-x86\platform-tools
726 || this.offsetHeight>700){if(this.offsetWidth/726 > this.offsetHeight/700){this.width=726;}else{this.height=700;}}" style="max-width:726max-height:700" title="点击查看原图" onclick="if(this.parentNode.tagName!='A') window.open('http://www.ceeger.com/forum/attachment/Mon_9_e02.jpg');" />
726 || this.offsetHeight>700){if(this.offsetWidth/726 > this.offsetHeight/700){this.width=726;}else{this.height=700;}}" style="max-width:726max-height:700" onclick="if(this.parentNode.tagName!='A'&&this.width>screen.width-461) window.open(this.src);" />
可以点击sdk Manager.exe
726 || this.offsetHeight>700){if(this.offsetWidth/726 > this.offsetHeight/700){this.width=726;}else{this.height=700;}}" style="max-width:726max-height:700" title="点击查看原图" onclick="if(this.parentNode.tagName!='A') window.open('http://www.ceeger.com/forum/attachment/Mon_9_bc39.png');" />
726 || this.offsetHeight>700){if(this.offsetWidth/726 > this.offsetHeight/700){this.width=726;}else{this.height=700;}}" style="max-width:726max-height:700" onclick="if(this.parentNode.tagName!='A'&&this.width>screen.width-461) window.open(this.src);" />
里面已经有我下载安装好的Android版本,2.3.3 & 3.0 &3.1.(所以你下载的才那么大600多M)。
726 || this.offsetHeight>700){if(this.offsetWidth/726 > this.offsetHeight/700){this.width=726;}else{this.height=700;}}" style="max-width:726max-height:700" title="点击查看原图" onclick="if(this.parentNode.tagName!='A') window.open('http://www.ceeger.com/forum/attachment/Mon_9_52549dab33e4117.png');" />
726 || this.offsetHeight>700){if(this.offsetWidth/726 > this.offsetHeight/700){this.width=726;}else{this.height=700;}}" style="max-width:726max-height:700" onclick="if(this.parentNode.tagName!='A'&&this.width>screen.width-461) window.open(this.src);" />
如果你需要更高的版本。可以运行更新你想要的更多版本。
好。这个就先放这。让后点击AVD Manager.exe.
726 || this.offsetHeight>700){if(this.offsetWidth/726 > this.offsetHeight/700){this.width=726;}else{this.height=700;}}" style="max-width:726max-height:700" title="点击查看原图" onclick="if(this.parentNode.tagName!='A') window.open('http://www.ceeger.com/forum/attachment/Mon_9_ada038.png');" />
726 || this.offsetHeight>700){if(this.offsetWidth/726 > this.offsetHeight/700){this.width=726;}else{this.height=700;}}" style="max-width:726max-height:700" onclick="if(this.parentNode.tagName!='A'&&this.width>screen.width-461) window.open(this.src);" />
运行以后。出现这个界面。
726 || this.offsetHeight>700){if(this.offsetWidth/726 > this.offsetHeight/700){this.width=726;}else{this.height=700;}}" style="max-width:726max-height:700" title="点击查看原图" onclick="if(this.parentNode.tagName!='A') window.open('http://www.ceeger.com/forum/attachment/Mon_9_5203eebf06c8f73.png');" />
726 || this.offsetHeight>700){if(this.offsetWidth/726 > this.offsetHeight/700){this.width=726;}else{this.height=700;}}" style="max-width:726max-height:700" onclick="if(this.parentNode.tagName!='A'&&this.width>screen.width-461) window.open(this.src);" />
划红线的是我已经新建好的不同的Android版本。别担心。一会你的也会有的。
你要做的是。点击右边的new按钮。
出现下面的界面。
726 || this.offsetHeight>700){if(this.offsetWidth/726 > this.offsetHeight/700){this.width=726;}else{this.height=700;}}" style="max-width:726max-height:700" title="点击查看原图" onclick="if(this.parentNode.tagName!='A') window.open('http://www.ceeger.com/forum/attachment/Mon_9_ea7a752d3fb1daf.png');" />
726 || this.offsetHeight>700){if(this.offsetWidth/726 > this.offsetHeight/700){this.width=726;}else{this.height=700;}}" style="max-width:726max-height:700" onclick="if(this.parentNode.tagName!='A'&&this.width>screen.width-461) window.open(this.src);" />
填写好你的AVDname 这个可以任意。
再选择Device。这是设置屏幕大小的。你可以选择一个都可以。
在个就是。Target 点击下拉箭头。看到没有。;里面的内容就是你安装的各个Android版本。你可以选择自己需要的。
最后别忘了。SD Card选择大小。好了。点击OK。再ok.
看到没有。你的AVD界面。是不是已经有了一个Android版本了?你可以多建几个版本。
选择一个Android版本。点击右下角的Start接着继续点击Launch。等一会。
真机(虚拟机)就出来了。大功告成。哈哈哈哈。
好吧。现在环境已经配置完成了
3.发布apk
&& & & &
&&打开你的unity3d .至于你要发布什么。做的是什么。我们在这里就不说了吧。我们现在只讨论发布过程。
726 || this.offsetHeight>700){if(this.offsetWidth/726 > this.offsetHeight/700){this.width=726;}else{this.height=700;}}" style="max-width:726max-height:700" title="点击查看原图" onclick="if(this.parentNode.tagName!='A') window.open('http://www.ceeger.com/forum/attachment/Mon_9_2b4ffff0918579a.png');" />
726 || this.offsetHeight>700){if(this.offsetWidth/726 > this.offsetHeight/700){this.width=726;}else{this.height=700;}}" style="max-width:726max-height:700" onclick="if(this.parentNode.tagName!='A'&&this.width>screen.width-461) window.open(this.src);" />
假如你应经做好了东西。准备发布。那就开始吧。
&&首先。设置一下你的模拟器路径。点击菜单栏中的Edit-Preferences
726 || this.offsetHeight>700){if(this.offsetWidth/726 > this.offsetHeight/700){this.width=726;}else{this.height=700;}}" style="max-width:726max-height:700" title="点击查看原图" onclick="if(this.parentNode.tagName!='A') window.open('http://www.ceeger.com/forum/attachment/Mon_9_4a14cb.jpg');" />
726 || this.offsetHeight>700){if(this.offsetWidth/726 > this.offsetHeight/700){this.width=726;}else{this.height=700;}}" style="max-width:726max-height:700" onclick="if(this.parentNode.tagName!='A'&&this.width>screen.width-461) window.open(this.src);" />
看Android SDK Location这个选项 浏览你的模拟器路径。
726 || this.offsetHeight>700){if(this.offsetWidth/726 > this.offsetHeight/700){this.width=726;}else{this.height=700;}}" style="max-width:726max-height:700" title="点击查看原图" onclick="if(this.parentNode.tagName!='A') window.open('http://www.ceeger.com/forum/attachment/Mon_9_9dc96f.jpg');" />
726 || this.offsetHeight>700){if(this.offsetWidth/726 > this.offsetHeight/700){this.width=726;}else{this.height=700;}}" style="max-width:726max-height:700" onclick="if(this.parentNode.tagName!='A'&&this.width>screen.width-461) window.open(this.src);" />
我的是
726 || this.offsetHeight>700){if(this.offsetWidth/726 > this.offsetHeight/700){this.width=726;}else{this.height=700;}}" style="max-width:726max-height:700" title="点击查看原图" onclick="if(this.parentNode.tagName!='A') window.open('http://www.ceeger.com/forum/attachment/Mon_9_55ceb5b.jpg');" />
726 || this.offsetHeight>700){if(this.offsetWidth/726 > this.offsetHeight/700){this.width=726;}else{this.height=700;}}" style="max-width:726max-height:700" onclick="if(this.parentNode.tagName!='A'&&this.width>screen.width-461) window.open(this.src);" />
这个设置完成后。我们继续。
点击 File-Build Settings
726 || this.offsetHeight>700){if(this.offsetWidth/726 > this.offsetHeight/700){this.width=726;}else{this.height=700;}}" style="max-width:726max-height:700" title="点击查看原图" onclick="if(this.parentNode.tagName!='A') window.open('http://www.ceeger.com/forum/attachment/Mon_9_93ab30e620b329a.jpg');" />
726 || this.offsetHeight>700){if(this.offsetWidth/726 > this.offsetHeight/700){this.width=726;}else{this.height=700;}}" style="max-width:726max-height:700" onclick="if(this.parentNode.tagName!='A'&&this.width>screen.width-461) window.open(this.src);" />
然后再 点击Add Current 添加你的场景。再 点击Switch platform 确保你的那个unity小图标在Android一行, 再点击Play Settings....
726 || this.offsetHeight>700){if(this.offsetWidth/726 > this.offsetHeight/700){this.width=726;}else{this.height=700;}}" style="max-width:726max-height:700" title="点击查看原图" onclick="if(this.parentNode.tagName!='A') window.open('http://www.ceeger.com/forum/attachment/Mon_9_e1cee7.png');" />
726 || this.offsetHeight>700){if(this.offsetWidth/726 > this.offsetHeight/700){this.width=726;}else{this.height=700;}}" style="max-width:726max-height:700" onclick="if(this.parentNode.tagName!='A'&&this.width>screen.width-461) window.open(this.src);" />
要注意的是划红线的部分。如果你原先没设置。第一个红线出你的应该是com.Company.Productname. 记住要把Company改成别的。只要不是Company就可以了。不让发布不了。
另外就是第二个划红线处。这是选择你要发布的apk文件的运行环境。也是最低环境。这里我们选择2.3 &每一个unity版本都有一个发布最低版本的限制。我这个已经是最低限制了。
更高的unity版本发布的最低Android系统版本限制也就会越高。
&& 特别要注意的是。你发布的Android版本如果你的模拟器里面没有这个版本的。那就会出现发布错误。还有就是假如说你发布了一个3.0的版本。你的模拟器里只有一个很高的4.0的版本。那也是会发布错误的。所以这一点要特别的注意。我原来就只在这里碰壁的。
好了。这个设置完就可以真的发布了。点击Build按钮。就可以发布出apk文件了。
最后教大家一下发布的apk文件怎么安装。
这个就简单了。
把你的apk文件放在D盘的根目录下(你也可以放在别的盘根目录下。因为我的除了C盘只有D盘了。郁闷啊)。
为什么要放在盘的根目录下呢?。这是为了安装方便。下面你就知道了。
然后打开:“命令提示符”
你也可以点击 开始-运行 输入cmd 也可以打开命令提示符。
你打开命令提示附后。 在上面输入 D:回车(这样就是在d根目录下找到你的apk文件。如果你放在更深的文件里。那就很麻烦了。)
然后在输入
adb install &xxx.apk &回车(xxx是你apk文件的文件名)
你就会看到。 他正在安装。
726 || this.offsetHeight>700){if(this.offsetWidth/726 > this.offsetHeight/700){this.width=726;}else{this.height=700;}}" style="max-width:726max-height:700" title="点击查看原图" onclick="if(this.parentNode.tagName!='A') window.open('http://www.ceeger.com/forum/attachment/Mon_9_ffa4a0ed6419db0.png');" />
726 || this.offsetHeight>700){if(this.offsetWidth/726 > this.offsetHeight/700){this.width=726;}else{this.height=700;}}" style="max-width:726max-height:700" onclick="if(this.parentNode.tagName!='A'&&this.width>screen.width-461) window.open(this.src);" />
&&
注意的是。安装以前你的Android虚拟机要运行这。
安装完成后。你在你的虚拟机屏幕上就可以看到。你的东西了。 是不是很激动啊。
慢慢享受吧。。。。。。。
本文章属于个人原创文章。如果有什么不足的地方。还望大家不吝赐教。
这一夜有你们真好。愿这一夜你们过得愉快。
726 || this.offsetHeight>700){if(this.offsetWidth/726 > this.offsetHeight/700){this.width=726;}else{this.height=700;}}" style="max-width:726max-height:700" title="点击查看原图" onclick="if(this.parentNode.tagName!='A') window.open('http://www.ceeger.com/forum/attachment/Mon_9_7da1c2.png');" />
726 || this.offsetHeight>700){if(this.offsetWidth/726 > this.offsetHeight/700){this.width=726;}else{this.height=700;}}" style="max-width:726max-height:700" onclick="if(this.parentNode.tagName!='A'&&this.width>screen.width-461) window.open(this.src);" />
谢谢大家。
若你想下子下来看的话。我这里有原件。
&& & & & & & & & & & & & & & & & & & & & & & & & & & &风吹麦浪
要评论请先&或者&
楼主威武啊
實在要支持!
强悍滴人,顶
楼主 是不是64位的系统 不太行?
我也是新手。以后还请大家多多指教。整理的Unity导出安卓工程利用ANT进行多渠道批量打包APK - 简书
整理的Unity导出安卓工程利用ANT进行多渠道批量打包APK
导出的安卓工程利用ant进行多渠道循环批量打包做android开发的配置这个是基础。http://www.cnblogs.com/zhj5chengfeng/archive//2841253.html二:配置Android的SDK环境变量除了需要Java的环境变量,我们还需要配置Android的sdk的位置,名字是ANDROID_HOME,值就是你的android的sdk的位置,比如我的,就如下所示:
二:安装ant并设置ant环境变量、在Ant官网()下载最新Ant包,在下载Ant扩展包ant-contrib-1.0b3.jar(这个包就是用于循环编译多个渠道包)。2、将Ant包解压到常用开发工具目录(自行选择,我的放在D:/Dev目录下),然后将下载下来的Ant扩展包ant-contrilb拷贝到Ant安装目录下的lib文件夹中。
3、设置Ant环境变量:ANT_HOME,变量值指向ant目录。
4、在环境变量Path里增加:%ANT_HOME%/%ANT_HOME%/
、设置好了之后验证一下。打开CMD输入ant -version命令出现下面反馈,说明ant安装成功
三、配置打包项目Unity中导出Android项目
导出项目文件目录如下:
导入到Eclipse中
在AndroidMainfest.xml中的application标签下添加一个用来识别渠道的标签如果出现问题,修改之后弹出错误,请选择快速修正、生成build.xml文件打开cmd并进入到C:\Users\Administrator\Desktop\Test\4\com.game.qq这个项目目录下 使用android update project -n com.game.qq -p .命令(注意-n表示项目的名称,-p参数后面有个点表示当前目录,-p后面还有一个点(.))。注意:如果是Unity打包出来的Android工程,-n后面加入的名称一定要与Unity中PlayerSetting-BundleIdentifier中的名称一致
执行这个命令后,会在项目中自动生成build.xml和local.properties文件。编辑build.xml文件"${sdk.dir}/tools/ant/build.xml"/&"out.unaligned.dir"value="C:/Users/Administrator/Desktop/Test/4/"/&"${out.unaligned.dir}"/&"modify_update_file"&***********************make channel ${channel}"AndroidManifest.xml"match='channel'replace='${channel}'byline="false"encoding="utf-8"/&"out.unaligned.file"location="${out.unaligned.dir}/HelloWorld_${app_version}_${channel}_android.apk"/&"make_one_channels"depends="savemanifest,modify_update_file,release,replacemanifest,deletebin"description="description"&"replacemanifest"&***********************replacemanifest"${basedir}\AndroidManifest.xml"/&"..\temp\build\META-INF\AndroidManifest.xml"todir="${basedir}"encoding="utf-8"/&"savemanifest"&***********************savemanifest"${basedir}\AndroidManifest.xml"todir="..\temp\build\META-INF"encoding="utf-8"/&"deletebin"&"${basedir}\bin"/&"foreach"classname="net.sf.antcontrib.logic.ForEach"classpath="D:/AndroidSDK/tools/lib/ant-contrib-1.0b3.jar"/&"make_channels"&"make_one_channels"list="${market_channels}"delimiter=","param="channel"&打包的过程:(1)第36行make_channels的target是ant的入口,该target中使用foreach循环调用名为make_one_channels的target(第17行)并把market_channels集合中的每个值替换给channel(2)make_one_channels的target指定了每次打包的过程:savemanifest:打包前先将原始的AndroidManifest.xml复制到与项目同一层级目录下的temp下build下META-INF中modify_update_file:匹配到AndroidManifest.xml中的channel并将其替换release:自动编译加签名replacemanifest:删除AndroidManifest.xml,将temp/build/META-INF中的原始AndroidManifest.xml复制回项目根目录下deletebin:删除bin文件(注:这步很重要,否则只能打出一个渠道的APK,当时做这块的时候碰到的问题)打包方法的使用打开cmd终端,执行cd C:\Users\Administrator\Desktop\Test\4\com.game.qq注意在运行之前要注意先clean一下项目,不然可能会报错误,切记!!!!需要在cmd终端,项目目录路径下执行ant cleanBUILD FAILEDD:\AndroidSDK\tools\ant\build.xml:649: The following error occurred while executing this line:D:\AndroidSDK\tools\ant\build.xml:694: return 1然后执行ant make_channels如果项目中引入了第三方工程library,比如我的项目,引入三个第三方工程:
如果执行打包命令,那么会报错,这是因为那个library 还不支持ant自动编译,我们需要先让它也支持(注意:第三方工程要设置为Lib:project-&properties-&Android-&Library-&Is Library 这个勾选上)。进入到library项目所在的目录,输入命令 android update lib-project -p ./
(注意是 lib-project);
执行完之后,你会发现第三方工程目录下多了build.xml文件和local.properties文件。然后你在执行打包命令就可以成功打包了。
用两张图告诉你,为什么你的 App 会卡顿? - Android - 掘金 Cover 有什么料? 从这篇文章中你能获得这些料: 知道setContentView()之后发生了什么? ... Android 获取 View 宽高的常用正确方式,避免为零 - 掘金 相信有很多...
用两张图告诉你,为什么你的 App 会卡顿? - Android - 掘金Cover 有什么料? 从这篇文章中你能获得这些料: 知道setContentView()之后发生了什么? ... Android 获取 View 宽高的常用正确方式,避免为零 - 掘金相信有很多朋友...
前言 eclipse在Android开发过程中使用起来还是比较方便的,但是在打包时的编译速度确实不敢恭维,那么自动化打包在这时就显得很重要了,这是一个解决程序员宝贵的双手的技术。 正文 一、在开始自动化打包之前我们先要配置好环境变量(包括jdk、Android sdk以及a...
仅是本人的打包流程,做个笔记 (以下为本人电脑上的路径配置,仅参考) jdk环境变量:
E:\Program Files\Java\jdk1.7.0_07\ AndroidSDK环境配置:
将你的AndroidSDK的sdk目录下的tools文件和pla...
Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智能路由,微代理,控制总线)。分布式系统的协调导致了样板模式, 使用Spring Cloud开发人员可以快速地支持实现这些模式的服务和应用程序。他们将在任何分布式...
《请回答1988》,1988年在首尔市道峰区双门洞居住的五家人的故事,亲情、友情与爱情温暖共存。 历时近两个月,终于补完这部豆瓣评分9.4的韩剧,20集并不多,但每一集都时长感人。大结局时,看着回顾的镜头,好像自己也跟着经历了一遍剧中的时间线。 第一次想把看完一部剧的感受写...
昨日玫瑰已采 今日三朵玫瑰 1.早起 2.回听阅读内容打卡 3.准备周一讲课内容 【幸福实修99天目标】 1.臣服父母,每天做打卡。 2.信念植入,每天对镜子说一遍。 3.尊重老公,不评判老公的穿衣风格、饮食习惯、工作生活方式和与孩子、父母相处的模式,温和地表达自己的观点。...
如果你倾注所有爱与精力养了一只宠物你会不会因为它的生病去世难过的不知所措。就像白色纸张上晕染大朵大朵的墨 就像照着镜子却发现不防水的眼线伴着眼泪形成一串串黑色的水晕线 就像我站在街的这头而你在那头一样的别扭不真实。所有的梦不是飘在空中的而是漂在水面慢慢的吸噬肿胀打旋最后沉淀...}

我要回帖

更多关于 unity打包成apk 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信