2017-12-05 14 views
0

私はreact-native-configを設定しています。これはjavacriptでも問題なく使用できますが、build.gradleではこれを使用できません。react-native-configはbuild.gradleでenv変数を使用できません

release { 
    if (project.hasProperty('MYAPP_RELEASE_STORE_FILE')) { 
     storeFile file(project.env.get("MYAPP_RELEASE_STORE_FILE")) 
     storePassword project.env.get("MYAPP_RELEASE_STORE_PASSWORD") 
     keyAlias project.env.get("MYAPP_RELEASE_KEY_ALIAS") 
     keyPassword project.env.get("MYAPP_RELEASE_KEY_PASSWORD") 
    } 
} 

バージョン

react-native-cli: 2.0.1 
react-native: 0.49.5 
react: 16.0.0 
react-native-config: 0.11.1 

出力

$ ./gradlew assembleRelease` 
... shortened output 
FAILURE: Build failed with an exception. 
* What went wrong: 
Execution failed for task ':app:validateSigningRelease'. 
> Keystore file not set for signing config release 

答えて

0

MYAPP_RELEASE_STORE_FILE内のファイルが存在していないように思えます。そこにはどんな価値がありますか?ファイルは同じフォルダにありますか?

また、署名秘密を.envに保存しないでください。 react-native-configのreadmeファイルから:

このモジュールは、パッケージ化のために秘密を難読化または暗号化しないので、機密キーを.envに保存しないでください。それはbasically impossible to prevent users from reverse engineering mobile app secretsだから、そのことを念頭に置いてあなたのアプリ(およびAPI)をデザインしてください。

代わりに、秘密を保持するためにGradleプロパティファイルを使用することができます。例えば、~/.gradle/gradle.propertiesに:

MYAPP_RELEASE_KEY_ALIAS=myapp 
MYAPP_RELEASE_STORE_PASSWORD=abc 
MYAPP_RELEASE_KEY_PASSWORD=def 

これらはbuild.gradleにそしてちょうど用意されています

signingConfigs { 
    release { 
     storeFile "myapp.keystore" 
     keyAlias MYAPP_RELEASE_KEY_ALIAS 
     storePassword MYAPP_RELEASE_STORE_PASSWORD 
     keyPassword MYAPP_RELEASE_KEY_PASSWORD 
    } 
} 
関連する問題