【 RN 】安卓应用签名、打包发布google play

569 阅读2分钟

RN官方网站安卓打包基于命令行生成签名密钥,打包等过程不仅经常报乱七八糟的错误,而且打包时间非常非常长,实践证明,最优方案得选android studio 👊(下面的操作大多是参考android开发者官网)

Android 开发者官网

为新应用签名并将其发布到 Google Play 时可能需要采取的步骤

1、生成上传密钥和密钥库

  • 菜单栏中,依次点击 Build > Generate Signed Bundle/APK > create new

  • 除了密钥库的保存路径( 可将路径直接指向项目内 )、密码( 4个相关密码输入框都填同样的就可 )、Alias( 别名 ) 是我自定义的,其他我都是乱填的...

    243066623-4be87454-c18c-42fe-a655-f6d56f8e4315.png


2、创建signing.properties文件,并放到项目对应目录下

  • signing.properties:也就是用于存储签名配置文本文件,里面的内容也就是第一步创建的密钥库对应的别名、密码等信息。

  • 安全起见,记得在.gitignore添加,不要把密码这些配置信息上传。。。

    243066084-046b72e5-f70c-496d-9fcf-df39a061e417.png

    243066222-525c8750-914b-435e-90e0-61ff3a420ed3.png


3、把签名配置加入到项目的 gradle 配置中

  • android/app/build.gradle,添加如下的签名配置

    // 导入属性文件
    def signingPropertiesFile = rootProject.file("signing.properties")
    def signingProperties = new Properties()
    if (signingPropertiesFile.exists()) { signingProperties.load(new FileInputStream(signingPropertiesFile)) }
    
    android {
        ...
        defaultConfig { ... }
        signingConfigs {
            release {
                if (signingPropertiesFile.exists()) {
                    keyAlias signingProperties['keyAlias']
                    keyPassword signingProperties['keyPassword']
                    storeFile file(signingProperties['storeFile'])
                    storePassword signingProperties['storePassword']
                }
            }
        }
        buildTypes {
            release {
                ...
                signingConfig signingConfigs.release
            }
        }
    }
    

    243067646-69208075-f710-46cb-a55f-96b8957ec965.png


4、打包

  • 根据需求生成对应的包格式

  • Google Play 现在要求 AAB 格式,而国内的应用市场目前仅支持 APK 格式

    243067909-90730349-6491-4c87-9abc-b89e80c7734f.png

    243067923-7498a0f9-28f5-47d7-88cc-77811e521508.png

  • 如果发现打的包是debug包,请调下这个配置

    243068962-ea388fd3-184e-4641-8974-e059db589523.png


5、登录google play 管理中心,填写信息( 将google play设置为中文版本)

  • 遇到疑惑的地方可以给官方发邮件,回的基本很快,也很详细
  • 上传生产版本,审核3天不到就可在应用市场搜到了

239020100-8bf07f6f-63ef-46fe-b7bc-833ac2d92b85-1.png

6、内部测试的发布测试流程

  • versionCode为整数值,且不能重复,类似索引的感觉,不改的话上传包的时候会拦截

    238996963-ecad7f71-8cb3-4107-88ae-ef8f8f4c7797.png

  • 安卓机需要必备google play环境且翻墙状态下才能下载走内部测试环境下载对应包


解惑

1、 Build > Generate Signed Bundle/APK为应用签名

  • 上面步骤没有走这步的原因是已在步骤2,3配置,达到在构建流程中为应用的发布版本自动签名。

    243070997-b3407027-6f15-47bd-8add-6dfb692a6b73.png

    243071004-c32b791f-211c-435c-b3c3-466f25dd0123.png


辅助技能

1、更改包名称

  • google play 不同项目不允许包名称一致

    239263305-9d9272da-3df6-47cf-bc1e-db73691cf873.png

    239263377-18cdb3dd-0510-41d2-a29c-b492647d7b99.png

  • 如遇到这个报错:compileSdkVersion is not specified. Please add it to build.gradle,更改值重新编译

    239263771-2e21818d-2566-46c3-aebf-5a37d3172627.png

🔗 个人知识库平台:yangfu.asia/
专注知识管理与归类,提升学习效率