assembleDebug还生成发布资产

时间:2018-04-24 20:48:14

标签: android android-studio react-native gradle android-gradle

我的目标是为每个buildType设置不同的google-services.json。我正在使用fastlane来管理不同的构建。当我现在执行我的fastlane dev命令时,它失败了,因为我在release文件夹中没有任何google-services.json文件。

这是我用于构建调试版本的fastlane脚本:

  desc "Clean, build development release"
  lane :dev do |options|
    if options[:clean]
      clean_android
    end
    rntest
    test
    gradle(
      task: "assemble", 
      build_type: "debug", 
      project_dir: "./")
  end

当我执行fastlane dev时,我收到以下错误:

  

任务执行失败':app:processReleaseGoogleServices'。

     
    

文件google-services.json缺失。没有它,Google Services插件无法运行。搜索位置:
    /Users/appfoundry/Documents/GitHub/afst18gv/DigitalReceptionist/android/app/src/release/google-services.json     /Users/appfoundry/Documents/GitHub/afst18gv/DigitalReceptionist/android/app/google-services.json

  

正如您所看到的那样,它正在发布文件夹中查找google-services.json。奇怪的是,在我的日志输出中,我可以看到它已经正确解析了调试文件夹中的google-services.json。它以某种方式还会在调试后触发所有发布生成器:

  

:app:prepareDebugDependencies:app:compileDebugAidl UP-TO-DATE   :app:compileDebugRenderscript UP-TO-DATE:app:generateDebugBuildConfig   最新消息:app:mergeDebugShaders UP-TO-DATE:app:compileDebugShaders   UP-TO-DATE:app:generateDebugAssets UP-TO-DATE:app:mergeDebugAssets   UP-TO-DATE:app:processDebugGoogleServices解析json文件:   /Users/appfoundry/Documents/GitHub/afst18gv/DigitalReceptionist/android/app/src/debug/google-services.json   :app:processDebugManifest UP-TO-DATE:app:fabricGenerateResourcesDebug   :app:generateDebugResValues UP-TO-DATE:app:generateDebugResources   :app:mergeDebugResources:app:bundleDebugJsAndAssets扫描文件夹   对于符号链接   /用户/ appfoundry /文档/ GitHub的/ afst18gv / DigitalReceptionist / node_modules   (23ms)扫描符号链接的文件夹   /用户/ appfoundry /文档/ GitHub的/ afst18gv / DigitalReceptionist / node_modules   (21ms)加载依赖图,完成。警告:转换缓存   被重置了。 bundle:start bundle:finish bundle:编写bundle输出   至:   /Users/appfoundry/Documents/GitHub/afst18gv/DigitalReceptionist/android/app/build/intermediates/assets/debug/index.android.bundle   bundle:完成编写bundle输出包:复制8个资产文件   bundle:完成复制资产:app:processDebugResources   :应用:generateDebugSources   :应用:incrementalDebugJavaCompilationSafeguard   :app:compileDebugJavaWithJavac:app:compileDebugJavaWithJavac - 不是   增量(例如输出已更改,之前没有执行等)。   :app:incrementalDebugUnitTestJavaCompilationSafeguard UP-TO-DATE   :app:preDebugUnitTestBuild UP-TO-DATE   :应用:prepareDebugUnitTestDependencies   :app:compileDebugUnitTestJavaWithJavac UP-TO-DATE   :app:processDebugJavaRes UP-TO-DATE:app:processDebugUnitTestJavaRes   UP-TO-DATE:app:compileDebugUnitTestSources UP-TO-DATE   :app:mockableAndroidJar UP-TO-DATE:app:assembleDebugUnitTest   最新消息:app:testDebugUnitTest UP-TO-DATE:app:checkReleaseManifest   :app:prepareReleaseDependencies:app:compileReleaseAidl UP-TO-DATE   :app:compileReleaseRenderscript UP-TO-DATE   :app:generateReleaseBuildConfig UP-TO-DATE:app:mergeReleaseShaders   UP-TO-DATE:app:compileReleaseShaders UP-TO-DATE   :app:generateReleaseAssets UP-TO-DATE:app:mergeReleaseAssets   最新消息:app:processReleaseGoogleServices FAILED

