将裸工作流Expo React-Native应用发布到Google Playstore,该应用先前是在托管工作流中发布的

时间:2020-04-04 22:59:05

标签: android reactjs react-native expo

我的应用程序以前是在expo管理的工作流程中构建的。我是使用expo ba完成的。由于android应用要求您先发布应用,然后才能添加应用内购买,因此我上传了该apk并使用它发布了beta版。

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

在游戏机上显示

上传密钥:用于签署第一个版本的密钥。每个签名 随后的发行版,使用相同的密钥进行验证,以确认是否来自您。保持 您的上传密钥很安全。如果丢失或遭到破坏,请联系 开发人员支持将其替换。

我很确定这是一个问题,因为我使用了任何博览会给我签名了原始apk。 我也无法删除我的原始应用程序,也无法使用相同的捆绑包名称创建一个新应用程序,因为一旦发布该应用程序,便无法将其删除。

1 个答案:

答案 0 :(得分:1)

要运行以前使用的密钥库文件

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

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