【问题标题】:Ionic automatic Android app signing broke after Cordova/SDK upgradeCordova/SDK 升级后 Ionic 自动 Android 应用签名中断
【发布时间】:2015-11-08 15:04:55
【问题描述】:

我有一个 Android 平台的 Ionic (1.6.4) 项目,该项目有一个 ant.properties 文件,其中包含以下内容:

key.store=mykeystore
key.alias=myalias
key.store.password=mypass1
key.alias.password=mypass2

以前,我可以运行 ionic build --release,它会构建未签名的 apk,然后对其进行签名并生成另一个 apk。

最近,我需要添加 org.apache.cordova.splashscreen 插件,该插件抱怨我的旧版 Cordova,所以我从 1.5.0 升级到 5.2.0。这反过来又要求我更新我的 Android SDK 以获取 Android 22。Cordova 构建过程似乎运行良好。

[...all the previous steps...]
:packageRelease UP-TO-DATE
:assembleRelease
:cdvBuildRelease

BUILD SUCCESSFUL

但是,Ionic 现在只生成未签名的发布 apk。

关于可能导致问题的任何建议?是否有一个我可以检查的日志文件可能会给我一个线索?我知道,即使在它工作之前,如果密钥库完全丢失,它就不会签名并假装一切都很好(没有错误),所以我认为这里可能发生了类似的事情,它只是抑制了一个错误。

版本详情:

cordova -v // 5.2.0
ionic -v // 1.6.4
node -v // v0.12.7
npm -v // 2.13.5
ionic.js // 1.0.1

我已经尝试过的事情:

  • ant.properties 和 keystore 都还在
  • cordova platform upgrade android运行成功
  • 在ant.properties中,使用绝对路径,相对路径指向keystore,直接放在platforms/android中,不带路径
  • ioniccordova 命令
  • build --release androidbuild --release

【问题讨论】:

  • 发布此消息后,我立即开始再次挖掘任何日志,并发现构建过程显然已从使用 ant 切换到使用 gradle。我需要为 gradle 写一些新的配置文件吗?

标签: android cordova ionic-framework


【解决方案1】:

在这些软件升级之间的某个时间点出现了一些难题,从使用 ant 转换为 gradle 进行构建过程。

按照this other question 上的答案,我知道该怎么做。

首先,创建一个 gradle.properties 文件并用适当的数据填充它:

storeFile=...
keyAlias=...
storePassword=...
keyPassword=...

接下来,编辑 gradle.build 文件并添加以下内容:

android {
    signingConfigs {
        release
    }
    buildTypes {
        release {
            signingConfig signingConfigs.release
        }
    }

}

if (project.hasProperty('storeFile')) {
    android.signingConfigs.release.storeFile = file(storeFile)
}
if (project.hasProperty('keyAlias')) {
    android.signingConfigs.release.keyAlias = keyAlias
}
if (project.hasProperty('storePassword')) {
    android.signingConfigs.release.storePassword = storePassword
}
if (project.hasProperty('keyPassword')) {
    android.signingConfigs.release.keyPassword = keyPassword
}

现在它正确地签署了发布 apk。

【讨论】:

  • 它是 build.gradle 不是 gradle.build... 但是当我打开那个文件时它说它是生成的而不是编辑它。
  • 我尝试编辑cordova文件夹中的那个,但这些设置出现错误。 A problem occurred evaluating project ':CordovaLib'. > Could not find property 'release' on SigningConfig container.
  • 最初的问题是由于将从 Cordova 1.5 开始的项目更新到 Cordova 5.2 引起的。现在在 2016 年,我们有了 Cordova 6.0。这不太可能是您遇到的确切问题,除非您在 2014 年以来首次更新 Cordova 后也遇​​到了问题。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-12-18
  • 1970-01-01
  • 2016-01-12
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多