困扰我一周的问题!一套uniappx代码开发两个APP,却不能同时安装
魔鬼往往藏在细节中
简介
由于两个应用基本相似,所以使用uniappX的一套代码,开发了两个应用A和B,但是在安装到手机时却报错。
虽然是一套代码,但是有关的配置都以进行了修改,包括APPID、证书、包名等等。
起初我尝试用不同的手机进行安装,结论都是不行。
- oppo手机提示:”已安装了签名冲突的应用”
- 小米手机提示:”与己安装应用内容提供者冲突”
尝试
报错后就开始从网上查找,按照网上教程尝试过许多办法,包括但不限于
- 修改开发账号,重新获取APPID
- 更换设备进行打包
- 离线打包,使用自己生成的证书
- 多次更换包名
尝试很多方法,都不行。
解决
最终从小米手机的提示中获得灵感,“提供者冲突”。于是顺着这个思路开始查找,了解到安卓有android:authorities这么一个属性。但是我在uniappx配置中并未找到此配置。
然后开始去搜索一些安卓有关的内容,发现安卓有一个 AndroidManifest.xml 文件,此文件是 Android 应用的“身份证”和“总说明书”。
但是我并没有这个配置文件,于是我尝试全局搜索,在uni_modules中的worry-clipboard 插件中找到了这样的配置文件,worry-clipboard 是用来复制粘贴文字、图片。
于是就修改了里面的package和authorities,重新打包,完美解决~

如果我对Android原生开发有足够了解,看到”内容提供者冲突”这个提示,估计很快就能定位到android:authorities配置问题。结果因为开发APP只会uniapp这一套,遇到没见过的问题就抓瞎了。。

