2

我有一个beta这样定义的自定义构建类型:

buildTypes {                                                                                       

    debug {                                                                                        
        applicationIdSuffix ".debug"                                                               
        testCoverageEnabled = false                                                                
    }                                                                                              

    release {                                                                                      
        minifyEnabled true                                                                         
        proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
    }                                                                                              

    beta {                                                                                         
        initWith release                                                                                                                                              
    }                                                                                              
}  

鉴于beta使用的是initWith release,人们会期望 beta 具有 的所有属性release。但是,在尝试运行时beta,Android Studio 会显示以下错误

“您当前选择的变体的 APK 未签名...”

在项目设置中创建签名配置,选择它,然后点击“应用”似乎不起作用。相反,必须手动编写签名配置:

signingConfigs {
    beta {
        storeFile file(‘…’)
        storePassword ‘…’
        keyAlias = ‘…’
        keyPassword ‘…’
    }
}

问题:

  1. 为什么必须在构建脚本中手动编写签名配置?
  2. 为什么release构建类型不需要显式签名配置,直到您实际生成签名的 APK?
  3. 鉴于这beta应该与releasevia完全一样initWith release,为什么行为会如上所示不同?
4

0 回答 0