
AdGuard Mini开发者指南如何为Safari扩展贡献代码【免费下载链接】AdGuardMiniForMacAdGuard for Safari app extension项目地址: https://gitcode.com/gh_mirrors/ad/AdGuardMiniForMacAdGuard Mini是一款专为Safari浏览器设计的广告拦截扩展致力于为用户提供更清洁、更安全的网页浏览体验。本指南将帮助开发者快速了解项目结构、开发环境搭建以及贡献代码的完整流程轻松成为AdGuard Mini开源项目的贡献者。准备工作开发环境搭建在开始贡献代码之前需要确保开发环境满足以下要求并完成相关工具的安装与配置。必备工具与版本要求AdGuard Mini的开发依赖于多种工具以下是详细的版本要求工具版本说明Xcode26用于处理.icon资产格式及编译macOS应用Node.js22JavaScript运行时环境支持Yarn、Webpack等前端工具Ruby3.2.2Fastlane和构建脚本依赖Bundler2.6Ruby依赖管理工具Yarn1.22前端依赖管理工具Python3.9用于Protobuf schema生成此外开发机器需运行macOS 26以支持Xcode 26而最终用户的最低系统版本要求为macOS 12。仓库克隆与环境初始化首先克隆项目仓库到本地git clone https://gitcode.com/gh_mirrors/ad/AdGuardMiniForMac项目依赖于一些私有仓库需要将adguard-mini-private放置在与adguard-mini同级的目录下或通过adguard-mini-private-template手动创建Projects/ ├── adguard-mini/ └── adguard-mini-private/接着运行配置脚本初始化开发环境./configure.sh dev该脚本会自动完成Ruby gems安装、凭据加载、Python虚拟环境创建、protoc工具安装以及证书同步等工作。最后安装前端依赖yarn项目结构概览AdGuard Mini项目结构清晰主要包含以下核心模块AdguardMini/主应用目录包含源代码、资源文件及扩展模块。Sources/核心功能实现如广告拦截、设置管理等。Resources/应用资源包括多语言本地化文件、图标等。PopupExtension/Safari扩展弹窗相关代码。sciter-ui/前端UI实现基于Sciter框架。Scripts/构建脚本用于处理资源、生成代码等。Support/Scripts/辅助脚本如本地化处理、数据清理等。了解项目结构有助于快速定位功能模块提高开发效率。开发流程编码与测试代码风格规范为确保代码质量和一致性项目采用以下代码风格规范Swift使用SwiftLint进行代码检查配置文件位于AdguardMini/.swiftlint.yml。TypeScript使用ESLint进行检查配置文件位于AdguardMini/sciter-ui/scripts/lint/prod.mjs。提交前检查Husky会自动运行lint-staged对TypeScript文件进行检查。详细的代码指南和架构规范可参考AGENTS.md。前端开发与调试AdGuard Mini的前端UI基于Sciter框架开发支持热重载和快速调试# 开发构建一次性 yarn build:dev # 监听模式文件变化时自动重建 yarn start # 热重载模式重建UI并重启应用 # 终端1 yarn start # 终端2 yarn watchProject # Webpack开发服务器浏览器调试模式 yarn devserver测试与构建项目测试主要包括Swift单元测试可通过Xcode或Fastlane运行# 通过Fastlane运行测试 bundle exec fastlane test构建命令如下支持不同环境配置# 生产环境构建Sciter UI yarn build:prod # 通过Fastlane构建不同配置 bundle exec fastlane build config:Debug bundle exec fastlane build config:Release bundle exec fastlane build config:MAS贡献代码从修改到提交常见开发任务Protobuf Schema更新项目使用Protobuf进行Swift与TypeScript之间的通信修改.proto文件后需重新生成代码bundle exec fastlane update_proto_schema相关文件路径Schema定义AdguardMini/sciter-ui/schema/生成的Swift代码AdguardMini/SciterResources/SciterSchema/Sources/生成的TypeScript代码AdguardMini/sciter-ui/modules/common/apis/本地化处理项目支持35种语言通过TwoSky进行本地化管理# 拉取所有翻译 ./Support/Scripts/locales.sh # 推送Swift基础语言包 ./Support/Scripts/locales.sh push # 拉取TypeScript翻译 yarn locales:pull # 推送TypeScript基础语言包 yarn locales:pushMaster依赖更新更新项目依赖需使用Fastlane命令确保版本兼容性# 更新所有依赖 bundle exec fastlane update_third_party_deps # 更新特定包 bundle exec fastlane update_third_party_deps packages:assistant,safariconverterlib注意SafariConverterLib和adguard/safari-extension版本必须保持一致更新后需手动验证。提交代码与 pull request完成代码修改后需确保通过所有 lint 检查和测试然后提交 pull request。提交信息应清晰描述修改内容遵循项目的贡献规范。扩展功能预览AdGuard Mini提供了丰富的Safari扩展功能以下是启用扩展的界面示例通过这些界面用户可以轻松管理AdGuard的各类扩展如广告拦截、隐私保护等功能。故障排除与资源常见问题解决Ruby版本过旧通过Homebrew安装最新Ruby并添加到PATHbrew install ruby echo export PATH/opt/homebrew/opt/ruby/bin:$PATH ~/.zshrc测试构建失败在Xcode中切换到测试目标检查并添加缺失的源文件。TestFlight无构建可能是应用包验证问题查看相关邮件获取详细错误信息。更多资源DEVELOPMENT.md详细开发指南README.md产品概述和用户文档fastlane/README.mdFastlane命令文档通过本指南您已掌握为AdGuard Mini贡献代码的基本流程。期待您的贡献让AdGuard Mini为更多Safari用户提供更好的广告拦截体验 【免费下载链接】AdGuardMiniForMacAdGuard for Safari app extension项目地址: https://gitcode.com/gh_mirrors/ad/AdGuardMiniForMac创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考