问题的关键是,并非每个使用此应用程序的人都可以访问存储文件,并且必须注释掉以下这些行才能进行gradle同步:
signingConfigs {
release {
// storeFile file('.../android_keystore.keystore')
// storePassword RELEASE_STORE_PASSWORD
// keyAlias RELEASE_KEY_ALIAS
// keyPassword RELEASE_KEY_PASSWORD
}
}
在我们的构建类型中,我们定义了调试中没有签名配置:
buildTypes{
release {
...
}
debug {
singingConfig null
...
}
}
问题在于Gradle Syncs与构建类型无关,因此它每次都会检查签名配置(storePassword,keyAlias,keyPassword),除非我注释掉这些行。
有没有更自动化的方法来忽略这些行?
@Gabriele的答案标记为答案,因为它更完整,更正确,但想发布有关我的最终(简单而简单)解决方案的更新,如果没有他的答案,我就不会弄清楚;
我所要做的就是检查文件是否存在。我没有意识到我可以调用方法并在Gradle文件中使用if语句;
signingConfigs {
release {
storeFile file('.../android_keystore.keystore')
if (storeFile.exists()) {
storePassword RELEASE_STORE_PASSWORD
keyAlias RELEASE_KEY_ALIAS
keyPassword RELEASE_KEY_PASSWORD
}
}
您可以使用以下内容:
android {
signingConfigs {
release
}
buildTypes {
release {
signingConfig signingConfigs.release
}
}
}
def Properties props = new Properties()
def propFile = new File('signing.properties')
if (propFile.canRead()){
props.load(new FileInputStream(propFile))
if (props!=null && props.containsKey('STORE_FILE') && props.containsKey('STORE_PASSWORD') &&
props.containsKey('KEY_ALIAS') && props.containsKey('KEY_PASSWORD')) {
android.signingConfigs.release.storeFile = file(props['STORE_FILE'])
android.signingConfigs.release.storePassword = props['STORE_PASSWORD']
android.signingConfigs.release.keyAlias = props['KEY_ALIAS']
android.signingConfigs.release.keyPassword = props['KEY_PASSWORD']
} else {
println 'signing.properties found but some entries are missing'
android.buildTypes.release.signingConfig = null
}
}else {
println 'signing.properties not found'
android.buildTypes.release.signingConfig = null
}
其中< code>signing.properties是:
STORE_FILE=/path/to/your.keystore
STORE_PASSWORD=yourkeystorepass
KEY_ALIAS=projectkeyalias
KEY_PASSWORD=keyaliaspassword
当尝试安装具有较低版本的APK时,最近的Android 4.2似乎在安装时引入了此错误条件。在以前的Android版本中,您只需通过
我想检查angular在生成浏览器应用程序包时是否存在lint错误,如果存在错误则失败。 可能吗?我用恶魔创造了一个手表,但这不是我要找的。。。这 非常感谢。
不是一个真正重要的问题,但只是好奇。您可以在运行时更改应用程序图标吗?例如,有一个按钮,当您按下该按钮时,您会在flutter中获得不同的应用程序图标(假设应用程序图标已经“设置”)。Android和iOS。 非常感谢任何意见。谢谢
问题内容: 在C ++中,我通常会设置2个构建- 分别调试和发布,分别具有和预先定义。然后,我将使用这些定义来确定常量值,例如启用/禁用日志记录,服务器URL等。 现在,在Java / Android中,在构建发行版之前我会注释掉一些东西。我知道这不是一个好方法。我可能会忘记一些东西。 确保在构建发行版本(签名)或调试版本(未签名)时什么都不会忘记的常见做法是什么? 问题答案: (默认情况下)没有
标题大致概括了这一点。谷歌应用邀请是否可以与尚未在play store上使用的测试版应用一起使用?
问题内容: 标头中包含以下行: 这实际上改变了我的python日志记录设置,但是pylint认为这是未使用的导入。我一般不希望删除警告,因此可以忽略这一行吗? 我不介意为此项目准备一个,因此更改配置文件的答案将被接受。 否则,这样的事情也会受到赞赏: 问题答案: Pylint消息控件记录在Pylint手册中: 是否可以在本地禁用特定消息? 是的,此功能已在Pylint 0.11中添加。这可以通过