2017-06-05 18 views
1

署名付きAPKを生成しようとしています。私は\ Dictionary \ android \ appにあるpassword.keystoreファイルを持っていて、cmdでgradlew assembleReleaseを実行すると、エラー:React Native署名付きAPKを生成しています「署名設定リリース用にKeyStoreファイルが設定されていません」

':app:validateSigningRelease'タスクの実行に失敗しました。

キーストアファイルには、署名の設定解除、私は私のpassword.keystoreファイルを格納する必要があり

のために設定されていませんか?私はif (project.hasProperty("password.keystore") {オフコメントしたときに、動作しているようですので、しかし、代わりに次のエラーで:

受信イベントを処理できません「ProgressComplete」(ProgressCompleteEvent)条件や場所は私が保管しなければならない場合、私は私が書く必要がありますどのように

password.keystoreファイル?次のように

ソースコードは次のとおりです。

signingConfigs { 
    release { 
    if (project.hasProperty("password.keystore")) { 
     storeFile file("password.keystore") 
     storePassword "password" 
     keyAlias "username" 
     keyPassword "password" 
    } 
    } 
} 
+0

署名されたAPK ..を生成しようとしているようですね。 – Codesingh

+0

@Codesinghはい、 'project.hasProperty(" password.keystore ")'はfalseを返すので、if文を除外するとコードが実行されます。しかし、明らかに\ Dictionary \ android \ appにpassword.keystoreというファイルがあります。 – Benjamin

+0

私はまた、アプリケーション開発のこの部分で構造体を作成した後、アンドロイドスタジオウィンドウの上部にビルドオプションから署名付きapkを生成し始めました。 – Codesingh

答えて

0

project.hasPropertyはpassword.keystoreという名前の変数のためにあなたのgradle.propertiesファイルにことになるだろう。 ~/.gradle

行くとあなたが行う場合は、gradle.propertiesファイルを持っている場合、変数password.keystoreがあることを確認し、参照、それはあなたのキーストアファイルを指す必要があります。password.keystore=password.keystore

MYAPP_RELEASE_STORE_FILE=password.keystoreのように名前を変えてください。あなたが./gradlew assembleReleaseを実行したときに、あなたのプロジェクトは、それが探しているの性質を持つことになりますと、以下は真の解決とgradlewはすべてsigningConfigs.releaseプロパティを設定することができます:

if (project.hasProperty(MYAPP_RELEASE_STORE_FILE)) { 
    storeFile file(...) 
    storePassword your_password_property 
    ... 
} 
1

ストアファイルはにしておく必要がありますandroid/appフォルダー。

メッセージ'署名設定リリース用にキーストアファイルが設定されていません'は、android/app/build.gradleファイルにsigningConfigが存在しないようにする必要があります。あなたをテストするための

buildTypes { 
    release { 
     // other settings 
     signingConfig signingConfigs.release 
    } 
} 

はちょうどハードgradle.propertiesでそれを設定する代わりに、オフ、アンドロイド/アプリ/ build.gradleの設定をコード化することができます。これは私のために、私は正確に同じ問題があった「キーストアが改ざん、またはパスワードが間違っていたた」

signingConfigs { 
    release { 
     //if (project.hasProperty('MYAPP_RELEASE_STORE_FILE')) { 
      storeFile file("key.keystore") 
      storePassword "****" 
      keyAlias "myKey" 
      keyPassword "****" 
     // } 
    } 
} 
1

に問題を修正されました。私はgradle.propertiesファイルを編集するのを忘れてしまった。これは次のようになります。

android.useDeprecatedNdk=true 

MYAPP_RELEASE_STORE_FILE=my-release-key.keystore 
MYAPP_RELEASE_KEY_ALIAS=my-key-alias 
0

この問題に関するすべての回答を調べたところ、いずれの回答も役に立ちませんでした。

以下の実験で試してみました。

my-release-key.keystoreファイルをandroidディレクトリの下にプロジェクトフォルダに配置します。

+0

'my-release-key.keystore'はファイルへのパス、より具体的には'。/ my-release-key.keystore'を意味します。これは、特定の実行のためのGradleの作業ディレクトリであるため、アンドロイドディレクトリから動作します。 – EFreak

+0

にしたい場合は絶対パスをハードコードすることができます –

0

これが完了すると、私は実際に

signingConfigs { 
    release { 
     if (System.env.MYAPP_RELEASE_STORE_FILE != null) { 
      storeFile  file(System.env.MYAPP_RELEASE_STORE_FILE) 
      storePassword System.env.MYAPP_RELEASE_STORE_PASSWORD 
      keyAlias  System.env.MYAPP_RELEASE_KEY_ALIAS 
      keyPassword  System.env.MYAPP_RELEASE_KEY_PASSWORD 
     } 
    } 
} 

など、それはパスワードなどの機密情報が含まれているため環境変数を使用してアプリレポ外でこれらのパラメータを格納することを好む、私はbashスクリプトをロードすることができます

# path to my keystore 
export MYAPP_RELEASE_STORE_FILE=/path/to/key.file 
# ... 

などの詳細署名の設定が完全​​レポから隔離されている。この方法を持っています。これにより、秘密で偶発的なコミットを防止できます。

関連する問題