• Unity和AS导出OBB和APK


    推荐阅读:

    obb

    OBB(Opaque Binary Blob)文件格式,是安卓游戏通用数据包。在一些大型游戏上较为常见,同时还附以Data文件,亦或是md5.dat文件出现。通常在游戏开始前,程序会自动将obb解包至/sdcard/Android/data或者是/android/obb目录下,但也有游戏不会解包,直接读取。

    前言

    游戏要上架谷歌商店 除了要接好谷歌SDK外,谷歌还要求提交商店的apk必须在100M以下,对于游戏来说几乎都会大于100M,所以提交商店apk拆分成基础apk(小于100M)+obb文件,两个文件一起上传GooglPlay,用户下载的时候会连同apk+obb一起下载到用户手机上,当然对于用户来说,完全感受不到区别的。

    unity导出OBB

    File --- Build Settings ---Android --- Player Settings --- Publishing Settings --- Split Application Binary
    在这里插入图片描述
    通过以上图片,我相信大多数人已经知道怎么创建了,apk签名比较简单,如果之前没有签名文件,那么选择图中的Create New Keystore然后在下面两个密码框中输入密码点击Browse Keystore创建一个.keystore文件,签名文件就创建完成了,只要build的时候,自然就会将你的apk签名了,那签名有什么用呢?作为一个开发过android的人,我算是了解一些的,以前到一些开发者平台上传安卓的apk发布的时候,经常会有提示安全性问题,比如360开发者平台,那么如果你想解决这个问题,你就得加固,就像360平台有提供一个加固网站,只要你签过名的apk上传到他的加固网站,然后下载下来,在使用同一个签名文件重新签名,那么你的apk在重新发布之后,在他的平台上面也就不会有安全问题警告了。

    接下来选择Build System : Gradle 来构建AS工程和OBB文件
    在这里插入图片描述

    在这里插入图片描述
    在这里插入图片描述

    OBB出生啦

    点击导出后,会生成如下类似的的文件目录。导出来的obb名字还是个孩子,我们需要为它取个合法的名字
    【abb命名规则】: main.版本号.包名.obb
    eg:main.1.demo.obb
    一般来说,第一次提审版本号是1,第二次是2
    在这里插入图片描述

    Unity构建OBB工程和AS资源

    这里面包含了google 相关的依赖资源和Unity交互代码,把Unity生成AS工程放入对应文件即可(箭头所示)。运行后生成apk即,正常情况下生成的基础apk是可以单独运行,因缺少obb资源包 游戏会卡在某个阶段,但并不会引起程序崩溃。
    在这里插入图片描述
    此时,不需要其他操作时,我们就可以打包了。但如果as工程中,我们又添加了sdk相关代码,那我们不可能每次重新重新添加sdk代码。因为往往 我们的项目会改动,会修改代码,修改资源,那这时我们改怎么办呢。其实,我们只需要重新使用unity导出obb,新导出的obb包含了我们修改的东西,我们需要做三件事:
    1.替换obb,修改对应的版本号,如下图:
    在这里插入图片描述
    2.修改AndroidManifest.xml中的unity.build-id,改为为obb中对应的编码。
    对于一个新手,不知道obb是啥,也不知如何找到它里面的编码,如下:我们复制obb,修改后缀为.zip
    在这里插入图片描述
    解压改复制obb,剋看到目录下有如下类似的命名文件,复制名字(id)
    在这里插入图片描述
    将复制的id粘贴到如下地方,替换原来的id在这里插入图片描述

    AS导出apk

    接下来我们就可以导出apk了
    在这里插入图片描述
    没有密钥的(身份证)所以我们要去生成一个密钥,选择 Create new…
    (注意:这里有两个“密钥的密码” 因为一个是密钥的密码,一个是key的密码,但是通常我们在设置的时候会选择设置同一个,这样方便我们记忆,所以这里都认为是密钥的密码。),但是我们现在上面的unity中,已经创建了密钥,可以直接使用它。
    在这里插入图片描述
    最后,我们打包出来一个apk的文件。

    运行apk

    先把apk安装到Android设备,注意obb文件改名为:

    main..<包名>.obb

    并拷贝到Android设备的“/android/obb/<包名>/ ”路径下。

    如在Unity3D编辑其中,你可以在工程设置的如图位置处,看到“Bundle Version Code”和包名(即“Bundle Identifier”).

    以上面的ABC为例(假设其“Bundle Version Code”值为2,包名为“com.Demo.ABC”):

    • 首先,在Android设备上安装ABC.apk;- 接着,将ABC.obb改名为“main.2.com.Demo.ABC.obb”;

    • 然后,将文件“main.2.com.Demo.ABC.obb”拷贝到Android设备的“/android/obb/com. Demo.ABC/”路径下;

    • 启动App,你会发现新安装的APP已经可以正常使用了。

    设置转屏方式

    这时,如果你设置的屏幕旋转方式和AndroidManifest.xml中screenOrientation不一样,如下:

    在这里插入图片描述
    我们可以在添加如下代码修改:

        @Override
        public void setRequestedOrientation(int requestedOrientation){
            return;
        }
    

    每个人的工程不一样,脚本名也可能不一样,例如我这里是添加在Helper.java脚本中,如下

    点击加群 704621321,可下载官方文档,demo,学习资料
    人工智能文章:点击跳转
    我的个人博客:https://www.mmzsblog.cn/
    转载请注明出处和署名,谢谢!
  • 相关阅读:
    iOS内购开发(也许是最全的介绍)
    React Native 学习(三)之 FlexBox 布局
    React Native组件解析(二)之Text
    苹果开发者账号(个人、公司、企业)的区别
    React Native学习(二)之View
    搭建React Native开发环境
    iOS 提交AppStore不出现构建的版本
    Python使用Mysql过程中一些错误
    数据分析之漏斗模型
    项目管理之敏捷方式(我们的方式)
  • 原文地址:https://www.cnblogs.com/shirln/p/14568750.html
Copyright © 2020-2023  润新知