{"id":26223305,"url":"https://github.com/rxreader/walle_kit","last_synced_at":"2025-10-24T13:41:20.654Z","repository":{"id":45285844,"uuid":"254425790","full_name":"RxReader/walle_kit","owner":"RxReader","description":"Flutter 版 Walle 多渠道打包，支持360加固、腾讯乐固","archived":false,"fork":false,"pushed_at":"2023-05-29T06:59:57.000Z","size":252,"stargazers_count":26,"open_issues_count":6,"forks_count":4,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-04-10T08:56:08.512Z","etag":null,"topics":["android","flutter","jia-gu","le-gu","walle"],"latest_commit_sha":null,"homepage":"","language":"Dart","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/RxReader.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2020-04-09T16:37:12.000Z","updated_at":"2024-09-10T09:36:38.000Z","dependencies_parsed_at":"2025-03-12T17:43:35.249Z","dependency_job_id":null,"html_url":"https://github.com/RxReader/walle_kit","commit_stats":null,"previous_names":[],"tags_count":13,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/RxReader%2Fwalle_kit","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/RxReader%2Fwalle_kit/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/RxReader%2Fwalle_kit/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/RxReader%2Fwalle_kit/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/RxReader","download_url":"https://codeload.github.com/RxReader/walle_kit/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":249677085,"owners_count":21309489,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["android","flutter","jia-gu","le-gu","walle"],"created_at":"2025-03-12T17:30:48.140Z","updated_at":"2025-10-24T13:41:20.567Z","avatar_url":"https://github.com/RxReader.png","language":"Dart","funding_links":[],"categories":[],"sub_categories":[],"readme":"# walle_kit\n\n[![Pub Package](https://img.shields.io/pub/v/walle_kit.svg)](https://pub.dev/packages/walle_kit)\n[![License](https://img.shields.io/github/license/RxReader/walle_kit)](https://github.com/RxReader/walle_kit/blob/master/LICENSE)\n\nflutter版walle多渠道打包工具\n\n## 相关工具\n\n* [Flutter版微信SDK](https://github.com/RxReader/wechat_kit)\n* [Flutter版腾讯(QQ)SDK](https://github.com/RxReader/tencent_kit)\n* [Flutter版新浪微博SDK](https://github.com/RxReader/weibo_kit)\n* [Flutter版支付宝SDK](https://github.com/RxReader/alipay_kit)\n* [Flutter版深度链接](https://github.com/RxReader/link_kit)\n* [Flutter版walle渠道打包工具](https://github.com/RxReader/walle_kit)\n\n## dart/flutter 私服\n\n* [simple_pub_server](https://github.com/rxreader/simple_pub_server)\n\n## docs\n\n* [Meituan-Dianping/walle](https://github.com/Meituan-Dianping/walle)\n* [rxreader/qihoo360-jiagu-docker](https://github.com/rxreader/qihoo360-jiagu-docker)\n* [rxreader/tencentcloud-legu](https://github.com/rxreader/tencentcloud-legu)\n* [移动安全-应用加固命令行工具jar包使用说明](https://cloud.tencent.com/developer/article/1193406)\n* [腾讯云·访问管理](https://console.cloud.tencent.com/cam/capi)\n* [腾讯云·移动应用安全](https://console.cloud.tencent.com/ms/reinforce/list)\n\n## Android\n\n\u003e ⚠️ 360不让白嫖党使用CLI\n\n\u003e ⚠️⚠️⚠️ 辣鸡加固服务，全特么翻车 ... 大家伙洗洗睡吧，360加固/腾讯乐固已死 ...\n```shell\n 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]\n```\n```shell\n# 解决方案 - 对 360 加固有效，对腾讯乐固无效（会报错）\nzipalign -p -f -v 4 input.apk output.apk\n```\n\n* apply\n\n```groovy\n// android/app/build.gradle\napply from: \"${project(\":walle_kit\").projectDir}/walle_kit_v3.gradle\" // 推荐（非cli方式，不支持360加固、不支持腾讯乐固）\n// 或\napply from: \"${project(\":walle_kit\").projectDir}/walle_kit_v2.gradle\" // 推荐（非cli方式，不支持360加固、支持腾讯乐固）\n// 或\napply from: \"${project(\":walle_kit\").projectDir}/walle_kit.gradle\" // 不推荐（cli方式，支持360加固、支持腾讯乐固）\n```\n\n* fileNameFormat\n\n```groovy\n// appName: \n// projectName: \n// buildType: \n// versionName: \n// versionCode: \n// packageName: \n// flavorName: \n// channelId: \n```\n\n* channelFile\n  * [配置文件示例 - channel](example/android/app/channel)\n  * [配置文件示例 - channel.json](example/android/app/channel.json)\n\n### walle_kit_v3.gradle\n\n\u003e 应用宝上架，已不再强制要求加固\n\u003e 用法同 walle_kit_v2.gradle 一致，不同的是已不再支持腾讯乐固功能\n\n### walle_kit_v2.gradle\n\n* without flavors\n\n```groovy\n// android/app/build.gradle\nwalle {\n    enabled = true\n\n    // [访问管理](https://console.cloud.tencent.com/cam/capi)\n    // [移动应用安全](https://console.cloud.tencent.com/ms/reinforce/list)\n    tencent {\n        secretId = 'xxx'\n        secretKey = 'xxx'\n//        region = 'ap-guangzhou' // 可选：'ap-guangzhou'、'ap-shanghai'，默认：'ap-guangzhou'\n        channels = ['tencent', 'tencent-alias']\n    }\n\n    outputDir = file(\"${project.buildDir}/outputs/apk/walle\") // 默认：file(\"${project.buildDir}/outputs/apk/${flavorName}/${buildType}/walle\")\n    fileNameFormat = '${appName}-${buildType}-${channelId}.apk' // 默认：'${appName}-${buildType}-${channelId}.apk'\n    channelFile = file('channel')\n}\n```\n\n```groovy\n// android/app/build.gradle\nandroid {\n    walleConfigs {\n        release {\n            enabled = true\n\n            // [访问管理](https://console.cloud.tencent.com/cam/capi)\n            // [移动应用安全](https://console.cloud.tencent.com/ms/reinforce/list)\n            tencent {\n                secretId = 'xxx'\n                secretKey = 'xxx'\n//                region = 'ap-guangzhou' // 可选：'ap-guangzhou'、'ap-shanghai'，默认：'ap-guangzhou'\n                channels = ['tencent', 'tencent-alias']\n            }\n\n            outputDir = file(\"${project.buildDir}/outputs/apk/walle\") // 默认：file(\"${project.buildDir}/outputs/apk/${flavorName}/${buildType}/walle\")\n            fileNameFormat = '${appName}-${buildType}-${channelId}.apk' // 默认：'${appName}-${buildType}-${channelId}.apk'\n            channelFile = file('channel')\n        }\n    }\n}\n\nwalle {\n    enabled = false\n}\n```\n\n* flavors\n\n```groovy\n// android/app/build.gradle\nandroid {\n    productFlavors {\n        prod {\n        }\n    }\n\n    walleConfigs {\n        prod {\n            enabled = true\n\n            // [访问管理](https://console.cloud.tencent.com/cam/capi)\n            // [移动应用安全](https://console.cloud.tencent.com/ms/reinforce/list)\n            tencent {\n                secretId = 'xxx'\n                secretKey = 'xxx'\n//                region = 'ap-guangzhou' // 可选：'ap-guangzhou'、'ap-shanghai'，默认：'ap-guangzhou'\n                channels = ['tencent', 'tencent-alias']\n            }\n\n            outputDir = file(\"${project.buildDir}/outputs/apk/walle\") // 默认：file(\"${project.buildDir}/outputs/apk/${flavorName}/${buildType}/walle\")\n            fileNameFormat = '${appName}-${buildType}-${channelId}.apk' // 默认：'${appName}-${buildType}-${channelId}.apk'\n            channelFile = file('channel')\n        }\n    }\n}\n\nwalle {\n    enabled = false\n}\n```\n\n### walle_kit.gradle\n\n* without flavors\n\n```groovy\n// android/app/build.gradle\nwalle {\n    enabled = true\n\n//    // https://github.com/rxreader/walle-docker\n//    jarFile = file('script/walle-cli-all.jar') // 默认：file('script/walle-cli-all.jar')\n\n    qihoo360 {\n//        // https://github.com/rxreader/qihoo360-jiagu-docker\n//        jiaguJarFile = file('script/jiagu/jiagu.jar') // 默认：file('script/jiagu/jiagu.jar')\n\n        account = 'xxx'\n        password = 'xxx'\n        channels = ['qihu360', 'qihu360-alias']\n    }\n\n    // [访问管理](https://console.cloud.tencent.com/cam/capi)\n    // [移动应用安全](https://console.cloud.tencent.com/ms/reinforce/list)\n    tencent {\n//        // https://github.com/rxreader/tencentcloud-legu\n//        leguJarFile = file('script/legu-all.jar') // 默认：file('script/legu-all.jar')\n\n        secretId = 'xxx'\n        secretKey = 'xxx'\n//        region = 'ap-guangzhou' // 可选：'ap-guangzhou'、'ap-shanghai'，默认：'ap-guangzhou'\n        channels = ['tencent', 'tencent-alias']\n    }\n\n    outputDir = file(\"${project.buildDir}/outputs/apk/walle\") // 默认：file(\"${project.buildDir}/outputs/apk/${flavorName}/${buildType}/walle\")\n    fileNameFormat = '${appName}-${buildType}-${channelId}.apk' // 默认：'${appName}-${buildType}-${channelId}.apk'\n    channelFile = file('channel')\n}\n```\n\n```groovy\n// android/app/build.gradle\nandroid {\n    walleConfigs {\n        release {\n            enabled = true\n\n//            // https://github.com/rxreader/walle-docker\n//            jarFile = file('script/walle-cli-all.jar') // 默认：file('script/walle-cli-all.jar')\n\n            qihoo360 {\n//                // https://github.com/rxreader/qihoo360-jiagu-docker\n//                jiaguJarFile = file('script/jiagu/jiagu.jar') // 默认：file('script/jiagu/jiagu.jar')\n\n                account = 'xxx'\n                password = 'xxx'\n                channels = ['qihu360', 'qihu360-alias']\n            }\n\n            // [访问管理](https://console.cloud.tencent.com/cam/capi)\n            // [移动应用安全](https://console.cloud.tencent.com/ms/reinforce/list)\n            tencent {\n//                // https://github.com/rxreader/tencentcloud-legu\n//                leguJarFile = file('script/legu-all.jar') // 默认：file('script/legu-all.jar')\n\n                secretId = 'xxx'\n                secretKey = 'xxx'\n//                region = 'ap-guangzhou' // 可选：'ap-guangzhou'、'ap-shanghai'，默认：'ap-guangzhou'\n                channels = ['tencent', 'tencent-alias']\n            }\n\n            outputDir = file(\"${project.buildDir}/outputs/apk/walle\") // 默认：file(\"${project.buildDir}/outputs/apk/${flavorName}/${buildType}/walle\")\n            fileNameFormat = '${appName}-${buildType}-${channelId}.apk' // 默认：'${appName}-${buildType}-${channelId}.apk'\n            channelFile = file('channel')\n        }\n    }\n}\n\nwalle {\n    enabled = false\n}\n```\n\n* flavors\n\n```groovy\n// android/app/build.gradle\nandroid {\n    productFlavors {\n        prod {\n        }\n    }\n\n    walleConfigs {\n        prod {\n            enabled = true\n\n//            // https://github.com/rxreader/walle-docker\n//            jarFile = file('script/walle-cli-all.jar') // 默认：file('script/walle-cli-all.jar')\n\n            qihoo360 {\n//                // https://github.com/rxreader/qihoo360-jiagu-docker\n//                jiaguJarFile = file('script/jiagu/jiagu.jar') // 默认：file('script/jiagu/jiagu.jar')\n\n                account = 'xxx'\n                password = 'xxx'\n                channels = ['qihu360', 'qihu360-alias']\n            }\n\n            // [访问管理](https://console.cloud.tencent.com/cam/capi)\n            // [移动应用安全](https://console.cloud.tencent.com/ms/reinforce/list)\n            tencent {\n//                // https://github.com/rxreader/tencentcloud-legu\n//                leguJarFile = file('script/legu-all.jar') // 默认：file('script/legu-all.jar')\n\n                secretId = 'xxx'\n                secretKey = 'xxx'\n//                region = 'ap-guangzhou' // 可选：'ap-guangzhou'、'ap-shanghai'，默认：'ap-guangzhou'\n                channels = ['tencent', 'tencent-alias']\n            }\n\n            outputDir = file(\"${project.buildDir}/outputs/apk/walle\") // 默认：file(\"${project.buildDir}/outputs/apk/${flavorName}/${buildType}/walle\")\n            fileNameFormat = '${appName}-${buildType}-${channelId}.apk' // 默认：'${appName}-${buildType}-${channelId}.apk'\n            channelFile = file('channel')\n        }\n    }\n}\n\nwalle {\n    enabled = false\n}\n```\n\n## Flutter\n\n* snapshot\n\n```yaml\ndependencies:\n  walle_kit:\n    git:\n      url: https://github.com/rxreader/walle_kit.git\n```\n\n* release\n\n```yaml\ndependencies:\n  walle_kit: ^${latestTag}\n```\n\n## Star History\n\n![stars](https://starchart.cc/rxreader/walle_kit.svg)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Frxreader%2Fwalle_kit","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Frxreader%2Fwalle_kit","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Frxreader%2Fwalle_kit/lists"}