正如您在此处所看到的,它在调试完成后会执行所有类型的发布。

这是我的build.gradle文件

apply plugin: "com.android.application"

apply plugin: 'io.fabric'

repositories {
    maven { url 'https://maven.fabric.io/public' }
}


import com.android.build.OutputFile

project.ext.react = [
    entryFile: "index.js",
    bundleInRelease: true,
    bundleInDebug: false,
    bundleInStaging: true,
]



apply from: "../../node_modules/react-native/react.gradle"


def enableSeparateBuildPerCPUArchitecture = false

/**
 * Run Proguard to shrink the Java bytecode in release builds.
 */
def enableProguardInReleaseBuilds = false

android {
    compileSdkVersion 25
    buildToolsVersion "25.0.1"

    defaultConfig {
        applicationId "be.appfoundry.digitalreceptionist"
        minSdkVersion 16
        targetSdkVersion 22
        versionCode 1
        def env = System.getenv()
        versionName "1.0.0." + env['BUILD_NUMBER']
        ndk {
            abiFilters "armeabi-v7a", "x86"
        }
    }
    signingConfigs {
        release {
            storeFile file(MYAPP_RELEASE_STORE_FILE)
            storePassword "afst18gv"
            keyAlias MYAPP_RELEASE_KEY_ALIAS
            keyPassword "afst18gv"
        }
    }
    splits {
        abi {
            reset()
            enable enableSeparateBuildPerCPUArchitecture
            universalApk false  // If true, also generate a universal APK
            include "armeabi-v7a", "x86"
        }
    }
    buildTypes {
        staging {
            minifyEnabled enableProguardInReleaseBuilds
            proguardFiles getDefaultProguardFile("proguard-android.txt"), "proguard-rules.pro"
            applicationIdSuffix ".staging"
            signingConfig signingConfigs.release
        }
        release {
            minifyEnabled enableProguardInReleaseBuilds
            proguardFiles getDefaultProguardFile("proguard-android.txt"), "proguard-rules.pro"
            signingConfig signingConfigs.release
        }
        debug {
            applicationIdSuffix ".debug"
        }
    }
    dexOptions {
        jumboMode true
    }
    // applicationVariants are e.g. debug, release
    applicationVariants.all { variant ->
        variant.outputs.each { output ->
            // For each separate APK per architecture, set a unique version code as described here:
            // http://tools.android.com/tech-docs/new-build-system/user-guide/apk-splits
            def versionCodes = ["armeabi-v7a":1, "x86":2]
            def abi = output.getFilter(OutputFile.ABI)
            if (abi != null) {  // null for the universal-debug, universal-release variants
                output.versionCodeOverride =
                        versionCodes.get(abi) * 1048576 + defaultConfig.versionCode
            }
        }
    }
}


dependencies {
    compile project(':react-native-splash-screen')
    compile(project(':react-native-firebase')) {
        transitive = false
    }
    compile project(':react-native-push-notification')
    compile fileTree(include: ['*.jar'], dir: 'libs')
    compile 'com.android.support:appcompat-v7:23.0.1'
    compile 'com.facebook.react:react-native:+'
    compile project(':react-native-maps')
    compile project(':react-native-navigation')
    // From node_modules
    compile('com.crashlytics.sdk.android:crashlytics:2.9.1@aar') {
        transitive = true
    }
    compile(project(':react-native-maps')){
        exclude group: 'com.google.android.gms', module: 'play-services-base'
        exclude group: 'com.google.android.gms', module: 'play-services-maps'
    }
    // Firebase dependencies
    compile "com.google.android.gms:play-services-base:11.8.0"
    compile "com.google.firebase:firebase-core:11.8.0"
    compile "com.google.firebase:firebase-auth:11.8.0"
    compile "com.google.firebase:firebase-firestore:11.8.0"

    compile "com.google.android.gms:play-services-maps:11.8.0"

}

// Run this once to be able to run the application with BUCK
// puts all compile dependencies into folder libs for BUCK to use
task copyDownloadableDepsToLibs(type: Copy) {
    from configurations.compile
    into 'libs'
}


apply plugin: 'com.google.gms.google-services'

0 个答案:

没有答案