web-dev-qa-db-ja.com

構成 'release'に署名するためのキーストアが見つかりません。--React native

反応するネイティブプロジェクトのSigned APKを生成しようとしています。 Androidからの手順に従い、ネイティブドキュメントに対応します。

Build.gradleファイル

Android {
compileSdkVersion 23
buildToolsVersion '26.0.2'

defaultConfig {
    applicationId "com.appmobile"
    minSdkVersion 16
    targetSdkVersion 22
    versionCode 1
    versionName "1.0"
    ndk {
        abiFilters "armeabi-v7a", "x86"
    }
}
signingConfigs {
    release {
        if (project.hasProperty('MYAPP_RELEASE_STORE_FILE')) {
            storeFile file(MYAPP_RELEASE_STORE_FILE)
            storePassword MYAPP_RELEASE_STORE_PASSWORD
            keyAlias MYAPP_RELEASE_KEY_ALIAS
            keyPassword MYAPP_RELEASE_KEY_PASSWORD
        }
    }
}
buildTypes {
    release {
        signingConfig signingConfigs.release
        // minifyEnabled enableProguardInReleaseBuilds
        // proguardFiles getDefaultProguardFile("proguard-Android.txt"), "proguard-rules.pro"
    }
}
splits {
    abi {
        reset()
        enable enableSeparateBuildPerCPUArchitecture
        universalApk false  // If true, also generate a universal APK
        include "armeabi-v7a", "x86"
    }
}
// buildTypes {
//     release {
//         minifyEnabled enableProguardInReleaseBuilds
//         proguardFiles getDefaultProguardFile("proguard-Android.txt"), "proguard-rules.pro"
//     }
// }
// applicationVariants are e.g. debug, release
applicationVariants.all { variant ->
    variant.outputs.each { output ->
        // For each separate APK per architecture, set a unique version code as described here:
        // http://tools.Android.com/tech-docs/new-build-system/user-guide/apk-splits
        def versionCodes = ["armeabi-v7a":1, "x86":2]
        def abi = output.getFilter(OutputFile.ABI)
        if (abi != null) {  // null for the universal-debug, universal-release variants
            output.versionCodeOverride =
                    versionCodes.get(abi) * 1048576 + defaultConfig.versionCode
        }
    }
}

}

キーストアファイルをAndroid/appディレクトリに配置しました

私のgrade.properties

    Android.useDeprecatedNdk=true
MYAPP_RELEASE_STORE_FILE=sampleReleasekeyStore.jks
MYAPP_RELEASE_KEY_ALIAS=*****
MYAPP_RELEASE_STORE_PASSWORD=*****
MYAPP_RELEASE_KEY_PASSWORD=*****

cd Android && ./gradlew assembleReleaseを実行するとき。

その投げるビルドが失敗しました

タスク ':app:validateSigningRelease'の実行に失敗しました。キーストアファイル/Users/username/Projects/appMobile/Android/app/sampleReleasekeyStore.jksは、構成 'release'に署名するために見つかりません。

Mac環境を使用しています。どこがおかしいのか教えてください。

10
Kartiikeya
  1. Open Android Studio
  2. キーストアファイルをアプリフォルダーにドラッグアンドドロップします
  3. ファイルをクリック->プロジェクトを同期
5
Rodrigo Soares

それは私のために働いています!

  1. https://facebook.github.io/react-native/docs/signed-apk-Android.html
  2. 画像のように端末を開きます(ライブラリ-> Android-> ...)
  3. keytool -genkey -v -keystore my-release-key.keystore -alias my-key-alias -keyalg RSA -keysize 2048 -validity 10000
  4. 現在のフォルダーのxxxx.keystore。

enter image description here

4
PhuocLuong

.jksからMYAPP_RELEASE_STORE_FILEを削除してみてください。うまくいきました。

MYAPP_RELEASE_STORE_FILE=sampleReleasekeyStore

RootProject.FileをstoreFileに追加して、キーストアにアクセスします。

if (project.hasProperty('MYAPP_RELEASE_STORE_FILE')) {
        storeFile rootProject.file(MYAPP_RELEASE_STORE_FILE)
        storePassword MYAPP_RELEASE_STORE_PASSWORD
        keyAlias MYAPP_RELEASE_KEY_ALIAS
        keyPassword MYAPP_RELEASE_KEY_PASSWORD
    }
0
Nirmal Jeffrey

私の場合、このエラーはMacOS Windowsで作成されたプロジェクトで開こうとしたときにトリガーされました。

キーストアファイルがアプリフォルダーに追加された場合でもエラーが表示されていました。

Android StudioはmyProject/Android/gradle.propertiesファイルを完全に無視しているようです

以下のようにローカル~/.gradle/gradle.propertiesファイルを設定する必要がありました

MYAPP_RELEASE_STORE_FILE=<file-release.keystore>
MYAPP_RELEASE_KEY_ALIAS=<key-alias>
MYAPP_RELEASE_STORE_PASSWORD=<password>
MYAPP_RELEASE_KEY_PASSWORD=<keyPassword>
0
Florin Dobre

Gradleは常にAndroid/appパスでこのファイルを探すことに気付きました。 (おそらくハードコーディングされています)

あなたの場合、パスにsampleReleasekeyStore.jksを入れます。

/Users/username/Projects/appMobile/Android/app/

ヒント:エラーを見て、エラーで指定されたフォルダー内にファイルを配置するだけです。

0
Gayan Pathirage

この場合の問題はパスです。上記で既に述べたように、アプリフォルダーにキーを入力します。次に、あなたの.propertiesで、パス全体に名前を付けないでください。あなたはすでにあなたのプロジェクト/アプリにいるので、キーの名前を入力するだけです:

storePassword=my_password
keyPassword=my_password
keyAlias=key
storeFile=key.jks
0
AlexPad

appフォルダーに移動します

cd Android
cdアプリ

このコマンドを使用してデバッグキーを生成します

keytool -genkey -v -keystore debug.keystore -storepass Android -alias androiddebugkey -keypass Android -keyalg RSA -keysize 2048 -validity 10000

enter image description here

APKリリースの場合

keytool -genkey -v -keystore release.keystore -storepass Android -alias androiddebugkey -keypass Android -keyalg RSA -keysize 2048 -validity 10000

0
Keshav Gera