渠道打包

关于渠道打包网上方法有很多,但是太啰嗦,博主这急性子实在看不下去了。下面直接上干货:
我使用友盟进行后台数据统计,首先在AS清单文件配置权限及appkey(可参考开发文档):
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
<uses-permission android:name="android.permission.INTERNET"/>
<uses-permission android:name="android.permission.READ_PHONE_STATE"/>
<application
...>
<meta-data android:value="573e8baae0f55a3532000010"
android:name="UMENG_APPKEY"></meta-data>
<meta-data android:value="wandoujia" android:name="UMENG_CHANNEL"/>
</application>
第二种是利用Gradle 打包:
 1. 找到清单文件修改下面代码:
  <meta-data android:name="UMENG_CHANNEL"    android:value="${UMENG_CHANNEL_VALUE}" />`

其中${UMENG_CHANNEL_VALUE}中的值就是你在gradle中自定义配置的值。
build.gradle文件就利用productFlavors这样写:

productFlavors {


wandoujia {
manifestPlaceholders = [UMENG_CHANNEL_VALUE: "wandoujia"]
}

baidu {
manifestPlaceholders = [UMENG_CHANNEL_VALUE: "baidu"]
}

c360 {
manifestPlaceholders = [UMENG_CHANNEL_VALUE: "c360"]
}

uc {
manifestPlaceholders = [UMENG_CHANNEL_VALUE: "uc"]
}

}

也可以更简洁,如下:

productFlavors {

wandoujia {}
baidu {}
c360 {}
uc {}

productFlavors.all { flavor ->
flavor.manifestPlaceholders = [UMENG_CHANNEL_VALUE: name]
}

}
下面介绍第三种:美团的批量打包方法
1.在清单文件注释掉友盟集成代码,在mainActivity中手动集成,并且将美团脚本工具中的 ChannelUtil.java文件放入项目中,代码如下:
   //美团方案 步骤一。
        //获取渠道名  meta-info
        //a.上下文 b.获取不到渠道名的默认值
        String channel   = ChannelUtil.getChannel(this, "itheima");
        //代码给友盟设置渠道
        //1.上下文
        //2.appkey
        //3.渠道名
        Log.i("TAG", "onCreate: "+channel);
        Toast.makeText(this,"channel="+channel,Toast.LENGTH_LONG).show();
        MobclickAgent.UMAnalyticsConfig config=new MobclickAgent.UMAnalyticsConfig(this,"57ef9a2be0f55a48830024d0", channel);
        MobclickAgent.startWithConfigure(config);  
2.安装批量渠道打包运行脚本python-3.6.0a1.exe,并在环境变量中进行配置,之后可在命令窗口输入python进行检验是否安装成功;
3.打包apk,并放入AndroidMultiChannelBuildTool-master运行脚本的PythonTool文件夹下,点击MultiChannelBuildTool.py开始运行脚本,之后就会自动进行批量渠道打包。


基本就是这些,如有错误还请大神指教。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Flutter支持在不同的渠道上进行打包,可以根据不同的渠道配置不同的应用包。下面是实现Flutter多渠道打包的步骤: 1. 在Flutter项目根目录下的`android/app`目录下创建一个名为`channel`的文件夹,用于存放不同渠道的配置文件。 2. 在`channel`文件夹下创建不同渠道的配置文件,例如`channel/dev.properties`、`channel/prod.properties`等。配置文件的内容可以包括应用包名、应用名称、应用图标、应用版本号等信息。例如: ``` # dev.properties # 应用包名 package_name=com.example.dev # 应用名称 app_name=dev_app # 应用图标 app_icon=dev_icon # 应用版本号 app_version=1.0.0 ``` 3. 在`android/app/build.gradle`文件中添加如下配置: ``` android { // ... defaultConfig { // ... //应用包名 applicationId "com.example.app" //应用名称 manifestPlaceholders = [ appName: "My App" ] //应用版本号 versionCode 1 versionName "1.0.0" // ... } // ... buildTypes { release { // ... //在release模式下,根据不同渠道打包 applicationVariants.all { variant -> variant.outputs.all { def outputFile = outputFileName if (outputFile.endsWith('.apk') || outputFile.endsWith('.aab')) { def fileName = outputFile.replace(".${outputFile.split("\\.").last()}", "") def channelPropertiesFile = file("channel/${variant.flavorName}.properties") if (channelPropertiesFile.exists()) { def channelProperties = new Properties() channelProperties.load(new FileInputStream(channelPropertiesFile)) outputFileName = "${fileName}_${channelProperties.getProperty("app_version")}_${channelProperties.getProperty("app_name")}.apk" output.outputFileName = outputFileName manifestPlaceholders = [ appName: channelProperties.getProperty("app_name"), appIcon: channelProperties.getProperty("app_icon") ] } } } } } } } ``` 4. 在Flutter项目根目录下运行以下命令,生成不同渠道的应用包: ``` flutter build apk --flavor dev flutter build apk --flavor prod ``` 其中,`--flavor`参数指定了打包时所使用的渠道配置文件。 5. 打包完成后,在`build\app\outputs\flutter-apk`目录下可以看到生成的不同渠道的应用包。 注意事项: - 渠道名称需要与`buildTypes`中的名称一致。 - 配置文件中的属性名需要与`build.gradle`文件中指定的属性名一致。 - 打包时需要分别运行不同渠道打包命令。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值