apk名称更改不工作cordova

时间:2016-04-26 14:01:51

标签: cordova

我做了一些更改以获得不同的名称,而不是 android-debug.apk ,这是在构建后自动生成的。但是我所做的改变似乎没有奏效。这是我创建android平台后生成的 build.gradle 文件。请检查并告诉我它为什么不起作用。我在命令提示符下运行所有​​这些不在android studio / eclipse中。

    if (cdvReleaseSigningPropertiesFile) {
        signingConfigs {
            release {
                // These must be set or Gradle will complain (even if they are overridden).
                keyAlias = ""
                keyPassword = "__unset" // And these must be set to non-empty in order to have the signing step added to the task graph.
                storeFile = null
                storePassword = "__unset"
            }
        }


buildTypes {
            release {
                minifyEnabled false
                proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
                signingConfig getSigningConfig()
                applicationVariants.all { variant ->
                    variant.outputs.each { output ->
                        def date = new Date();
                        def formattedDate = date.format('yyyyMMddHHmmss')
                        output.outputFile = new File(output.outputFile.parent,
                                output.outputFile.name.replace("-release", "-" + formattedDate)
    //for Debug use output.outputFile = new File(output.outputFile.parent,
   //                             output.outputFile.name.replace("-debug", "-" + formattedDate)
                        )
                    }
                }
            }
        }
        addSigningProps(cdvReleaseSigningPropertiesFile, signingConfigs.release)
    }
    if (cdvDebugSigningPropertiesFile) {
        addSigningProps(cdvDebugSigningPropertiesFile, signingConfigs.debug)
    }
}

在我对 buildType 进行更改之前,就像这样。

buildTypes {
            release {
                signingConfig signingConfigs.release
            }
        }

1 个答案:

答案 0 :(得分:1)

我今天想出了一个答案。它似乎像我预期的那样运作良好。我所做的改变将在下面分享:

1)我必须从 build.gradle 文件中省略或删除此特定会话

if (cdvReleaseSigningPropertiesFile) {
        signingConfigs {
            release {
                // These must be set or Gradle will complain (even if they are overridden).
                keyAlias = ""
                keyPassword = "__unset" // And these must be set to non-empty in order to have the signing step added to the task graph.
                storeFile = null
                storePassword = "__unset"
            }
        }
addSigningProps(cdvReleaseSigningPropertiesFile, signingConfigs.release)

2) buildTypes 中,根据调试或发布方法进行更改。在这里,我对两者都进行了修改,得到了我期望的答案。这是我的 buildTypes

buildTypes  {
            debug(or release){
        minifyEnabled false
        proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
        applicationVariants.all { variant ->
            variant.outputs.each { output ->
             project.ext { appName = 'YourName' }   
            def newName = output.outputFile.name.replace("android", "$project.ext.appName-")

            output.outputFile = new File(output.outputFile.parent, newName)
            }
        }

}

    }

这将输出为 YourName-debug.apk或YourName-release-unsigned.apk

3)要完全更改名称,您必须将另一行替换为另一行。

project.ext {appName ='YourName'}
                def newName = output.outputFile.name.replace(“android”,“$ project.ext.appName - ”)
替换为

def newName = output.outputFile.name.replace(“android-release-unsigned”,“$ project.ext.appName - ”+“您想要的任何名称”) 用于调试

def newName = output.outputFile.name.replace(“android-debug”,“$ project.ext.appName - ”+“您想要的任何名称”)

NOTE-1 :通过更改整个名称,我遇到的问题是不会在行中生成apk /位置 内置以下apk(s): 即可。此行将为空,但您的apk将生成并且文件位置相同,如我的( platforms / android / build / outputs / apk / YourName-whatevernameyouwanted.apk )。

NOTE-2 :我正在使用命令提示符来构建这些内容。对 build.gradle 文件进行更改后,您只需将其保存,这将反映在命令提示符中。它不像 android studio / eclipse ,当您编辑 build.gradle 文件时,您必须再次重新同步该文件。