[Unity]Unity自动添加Android定位权限问题

        今年权限问题比较严重,大厂提出去掉一些权限(敏感权限),不然下架。说实话,我们游戏根本就很少用到这些权限,全是大厂自身的SDK需要这些权限╮(╯▽╰)╭,利用之前写的工具反编译获取王者荣耀的AndroidMainfest文件,然后对照修改,So easy。
        但是打包后发现还在申请定位权限,怎么回事。反编译我们游戏的AndroidMainfest文件,咦,ACCESS_FINE_LOCATION权限还在?对比下Plugins中的AndroidMainfest发现我没有加呀。想起来Unity的BuildSettings中有权限可以设置,检查下那边是不是勾选导致Unity自动添加了定位权限。发现没勾选定位权限,但仔细看了解释,说只要有用到位置相关的API,Unity就会自动添加定位相关的权限Σ(っ °Д °;)っ。

[Unity]Unity自动添加Android定位权限问题_第1张图片
        位置相关的API是啥API呀,没有仔细说明,这么去解决?google了下,Unity官网上说类似LocationService类。

[Unity]Unity自动添加Android定位权限问题_第2张图片

        全局搜索,发现有2个地方有用到:一个是IngameDebugConsole插件,另一个则是tolua生成UnityEngine.Input类的wrap文件中有包含。插件就简单,注释掉就OK,tolua生成的wrap文件就有点麻烦。
        看了下wrap生成的代码,发现是利用反射机制获取所有属性,再利用IO写入到wrap文件中。那就没办法了,简单粗暴的来,从缓存的属性列表中移除就OK。
脚本名:ToLuaExport.cs
方法名:InitPropertyList()
添加4行代码就OK,打包测试,恩,干掉了定位权限。

[Unity]Unity自动添加Android定位权限问题_第3张图片

你可能感兴趣的:(Unity,Unity,权限)