反応するネイティブプロジェクトの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環境を使用しています。どこがおかしいのか教えてください。
それは私のために働いています!
.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
}
私の場合、このエラーは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>
Gradleは常にAndroid/appパスでこのファイルを探すことに気付きました。 (おそらくハードコーディングされています)
あなたの場合、パスにsampleReleasekeyStore.jksを入れます。
/Users/username/Projects/appMobile/Android/app/
ヒント:エラーを見て、エラーで指定されたフォルダー内にファイルを配置するだけです。
この場合の問題はパスです。上記で既に述べたように、アプリフォルダーにキーを入力します。次に、あなたの.propertiesで、パス全体に名前を付けないでください。あなたはすでにあなたのプロジェクト/アプリにいるので、キーの名前を入力するだけです:
storePassword=my_password
keyPassword=my_password
keyAlias=key
storeFile=key.jks
appフォルダーに移動します
cd Android
cdアプリ
このコマンドを使用してデバッグキーを生成します
keytool -genkey -v -keystore debug.keystore -storepass Android -alias androiddebugkey -keypass Android -keyalg RSA -keysize 2048 -validity 10000
APKリリースの場合
keytool -genkey -v -keystore release.keystore -storepass Android -alias androiddebugkey -keypass Android -keyalg RSA -keysize 2048 -validity 10000