美文网首页
记一次小米推送的配置gradle文件管中窥豹

记一次小米推送的配置gradle文件管中窥豹

作者: fancychendong | 来源:发表于2017-02-28 22:32 被阅读220次

记一次接入小米推送的配置gradle文件管中窥豹

buildTypes {
        release {
            minifyEnabled true
            proguardFile getDefaultProguardFile('proguard-android.txt')
            proguardFile 'proguard-project.txt'
            signingConfig signingConfigs.release
            resValue("string" , "MiPush_AppId","2882xxxxxxx679")
            resValue("string" , "MiPush_AppKey","594xxxxx679")
            manifestPlaceholders = [nim_key : 'f7379xxxxxx31f19c20']
        }
        debug {
//            如果要求debug的app使用正式签名,可以打开下面配置
            signingConfig signingConfigs.release
            applicationIdSuffix ".debug"
            resValue("string", "MiPush_AppId", "288xxxxx788")
            resValue("string", "MiPush_AppKey", "591xxxx88")
            manifestPlaceholders = [nim_key : 'a91axxxxxxcxxeb54']
        }
    }

    productFlavors {
        study_enterprise{
            applicationId = "com.xiao.dong"
        }

        //测试固定Ip
//        offline_test{}
//        offline_mini_test {}
    }

如果要用AS打多包名的apk,这种需求一般是建立在不同渠道或者不同buildType的时候产生的需求。
可以通过配置applicationId = “” 的方式配置不同的appId。
有个疑问,为什么修改applicationId即可修改包名呢?applicationID和packagename到底是什么关系? 实际上, package 代表了 java 代码中的包名。 applicationId 代表了应用中的唯一标识。和应用签名一起用来区别和其他应用不同。我想这也就是为什么 Google 市场能够允许相同应用不同 applicationId 的原因。

这里还有个问题,还可以通过配置applicationIdSuffix “” 配置appId的后缀名,这样需求可能就是要接入第三方sdk的时候,配置key的时候,有些平台需要在debug的时候有特殊要求。还有个好处是有些产品需要有alpha、beta、debug、release各种奇奇怪怪的版本。

还有一个就是

resValue("string", "MiPush_AppId", "2882xxxx788")
resValue("string", "MiPush_AppKey", "591xxx42788")

这种方式执行完,gradle build之后会再

Paste_Image.png

目录下生成一个generated.xml文件,内容是

<?xml version="1.0" encoding="utf-8"?>
<resources>

    <!-- Automatically generated file. DO NOT MODIFY -->

    <!-- Values from build type: debug -->
    <string name="MiPush_AppId" translatable="false">288xxxxx8</string>
    <string name="MiPush_AppKey" translatable="false">59xxxx8</string>

</resources>

原来如此,这种方式就是通过gradle配置自动生成string信息,并且可以通过R.string.MiPush_AppId 的方式访问到。
再说下translatable=“false”是什么意思,一般as新建一个工厂会有很多value-xx的文件,这个是为了做国际化处理的。而我们这里手动设置translatable=“false”就是告诉系统,不要把这个string国际化处理。

相关文章

网友评论

      本文标题:记一次小米推送的配置gradle文件管中窥豹

      本文链接:https://www.haomeiwen.com/subject/xbmfgttx.html