# 多渠道打包

## 1. 多渠道打包

1、 修改AndroidManifest.xml配置信息 示例：

```
<meta-data
        android:name="ANALYSYS_APPKEY"
        android:value="demobank631"/>
<meta-data
    android:name="ANALYSYS_CHANNEL"
    android:value="${ANALYSYS_CHANNEL_VALUE}"/>
```

渠道value的值修改为`${ANALYSYS_CHANNEL_VALUE}`

2、 在build.gradle文件内添加渠道信息 例如需要打包的渠道为小米、百度、豌豆荚，则配置如下：

```
方式 1
android {
    defaultConfig {
        flavorDimensions "versionCode"
    }
    productFlavors {
       xiaomi {
          manifestPlaceholders = [ANALYSYS_CHANNEL_VALUE: "xiaomi"]
        }
        baidu {
          manifestPlaceholders = [ANALYSYS_CHANNEL_VALUE: "baidu"]
        }
        wandoujia {
          manifestPlaceholders = [ANALYSYS_CHANNEL_VALUE: "wandoujia"]
        }

      }
}
// 方式 2
android {
    defaultConfig {
        flavorDimensions "versionCode"
    }
    productFlavors {
        kuan {}
        xiaomi {}
        qh360 {}
        baidu {}
        wandoujia{}
        productFlavors.all { flavor ->
            flavor.manifestPlaceholders = [ANALYSYS_CHANNEL_VALUE: name]
        }
    }
}
```

以上两种配置方式均可。

3、开发工具打apk包 在AndroidStudio菜单栏点击Build菜单–>Generate signed APK–>选择key并输入密码，选择apk包的存储位置并选择需要的渠道。

注意：如果打出的apk包名称中携带unsigned信息，如：app-baidu-release-unsigned.apk，可以试试打包的时候手动输入一下签名信息的密码。

4、 命令行打apk包 还需在build.gradle文件中配置如下签名信息：

```
android {
    signingConfigs {
        release {
          keyAlias "analysys"
          keyPassword "analysys" //签名密码
          storeFile file("../keyStore") //签名文件路径
          storePassword "analysys"

        }
      }
}
```

执行命令`./gradlew assembleRelease`,此时在`app/build/output/apk`目录下会生成相应渠道的apk包。 注意：如果打出的apk包名称中携带unsigned信息，如：app-baidu-release-unsigned.apk， 则表示apk包无签名信息，则需要在build.gradle文件中添加如下内容：

```
buildTypes {
    release {
      signingConfig signingConfigs.release
    }
  }
```

如果想打指定渠道的包可以执行如下格式命令： `./gradlew assemble + build.gradle中配置渠道名称 + release`

如需要打豌豆荚渠道apk包，则执行如下命令：

```
./gradlew assembleWandoujiaRelease
```
