https://github.com/rxreader/walle_kit
Flutter 版 Walle 多渠道打包,支持360加固、腾讯乐固
https://github.com/rxreader/walle_kit
android flutter jia-gu le-gu walle
Last synced: 8 months ago
JSON representation
Flutter 版 Walle 多渠道打包,支持360加固、腾讯乐固
- Host: GitHub
- URL: https://github.com/rxreader/walle_kit
- Owner: RxReader
- License: apache-2.0
- Created: 2020-04-09T16:37:12.000Z (about 6 years ago)
- Default Branch: master
- Last Pushed: 2023-05-29T06:59:57.000Z (about 3 years ago)
- Last Synced: 2025-04-10T08:56:08.512Z (about 1 year ago)
- Topics: android, flutter, jia-gu, le-gu, walle
- Language: Dart
- Homepage:
- Size: 246 KB
- Stars: 26
- Watchers: 1
- Forks: 4
- Open Issues: 6
-
Metadata Files:
- Readme: README.md
- Changelog: CHANGELOG.md
- License: LICENSE
Awesome Lists containing this project
README
# walle_kit
[](https://pub.dev/packages/walle_kit)
[](https://github.com/RxReader/walle_kit/blob/master/LICENSE)
flutter版walle多渠道打包工具
## 相关工具
* [Flutter版微信SDK](https://github.com/RxReader/wechat_kit)
* [Flutter版腾讯(QQ)SDK](https://github.com/RxReader/tencent_kit)
* [Flutter版新浪微博SDK](https://github.com/RxReader/weibo_kit)
* [Flutter版支付宝SDK](https://github.com/RxReader/alipay_kit)
* [Flutter版深度链接](https://github.com/RxReader/link_kit)
* [Flutter版walle渠道打包工具](https://github.com/RxReader/walle_kit)
## dart/flutter 私服
* [simple_pub_server](https://github.com/rxreader/simple_pub_server)
## docs
* [Meituan-Dianping/walle](https://github.com/Meituan-Dianping/walle)
* [rxreader/qihoo360-jiagu-docker](https://github.com/rxreader/qihoo360-jiagu-docker)
* [rxreader/tencentcloud-legu](https://github.com/rxreader/tencentcloud-legu)
* [移动安全-应用加固命令行工具jar包使用说明](https://cloud.tencent.com/developer/article/1193406)
* [腾讯云·访问管理](https://console.cloud.tencent.com/cam/capi)
* [腾讯云·移动应用安全](https://console.cloud.tencent.com/ms/reinforce/list)
## Android
> ⚠️ 360不让白嫖党使用CLI
> ⚠️⚠️⚠️ 辣鸡加固服务,全特么翻车 ... 大家伙洗洗睡吧,360加固/腾讯乐固已死 ...
```shell
Failure [-124: Failed parse during installPackageLI: Targeting R+ (version 30 and above) requires the resources.arsc of installed APKs to be stored uncompressed and aligned on a 4-byte boundary]
```
```shell
# 解决方案 - 对 360 加固有效,对腾讯乐固无效(会报错)
zipalign -p -f -v 4 input.apk output.apk
```
* apply
```groovy
// android/app/build.gradle
apply from: "${project(":walle_kit").projectDir}/walle_kit_v3.gradle" // 推荐(非cli方式,不支持360加固、不支持腾讯乐固)
// 或
apply from: "${project(":walle_kit").projectDir}/walle_kit_v2.gradle" // 推荐(非cli方式,不支持360加固、支持腾讯乐固)
// 或
apply from: "${project(":walle_kit").projectDir}/walle_kit.gradle" // 不推荐(cli方式,支持360加固、支持腾讯乐固)
```
* fileNameFormat
```groovy
// appName:
// projectName:
// buildType:
// versionName:
// versionCode:
// packageName:
// flavorName:
// channelId:
```
* channelFile
* [配置文件示例 - channel](example/android/app/channel)
* [配置文件示例 - channel.json](example/android/app/channel.json)
### walle_kit_v3.gradle
> 应用宝上架,已不再强制要求加固
> 用法同 walle_kit_v2.gradle 一致,不同的是已不再支持腾讯乐固功能
### walle_kit_v2.gradle
* without flavors
```groovy
// android/app/build.gradle
walle {
enabled = true
// [访问管理](https://console.cloud.tencent.com/cam/capi)
// [移动应用安全](https://console.cloud.tencent.com/ms/reinforce/list)
tencent {
secretId = 'xxx'
secretKey = 'xxx'
// region = 'ap-guangzhou' // 可选:'ap-guangzhou'、'ap-shanghai',默认:'ap-guangzhou'
channels = ['tencent', 'tencent-alias']
}
outputDir = file("${project.buildDir}/outputs/apk/walle") // 默认:file("${project.buildDir}/outputs/apk/${flavorName}/${buildType}/walle")
fileNameFormat = '${appName}-${buildType}-${channelId}.apk' // 默认:'${appName}-${buildType}-${channelId}.apk'
channelFile = file('channel')
}
```
```groovy
// android/app/build.gradle
android {
walleConfigs {
release {
enabled = true
// [访问管理](https://console.cloud.tencent.com/cam/capi)
// [移动应用安全](https://console.cloud.tencent.com/ms/reinforce/list)
tencent {
secretId = 'xxx'
secretKey = 'xxx'
// region = 'ap-guangzhou' // 可选:'ap-guangzhou'、'ap-shanghai',默认:'ap-guangzhou'
channels = ['tencent', 'tencent-alias']
}
outputDir = file("${project.buildDir}/outputs/apk/walle") // 默认:file("${project.buildDir}/outputs/apk/${flavorName}/${buildType}/walle")
fileNameFormat = '${appName}-${buildType}-${channelId}.apk' // 默认:'${appName}-${buildType}-${channelId}.apk'
channelFile = file('channel')
}
}
}
walle {
enabled = false
}
```
* flavors
```groovy
// android/app/build.gradle
android {
productFlavors {
prod {
}
}
walleConfigs {
prod {
enabled = true
// [访问管理](https://console.cloud.tencent.com/cam/capi)
// [移动应用安全](https://console.cloud.tencent.com/ms/reinforce/list)
tencent {
secretId = 'xxx'
secretKey = 'xxx'
// region = 'ap-guangzhou' // 可选:'ap-guangzhou'、'ap-shanghai',默认:'ap-guangzhou'
channels = ['tencent', 'tencent-alias']
}
outputDir = file("${project.buildDir}/outputs/apk/walle") // 默认:file("${project.buildDir}/outputs/apk/${flavorName}/${buildType}/walle")
fileNameFormat = '${appName}-${buildType}-${channelId}.apk' // 默认:'${appName}-${buildType}-${channelId}.apk'
channelFile = file('channel')
}
}
}
walle {
enabled = false
}
```
### walle_kit.gradle
* without flavors
```groovy
// android/app/build.gradle
walle {
enabled = true
// // https://github.com/rxreader/walle-docker
// jarFile = file('script/walle-cli-all.jar') // 默认:file('script/walle-cli-all.jar')
qihoo360 {
// // https://github.com/rxreader/qihoo360-jiagu-docker
// jiaguJarFile = file('script/jiagu/jiagu.jar') // 默认:file('script/jiagu/jiagu.jar')
account = 'xxx'
password = 'xxx'
channels = ['qihu360', 'qihu360-alias']
}
// [访问管理](https://console.cloud.tencent.com/cam/capi)
// [移动应用安全](https://console.cloud.tencent.com/ms/reinforce/list)
tencent {
// // https://github.com/rxreader/tencentcloud-legu
// leguJarFile = file('script/legu-all.jar') // 默认:file('script/legu-all.jar')
secretId = 'xxx'
secretKey = 'xxx'
// region = 'ap-guangzhou' // 可选:'ap-guangzhou'、'ap-shanghai',默认:'ap-guangzhou'
channels = ['tencent', 'tencent-alias']
}
outputDir = file("${project.buildDir}/outputs/apk/walle") // 默认:file("${project.buildDir}/outputs/apk/${flavorName}/${buildType}/walle")
fileNameFormat = '${appName}-${buildType}-${channelId}.apk' // 默认:'${appName}-${buildType}-${channelId}.apk'
channelFile = file('channel')
}
```
```groovy
// android/app/build.gradle
android {
walleConfigs {
release {
enabled = true
// // https://github.com/rxreader/walle-docker
// jarFile = file('script/walle-cli-all.jar') // 默认:file('script/walle-cli-all.jar')
qihoo360 {
// // https://github.com/rxreader/qihoo360-jiagu-docker
// jiaguJarFile = file('script/jiagu/jiagu.jar') // 默认:file('script/jiagu/jiagu.jar')
account = 'xxx'
password = 'xxx'
channels = ['qihu360', 'qihu360-alias']
}
// [访问管理](https://console.cloud.tencent.com/cam/capi)
// [移动应用安全](https://console.cloud.tencent.com/ms/reinforce/list)
tencent {
// // https://github.com/rxreader/tencentcloud-legu
// leguJarFile = file('script/legu-all.jar') // 默认:file('script/legu-all.jar')
secretId = 'xxx'
secretKey = 'xxx'
// region = 'ap-guangzhou' // 可选:'ap-guangzhou'、'ap-shanghai',默认:'ap-guangzhou'
channels = ['tencent', 'tencent-alias']
}
outputDir = file("${project.buildDir}/outputs/apk/walle") // 默认:file("${project.buildDir}/outputs/apk/${flavorName}/${buildType}/walle")
fileNameFormat = '${appName}-${buildType}-${channelId}.apk' // 默认:'${appName}-${buildType}-${channelId}.apk'
channelFile = file('channel')
}
}
}
walle {
enabled = false
}
```
* flavors
```groovy
// android/app/build.gradle
android {
productFlavors {
prod {
}
}
walleConfigs {
prod {
enabled = true
// // https://github.com/rxreader/walle-docker
// jarFile = file('script/walle-cli-all.jar') // 默认:file('script/walle-cli-all.jar')
qihoo360 {
// // https://github.com/rxreader/qihoo360-jiagu-docker
// jiaguJarFile = file('script/jiagu/jiagu.jar') // 默认:file('script/jiagu/jiagu.jar')
account = 'xxx'
password = 'xxx'
channels = ['qihu360', 'qihu360-alias']
}
// [访问管理](https://console.cloud.tencent.com/cam/capi)
// [移动应用安全](https://console.cloud.tencent.com/ms/reinforce/list)
tencent {
// // https://github.com/rxreader/tencentcloud-legu
// leguJarFile = file('script/legu-all.jar') // 默认:file('script/legu-all.jar')
secretId = 'xxx'
secretKey = 'xxx'
// region = 'ap-guangzhou' // 可选:'ap-guangzhou'、'ap-shanghai',默认:'ap-guangzhou'
channels = ['tencent', 'tencent-alias']
}
outputDir = file("${project.buildDir}/outputs/apk/walle") // 默认:file("${project.buildDir}/outputs/apk/${flavorName}/${buildType}/walle")
fileNameFormat = '${appName}-${buildType}-${channelId}.apk' // 默认:'${appName}-${buildType}-${channelId}.apk'
channelFile = file('channel')
}
}
}
walle {
enabled = false
}
```
## Flutter
* snapshot
```yaml
dependencies:
walle_kit:
git:
url: https://github.com/rxreader/walle_kit.git
```
* release
```yaml
dependencies:
walle_kit: ^${latestTag}
```
## Star History
