首页 > 解决方案 > 在本机反应中生成发布apk

问题描述

我通过 react native 创建了一个简单的应用程序。现在完成部署后,我想发布 apk 所以为了根据它的官方网站,我创建了密钥:

"C:\Program Files\Java\jdk1.8.0_162\bin\keytool.exe" -genkeypair -v -keystore my-upload-key.keystore -alias my-key-alias -keyalg RSA -keysize 2048 -validity 10000

我补充说:

MYAPP_UPLOAD_STORE_FILE=my-upload-key.keystore
MYAPP_UPLOAD_KEY_ALIAS=my-key-alias
MYAPP_UPLOAD_STORE_PASSWORD=mypass
MYAPP_UPLOAD_KEY_PASSWORD=mypass

进入android/gradle.properties文件,最后我将release部分添加到文件中的signingConfigs部分android/app/build.gradle

signingConfigs {
    debug {
        storeFile file('debug.keystore')
        storePassword 'android'
        keyAlias 'androiddebugkey'
        keyPassword 'android'
    }
     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部分:

buildTypes {
    debug {
        signingConfig signingConfigs.debug
    }
    release {
        minifyEnabled enableProguardInReleaseBuilds
        proguardFiles getDefaultProguardFile("proguard-android.txt"), "proguard-rules.pro"
        signingConfig signingConfigs.release
    }
}

但运行后\android> ./gradlew bundleRelease

PS F:\SafaProject\ReactNative\RNAuditMngm\android> ./gradlew bundleRelease

> Task :app:bundleReleaseJsAndAssets
warning: the transform cache was reset.
Loading dependency graph, done.
info Writing bundle output to:, F:\SafaProject\ReactNative\RNAuditMngm\android\app\build\generated\assets\react\release\index.android.bundle
info Writing sourcemap output to:, F:\SafaProject\ReactNative\RNAuditMngm\android\app\build\generated\sourcemaps\react\release\index.android.bundle.map
info Done writing bundle output   
info Done writing sourcemap output
info Copying 13 asset files
info Done copying assets

> Task :react-native-gesture-handler:compileReleaseJavaWithJavac
Note: F:\SafaProject\ReactNative\RNAuditMngm\node_modules\react-native-gesture-handler\android\src\main\java\com\swmansion\gesturehandler\react\RNGestureHandlerButtonViewManager.java uses or overrides a deprecated API.
Note: Recompile with -Xlint:deprecation for details.
Note: Some input files use unchecked or unsafe operations.
Note: Recompile with -Xlint:unchecked for details.

> Task :react-native-reanimated:compileReleaseJavaWithJavac
Note: F:\SafaProject\ReactNative\RNAuditMngm\node_modules\react-native-reanimated\android\src\main\java\com\swmansion\reanimated\NodesManager.java uses or overrides a deprecated 
API.
Note: Recompile with -Xlint:deprecation for details.
Note: F:\SafaProject\ReactNative\RNAuditMngm\node_modules\react-native-reanimated\android\src\main\java\com\swmansion\reanimated\NodesManager.java uses unchecked or unsafe operations.
Note: Recompile with -Xlint:unchecked for details.

Deprecated Gradle features were used in this build, making it incompatible with Gradle 6.0.
Use '--warning-mode all' to show the individual deprecation warnings.
See https://docs.gradle.org/5.5/userguide/command_line_interface.html#sec:command_line_warnings

BUILD SUCCESSFUL in 1m 54s
88 actionable tasks: 84 executed, 4 up-to-date
PS F:\SafaProject\ReactNative\RNAuditMngm\android> 

它只是app.aab\app\build\outputs\bundle\release文件夹中创建文件?

我怎样才能创建apk文件?

这是完整的应用程序build.gradle

标签: react-nativereact-native-android

解决方案


如果你想创建 .apk 然后运行命令:

光盘安卓

./gradlew assembleRelease

它将在此处生成发布 apk:

android/app/build/output/apk/release/app-release.apk

如果您想生成一个 buldle (.aab) 以上传到 Play 商店:

光盘安卓

./gradlew bundleRelease


推荐阅读