{"id":16558003,"url":"https://github.com/typ0520/multiple-apk-generator","last_synced_at":"2025-03-21T10:32:33.677Z","repository":{"id":206005887,"uuid":"46924394","full_name":"typ0520/multiple-apk-generator","owner":"typ0520","description":"解决android apk的批量打包,支持渠道号替换(字符串替换)、服务器地址替换、资源替换、指定文件修改、修改包名","archived":false,"fork":false,"pushed_at":"2017-05-16T09:35:33.000Z","size":151,"stargazers_count":82,"open_issues_count":1,"forks_count":19,"subscribers_count":5,"default_branch":"master","last_synced_at":"2025-03-18T00:43:30.874Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"","language":"Shell","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/typ0520.png","metadata":{"files":{"readme":"README.md","changelog":null,"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}},"created_at":"2015-11-26T12:01:56.000Z","updated_at":"2024-11-24T08:31:00.000Z","dependencies_parsed_at":"2023-11-07T15:03:42.426Z","dependency_job_id":null,"html_url":"https://github.com/typ0520/multiple-apk-generator","commit_stats":null,"previous_names":["typ0520/multiple-apk-generator"],"tags_count":3,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/typ0520%2Fmultiple-apk-generator","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/typ0520%2Fmultiple-apk-generator/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/typ0520%2Fmultiple-apk-generator/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/typ0520%2Fmultiple-apk-generator/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/typ0520","download_url":"https://codeload.github.com/typ0520/multiple-apk-generator/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":244778049,"owners_count":20508846,"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":[],"created_at":"2024-10-11T20:09:17.769Z","updated_at":"2025-03-21T10:32:33.326Z","avatar_url":"https://github.com/typ0520.png","language":"Shell","funding_links":[],"categories":[],"sub_categories":[],"readme":"## multiple-apk-generator简介\n---- \n* 解决android apk的批量打包,支持渠道号替换或者服务器地址替换(字符串替换)、资源替换、指定文件修改、修改包名\n* 轻量级: 使用shell脚本编写，方便开发者修改实现逻辑\n* 基于gradle打包apk\n \n## 使用说明\n----\n注: 需要依赖shell环境，mac和linux可以直接使用；如果是windows需要装模拟linux环境的shell工具(xshell、cygwin)\n\n``` \n1. 把multiple-apk-generator.sh复制到gradle的项目根目录\n2. 在项目根目录下新建zz-targets目录，保存apk的配置信息\n3. zz-targets中新建代表一个打包任务的文件夹,名字是(对应的module的名字 + 下划线 + xxxx)\n4. 在第一步新建的目录下面创建makefile文件，使用规定的描述语言(参考下面一节)描述输出apk之前做的一些资源替换操作\n\n``` \n\n## 描述语言说明\n----\n目前支持的插件有6种\n\n1. 修改目标app的包名\n2. 修改目标app的名字\n3. 递归替换某个文件夹的所有文件中的某个字符串\n4. 替换某个文件中的某个字符串\n5. 替换某个文件\n6. 替换某个文件中的指定行内容\n\n\u003e以下是samples项目其中一个makefile内容(详情可以参考samples项目)\n\n``` \n#修改目标包名\npackage com.example.samples2\n\n#修改app的名字\napp_name 测试项目\n\n#复制文件(如果对应的文件存在就覆盖掉)\ncopy_file app_icon.png ${res}/drawable-hdpi/ic_launcher.png\n\n#(全局字符串替换)把src/main/目录下所有文件中包含的字符串testString，替换为testString2(可用于替换渠道号、服务器地址)\nmatch_all src/main testString pretestStringsub\n\n#把config.java的中的字符串github修改为aagithubbb\nmatch_file ${src}/com/example/samples/Config.java github multiple-apk-generator\n\n#把src/main/assets/test.txt文件的第5行内容替换成replace-line5ffgdg\nreplace_line ${assets}/test.txt 5 multiple-apk-generator\n\n#参数3的内容如果包含空格使用${space}代替\nreplace_line ${res}/values/strings.xml 6 \u003cstring${space}name=\"prompt_email\"\u003emultiple-apk-generator\u003c/string\u003e\n\n``` \n\n\u003e描述语言内置常量\n\n``` \n   ${src}      代替 src/main/java\n   ${res}      代替 src/main/res\n   ${assets}   代替 src/main/assets\n   ${space}    代替 空格\n``` \n\n\u003e注意事项\n\n1. 最终输出的apk，在zz-targets/out目录下\n2. 在描述文件中以#开头的是注释，会被忽略掉\n3. 描述语言以行为单位 ，按空格分隔，第一个单词为动作，后面的依次为${1}  ${2}  ${3}  ......\n4. target目录名字以module的名字加下划线开头，再加上数字或字母(例如: app_1)\n5. 描述文件(makefile)参数中如果需要使用空格，用${space}代替\n6. 暂时不需要打包的target，可以把名字放在zz-targets下面的.zzignore文件中\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftyp0520%2Fmultiple-apk-generator","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ftyp0520%2Fmultiple-apk-generator","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftyp0520%2Fmultiple-apk-generator/lists"}