小编Ser*_*iBC的帖子

在build.gradle上添加存储库的位置和原因

当Android Studio中创建了一个项目,顶级构建文件有两个仓库的定义,一个内部buildscript和其他内部allprojects.

// Top-level build file where you can add configuration options common to all sub-    projects/modules.

buildscript {
    repositories {
        mavenCentral()
    }
    dependencies {
        classpath 'com.android.tools.build:gradle:0.9.+'
    }
}

allprojects {
    repositories {
        mavenCentral()
    }
}
Run Code Online (Sandbox Code Playgroud)

我必须在添加其他存储库,为什么?

我觉得这里面buildscript库是在这里添加gradle这个插件的依赖,但我不知道...

请有人澄清我.

谢谢!

android build repository gradle

10
推荐指数
1
解决办法
2614
查看次数

使用服务帐户凭据模式的 Firebase 分发 Android 应用程序的权限被拒绝

我正在尝试从 Fabric 迁移到 Firebase,因为 Fabric 在 2020 年 3 月 31 日之后将不再可用。

我已经完成了第一步:向 gradle 添加插件和依赖项、添加分析 json 文件,甚至崩溃报告,所有这些似乎都是正确的,因为我可以在 Firebase 控制台中看到数据(分析和崩溃)。

但我没有那么幸运将应用程序分发系统从 Beta+Fastlane 迁移到 Firebase。我正在尝试选项“使用 Gradle 将 Android 应用程序分发给测试人员”。我已经添加了插件和依赖项,并且添加得很好,因为我可以运行 gradle 任务./gradlew appDistributionUploadMyVariant

serviceCredentialsFile从 Google Cloud Platform 控制台获取名为firebase-adminsdk(我认为这个名称是由 Firebase 系统给出的)的用户的正确项目。用户的电子邮件是这样的,与我在Firebase 控制台 -> 设置 -> 服务帐户 -> Firebase Admin SDKfirebase-adminsdk-xxx@my_project.iam.gserviceaccount.com中看到的相同。

我已经下载了带有凭据的 json 文件,并且 gradle 可以找到它,因为如果故意为文件输入错误的路径 URL,它会记录一个Service credentials file does not exist. 根据我上面提到的一些行,该文件的内容具有正确的 和 值client_emailproject_id

但我收到 403 错误。我粘贴了执行任务时获得的一些信息./gradlew …

android gradle firebase google-fabric firebase-app-distribution

5
推荐指数
1
解决办法
8895
查看次数

来自Gradle和Jenkins的Nexus用户(Android)

我开始使用Jenkins,SCM,Nexus和Android-Gradle进行持续改进.我在Gradle中有一个任务是将AAR文件上传到我的Nexus存储库,如果我从我的计算机执行它,它就可以找到它.任务是' install ',gradle-code如下:

// upload to our nexus repository
uploadArchives {
    repositories {
        // the maven plugin features this deployer
        mavenDeployer {
            // we deploy to the release repository in this case
            repository(url: "https://nexus1.xxxxx.com/nexus/content/repositories/releases") {
                authentication(userName: getRepositoryUsername(), password: getRepositoryPassword())
            }

            // pom project information
            pom.project {
                version android.defaultConfig.versionName
                artifactId 't21-android-commons-utils'
                name 'T21 Android Commons Utils Lib'
                packaging 'aar'
            }
        }
    }
}
task install(dependsOn: uploadArchives)
Run Code Online (Sandbox Code Playgroud)

身份验证函数调用getRepositoryUsername()getRepositoryPassword()以从gradle.properties读取凭据.但我不想在我们的SCM中公开这个文件,它应该不安全.

当我将代码推送到我们的SCM时,Jenkins注意到它并执行一项工作来完成一些gradle-task,包括' install '.它工作正常但" 安装 "无法向Nexus服务器进行身份验证,因为找不到gradle.properties(正如预期的那样).

所以,我想知道我应该怎么做"认证 …

version-control android nexus gradle jenkins

2
推荐指数
1
解决办法
1330
查看次数