写点什么

Wikipedia Android 应用构建与发布工具集

作者:qife
  • 2025-07-12
    福建
  • 本文字数:1597 字

    阅读完需:约 5 分钟

Wikipedia Android 应用构建与发布工具集

项目描述

这是 Wikipedia 官方 Android 应用的构建与发布工具集,提供完整的自动化构建流程。项目包含多种实用工具脚本,用于构建不同渠道的 APK、管理版本号、上传发布包以及处理多语言资源等。

功能特性

  • 多平台构建支持:支持构建 beta、生产环境和各应用商店(Amazon/Samsung/Huawei)的 APK

  • 版本管理:自动化版本号递增和 Git 标签管理

  • 发布上传:自动上传 APK 到 Wikimedia 发布服务器

  • 多语言支持:自动从 MediaWiki API 获取语言列表并生成资源文件

  • 设计令牌处理:支持从 Codex 设计系统获取颜色令牌

  • 文档检查:验证字符串资源文档完整性

  • 跨平台兼容:支持 Windows、macOS 和 Linux 系统

安装指南

系统要求

  • Python 3.x

  • Git

  • Android SDK (ANDROID_HOME 环境变量)

  • SCP (用于上传功能)

安装步骤

  1. 克隆仓库:


git clone https://github.com/wikimedia/wikipedia-android.gitcd wikipedia-android
复制代码


  1. 安装 Python 依赖:


pip install requests lxml jinja2
复制代码


  1. 配置签名信息(生产构建需要):


mkdir ~/.signecho "STORE_FILE=your.keystore" > ~/.sign/signing.propertiesecho "STORE_PASSWORD=yourpassword" >> ~/.sign/signing.propertiesecho "KEY_ALIAS=youralias" >> ~/.sign/signing.propertiesecho "KEY_PASSWORD=yourkeypassword" >> ~/.sign/signing.properties
复制代码

使用说明

构建所有发布变体

python scripts/build-all.py
复制代码

构建单个发布版本

python scripts/make-release.py --prod  # 生产版本python scripts/make-release.py --beta  # beta版本python scripts/make-release.py --channel amazon  # Amazon渠道包
复制代码

上传 APK 到发布服务器

python scripts/upload-apks.py
复制代码

递增版本号

python scripts/bump-version.py
复制代码

生成语言资源

python scripts/generate-languages.py
复制代码

核心代码

多平台构建脚本 (build-all.py)

def main():    builds = [        ("Beta bundle", ["--beta", "--bundle"]),        ("Production bundle", ["--prod", "--bundle"]),        ("Amazon APK", ["--channel", "amazon"]),        ("Samsung APK", ["--channel", "samsung"]),        ("Huawei APK", ["--channel", "huawei"]),    ]        success_count = 0    total_builds = len(builds)        for description, args in builds:        print(f"Building {description}...")        if run_make_release(*args):            success_count += 1
复制代码

APK 上传脚本 (upload-apks.py)

UPLOAD_CONFIGS = [    {        'name': 'beta',        'pattern': './releases/wikipedia-*-beta*.apk',        'path': 'releases.discovery.wmnet:/srv/org/wikimedia/releases/mobile/android/wikipedia/betas/'    },    {        'name': 'stable',        'pattern': './releases/wikipedia-*-r*.apk',        'path': 'releases.discovery.wmnet:/srv/org/wikimedia/releases/mobile/android/wikipedia/stable/'    }]
def upload_apks(name, pattern, upload_path): files = glob.glob(pattern) if files: subprocess.run(['scp'] + files + [upload_path], check=True)
复制代码

版本号递增脚本 (bump-version.py)

def set_version_code(data):    match = version_code_pattern.search(data)    version_code = int(match.group('value'))    next_version_code = r'\g<key> {}'.format(version_code + 1)    return version_code_pattern.sub(next_version_code, data)
def bump(file_path): transform_file(file_path, set_version_code) run_git_command('checkout', 'main') run_git_command('checkout', '-b', 'bumpVersionCode') run_git_command('add', '-u', file_path) run_git_command('commit', '-m', 'Bump versionCode.')
复制代码


更多精彩内容 请关注我的个人公众号 公众号(办公 AI 智能小助手)公众号二维码


办公AI智能小助手


用户头像

qife

关注

还未添加个人签名 2021-05-19 加入

还未添加个人简介

评论

发布
暂无评论
Wikipedia Android应用构建与发布工具集_android_qife_InfoQ写作社区