当前位置:   article > 正文

使用Android Studio打包APP以及相关问题解决与细节优化_签名不一致该应用可能被修改 android studio

签名不一致该应用可能被修改 android studio

APP打包

写在前面

在项目实践时打包APP,查找了许多资料,发现CSDN上此块内容比较散乱,便将相关打包过程与问题总结汇总,特别时像我一样使用鸿蒙操作系统开发的小白,一定要注意关闭纯净模式!
主要资源参考:
Android Studio 打包APK(详细版)

不同包类型

Debug

模拟机中的APK版本是debug版本,它是运行时生成的,不是打包生成的

查看方式:

把当前项目切换成Project,然后找到build文件夹。只要你的项目运行了,就会生成这个文件夹

注意:

此时你可以将这个app-debug.apk复制,然后通过QQ发送到你自己的手机上,然后你在手机上下载上下载试着安装一下,你看能不能行。
当然是不行的,只有release版本的APK才能安装在自己的手机上。

Release

打包

点击导航栏的Build→Generate Signed Bundle / APK…

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

这里需要一个商店的key,因为没有,所以创建一个新的,点击Create new…

在这里插入图片描述

首先指明生成的jks文件的路径,点击这个文件夹图标。

在这里插入图片描述

在这里插入图片描述

然后输入这个jks和别名的一些相关信息,上方的商店密码和别名密码可以设置为一样的,这样便于记忆,只不过安全系数就降低了。我上面设置的是123456,信息都设置好了之后,点击OK。

在这里插入图片描述

如果出现这个弹窗,你可以不用担心,点击OK。

在这里插入图片描述

这里勾选上记住密码。

在这里插入图片描述

选择release,下面两个都勾选上,然后点击Finish。

在这里插入图片描述

当你看到屏幕的右下角出现这个提示时,说明你的APK已经生成了,你可以在你的app下看到多了一个release的文件夹,里面就是app-release.apk包,下面你可以复制发到手机上,然后下载,手机上是可以安装的。

在这里插入图片描述

报错解决

1.打包中出现app:lintVitalRelease

解决:

在build.gradle中,设置

 lintOptions {
        checkReleaseBuilds false
        abortOnError false
    }
  • 1
  • 2
  • 3
  • 4

注意要加在android类里面

2.签名不一致,该应用可能已经被修改,无法安装

首先在As的build.gradle里面配置:

signingConfigs {
        //debug包
        debug {
            storeFile file("X:\\XXX.jks")
            storePassword 'XXX'
            keyAlias 'XXXXX'
            keyPassword 'XXXXXXX'
        }
        //release包
        release {
            storeFile file("X:\\XXX.jks")
            storePassword 'XXXXX'
            keyAlias 'XXXX'
            keyPassword 'XXXXXXXX'
        }
    }
    //加入到android{}里
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17

至于jks的位置,在项目最外层:img
参考链接:As跑的项目和打包的项目apk签名不一致

3.在测试中,会出现即使把debug时的app删除后,还是无法安装打包签名后的APP(提示签名不一致)

1.Root,然后在data目录下找到对应的包名文件夹完整删除。
2.不愿意root的,可以使用adb命令删除。
(1)adb配置,请百度
(2)使用:
adb uninstall + 要卸载应用的包名,然后你就可以安装了,手动安装或adb命令皆可。
adb install + 文件名
下面介绍adb的配置与使用

仍然不行,目前暂定是鸿蒙系统的不兼容性,在安卓手机中尝试可以,在鸿蒙手机中尝试可以,但是在调试手机中尝试也不行

3.华为鸿蒙系统手机如果出现“签名不一致,该应用可能已被修改”提示,是什么原因造成的呢?及如何解决此类问题?

1、产生该问题的原因

为了高安全性,但凡从外部安装的应用都会提示这个,得需要关闭纯净模式。这里顺便提醒一下,用户最好从华为认可的渠道下载及安装应用。另外,也不排除要安装的应用是损坏的。

2、解决方法

以下解决方法由华为技术支持提供:

如果使用鸿蒙系统外部安装应用包需要关闭纯净模式,具体路径:设置—系统和更新—纯净模式—退出。

说明:

鸿蒙系统在软件安装方面提供纯净模式,当开启了这个模式,所有应用必须从华为应用商城中安装。当关闭这个模式后,开发者或者用户可以通过第三方进行软件安装。

打包细节优化

从上面的操作中,你已经知道了一些内容,而在基本的开发中也是会用到的,而为了更好区别不同的包名,常用会给apk进行一个重命名,让你一眼就知道这个apk是哪个项目的。

① 自定义Apk名字

修改app下的build.gradle

// 自定义打包名称
android.applicationVariants.all { variant ->
    variant.outputs.all {
        outputFileName = "GenerateAPK.apk"
    }
}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6

添加位置如下图所示,在android{}闭包中

添加后记得Sync一下,然后重新打一个包

② 增加构建类型

只要修改这一句话就可以了。

outputFileName = "GenerateAPK_${buildType.name}.apk"
  • 1

buildType.name就表示构建的类型,使用$来修饰。下面依次打一个release和debug包看看。

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

现在你可以轻松的分辨版本了,但是这就够了吗?实际的开发中其实对于Android的版本也是有关系,比如你要升级迭代APK,那么你的版本就要比之前的版本要高。而目前这个APK上并不能看出来当前是多少版本,因此这也是需要显示的。

③ 增加版本名

再修改一下

outputFileName = "GenerateAPK_${buildType.name}_v${versionName}.apk"
  • 1

versionName就是你的版本名称,v就表示版本,现在版本名称是1.0。

在这里插入图片描述

那么现在打个包试一下看是不是会多一个1.0。

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

④ 增加日期时间

在android{}闭包外增加

//构建时间
def generateTime() {
    return new Date().format("yyyy_MM_dd_HH_mm_ss")
}
  • 1
  • 2
  • 3
  • 4

在这里插入图片描述

outputFileName = "GenerateAPK_${buildType.name}_v${versionName}_${generateTime()}.apk"
  • 1

下面打包看一下。

在这里插入图片描述

⑤APP图标设置

在manifests/AndroidManifest中找到关于图标icon的配置,修改之,将之改成新添加的一套图标的名字即可。

img
参考链接:打包的细节优化

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/我家小花儿/article/detail/256149
推荐阅读
相关标签
  

闽ICP备14008679号