# 多渠道打包

## 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
```


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://arkdocs.analysys.cn/integration/sdk/android/channel-packing.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
