【发布时间】:2021-09-14 04:07:07
【问题描述】:
我使用 expo 管理的工作流程构建了一个应用程序,使用 expo 创建了帐户并让 expo 处理所有密钥库信息,即使用 expo 创建的密钥库凭据并上传到 Play 商店,但我的应用程序由于某种原因被拒绝。我解决了这个问题,但我退出了 expo(托管 -> 裸工作流)并设法解决了此后的所有错误。我搜索了上传反应原生应用程序并按照以下步骤操作:
-
安装了需要的jdk版本并移到jdk所在路径
-
创建新的密钥库 sudo keytool -genkey -v -keystore XXX.keystore -alias XXX-upload -keyalg RSA -keysize 2048 -validity 10000
-
使用与从 expo 生成的密钥库相同的密码输入所需的信息
-
将keystore文件放在android>app文件夹中
-
按照发布的建议在 android>app 和 gradle.properties 下的 build.gradle 中进行了更改
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 } }
还有signingConfig signingConfigs.release
gradle.properties 添加:
MYAPP_UPLOAD_STORE_FILE=XXX.keystore
MYAPP_UPLOAD_KEY_ALIAS=XXX-upload
MYAPP_UPLOAD_STORE_PASSWORD=XXX
MYAPP_UPLOAD_KEY_PASSWORD=XXX
- 完成所有这些步骤后,我从 android>app>src>main>assets>index.android.bundle 中删除了捆绑包,并使用 cd android 移动到我的项目的 android 文件夹并运行 ./gradlew clean 然后运行 ./gradlew assembleRelease 但出现错误:
任务:app:signReleaseBundle 失败
FAILURE:构建失败并出现异常。
- 出了什么问题: 任务“:app:signReleaseBundle”执行失败。
执行 com.android.build.gradle.internal.tasks.Workers$ActionFacade 时发生故障 无法从存储“XXX.keystore”读取密钥 XXX-upload:获取密钥失败:给定最终块未正确填充。如果在解密期间使用了错误的密钥,则可能会出现此类问题。
在stackoverflow上搜索了这个。甚至再次重新创建密钥库,但没有帮助。有什么办法可以解决这个问题?
更新:我为商店密码和密钥密码使用了相同的密码,我能够创建应用程序包。但是当我提交应用程序进行发布时:它说: 您的 Android App Bundle 使用错误的密钥进行签名。确保您的 App Bundle 使用正确的签名密钥进行签名,然后重试。您的 App Bundle 应使用带有指纹的证书进行签名: SHA1: 但是用于签署您上传的 App Bundle 的证书有指纹: SHA1:
这是因为我更改了我的密钥库吗?我们该如何解决这个问题?
即使通过 expo 管理帐户将密钥库恢复到原始密钥库后,我也能够创建 .aab 但播放商店不接受该应用程序。生成错误密钥的相同错误
【问题讨论】:
标签: android react-native expo android-keystore