如何升级带有tolua的unity(5.6.5)工程到新的unity版本(2019.3.10)以及ios,Android打包所需更改,以及il2cpp打包Android,谷歌上架arm64

第一步:检查tolua版本
如不确定使用版本找到luadll.cs文件 public static string version =
在这里插入图片描述

第二部:去下载github官网下载相应版本的缺省文件。(切记一定要相应版本)注:由于我的项目开发版本为unity5.6.5,所以升级所需要的更改文件非常多。水平有限具体缘由还望读者自行研究

tolua版本1.0.7.386此次升级所需的文件
在这里插入图片描述
在这里插入图片描述
自此tolua根据unity版本适配结束,剩下的就是处理一些unity升级报错,就不多赘述了

Android打包升级操作

使用unity2019.3.10打包需要勾选Custom Main Manifest,Custom Launcher Manifest,Custom MainGradle Template,Launcher Gradle Template;
在这里插入图片描述
竖版游戏需要Default Orientation 选择 Portrait

在这里插入图片描述

注:使用自动化打包,根据unity报错提示逐步进行修改,生成的文件已更名为launcher,自动化打包代码需要做相应修改,若在升级之前对代码进行了加密,例如代码进行加密在libmono.os中写入了解密代码,这里值得注意,unity2019生成的libmono.os已改名称libmonobdwgc-2.0.so,可以使用linux系统再次对其进行编译。

unity2019打包Android工程与unity5.6.5打包工程目录发生了变化
在这里插入图片描述

unity5.6.5

在这里插入图片描述unity2019.3.10

个人理解,unity是想要对Android项目做一个资源整合。
升级后会遇到一些报错。

  1. AndroidManifest.xml android:banner="@drawable/app_banner",会提示报错在这里插入图片描述由于unity2019.3.10打包不再提供此图片,直接删除此段代码即可。
    2.发现多个AndroidManifest.xml,build.gradle文件不必惊慌.也不要对unityLibrary\src\main\AndroidManifest.xml做修改在这里插入图片描述package以launcher中的AndroidManifest.xml为准。
    3.添加配置解决不必要的报错
    在这里插入图片描述
    使用il2cpp打包自动化打包Android
    使用此打包方式进行打包是没有dll文件的是,没有dll文件的,是没有dll文件的,il2cpp.exe在执行时会将所需要的dll文件全部集中存放编译成c++代码所以不要纠结生成工程没有Assembly-CSharp.dll。若自动打包代码中有将Assembly-CSharp.dll移动到Android工程的操作,注释掉相关代码
    在这里插入图片描述
    若想要上架谷歌商店的请勾选
    在这里插入图片描述

使用arm64打包注意确保Plugins/Adnroid/libs/arm64-v8a中存在libtolua.os,切勿将armv7中的libtolua.os复制到arm64-v8a文件夹中,没有此文件请前往https://github.com/github找对应版本的此文件,没有请找相近版本,尝试是否可行在这里插入图片描述
版本对应不上会报错Unable to find an entry point named ‘luaopen_sproto_core’ in tolua
在这里插入图片描述

在build.gradle文件中 defaultConfig ->nck->abiFilters 添加 ‘arm64-v8a’
在这里插入图片描述

最终打包代码如图
在这里插入图片描述

自此Android更新打包结束了

IOS打包升级操作

ios使用unity2019打包后xcode会多出个第三方库UnityFramework.framework,存在原因对第三方库做一个汇总方便项目管理,taget也会多出UnityFramework
在这里插入图片描述若刚升级打包unity2019 ios包xcode会提示第三方库缺失,但是在framework,content中存在此第三方库,原因是自动打包代码错误造成的,因为现在需要UnityFramework.framework添加所需要的第三方库直接放入工程中的第三方库找不到,报错信息Undefined symbols for architecture arm64
UnityFramework.framework。上图为正确状态,若不操作直接添加库到taget名为UnityFramework的引用中会导致添加库重复重复过多会导致运行卡死
例如
在这里插入图片描述
在这里插入图片描述

解决方式需要在ios打包代码中更改第三方库的target修改为 string targetGuid = pbxProject.TargetGuidByName(“UnityFramework”);
仅将第三方库导入UnityFramework中,其余配置不变
在这里插入图片描述
若存在lua相关,regest,后缀为libiPhone-lib.a报错,请前往github官网更换libiPhone-lib.a,即可解决此问题。
在这里插入图片描述
自此IOS打包升级已完成

结束

第一次写文章,乱乱的 希望可以帮到大家。

Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