繁体   English   中英

将裸工作流 expo React-Native 应用程序发布到 Google Play,该应用程序之前在托管工作流中发布

[英]Publishing a bare-workflow expo React-Native app to Google Play which was previously published in the managed workflow

我的应用程序之前是在 expo 托管工作流中构建的。 我使用expo ba做到了这一点。 因为 android 应用程序要求您在添加应用程序内购买之前发布您的应用程序,所以我上传了这个 apk 并使用它发布了一个测试版。

我需要切换到裸工作流以实现应用内购买。 现在,当尝试创建构建以发布实际应用程序时,我遵循React Native 说明,但必须创建另一个上传密钥才能创建构建(这次是 aab)。

在游戏控制台上它指出

上传密钥:用于签署第一个版本的密钥。 使用相同的密钥签署每个后续版本,以验证它来自您。 确保您的上传密钥安全。 如果它丢失或损坏,请联系开发人员支持以更换它。

我很确定这是一个问题,因为我使用了 expo 给我的任何东西来签署原始 apk。 我也无法删除我的原始应用程序并创建一个具有相同捆绑名称的新应用程序,因为一旦应用程序发布,它就无法删除。

运行之前使用的密钥库文件

expo fetch:android:keystore

这将显示类似

Keystore credentials
  Keystore password: MYAPP_UPLOAD_STORE_PASSWORD
  Key alias:         MYAPP_UPLOAD_KEY_ALIAS
  Key password:      MYAPP_UPLOAD_KEY_PASSWORD

  Path to Keystore:  /Path/To/my_upload_store_file.jks

编辑文件android/app/build.gradle以包含上述信息

...
android {
    ...
    defaultConfig { ... }
    signingConfigs {
        release {
            //if (project.hasProperty('MYAPP_UPLOAD_STORE_FILE')) {
                storeFile file("MYAPP_UPLOAD_STORE_FILE")
                storePassword "MYAPP_UPLOAD_STORE_PASSWORD"
                keyAlias "MYAPP_UPLOAD_KEY_ALIAS"
                keyPassword "MYAPP_UPLOAD_KEY_PASSWORD"
            //}
        }
    }
    buildTypes {
        release {
            ...
            signingConfig signingConfigs.release
        }
    }
}
...

my_upload_store_file.jks放入android/app

编辑文件~/.gradle/gradle.propertiesandroid/gradle.properties ,并添加以下内容

MYAPP_UPLOAD_STORE_FILE="my_upload_store_file.jks"
MYAPP_UPLOAD_KEY_ALIAS="MYAPP_UPLOAD_KEY_ALIAS"
MYAPP_UPLOAD_STORE_PASSWORD="MYAPP_UPLOAD_STORE_PASSWORD"
MYAPP_UPLOAD_KEY_PASSWORD="MYAPP_UPLOAD_KEY_PASSWORD"

从目录android在终端中运行以下命令

./gradlew bundleRelease

这将在android/app/build/outputs/bundle/release/目录中生成一个名为app-release.aab的文件。 将此文件上传到 Google Playstore 控制台

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM