测试【免费下载链接】EarlGrey:tea: iOS UI Automation Test Framework项目地址https://gitcode.com/gh_mirrors/ea/EarlGrey点击查看免费下载EarlGrey 的安装与版本选择横跨三套独立版本体系——框架 Release 版本、Ruby 安装工具earlgreygem 的版本、以及 CocoaPods 的最低支持版本。本文以仓库中的 docs/versions.md 为核心骨架完整整理这张官方版本对照表并结合 gem 目录下的源码实现、CHANGELOG.md 与 EarlGrey.podspec.json 等仓库证据帮助你在集成 EarlGrey 时正确选版、排障版本错位并理解 gem 安装工具在底层到底做了什么。读完本文你将能够根据目标 EarlGrey Release 快速定位应安装的earlgreygem 版本判断自己的 CocoaPods 版本是否满足最低要求掌握gem install earlgrey -v x.y.z、pod EarlGrey、carthage update三条主要安装路径的选版逻辑。为什么需要一张版本对照表EarlGrey 的日常使用会同时涉及三个独立演进的版本号EarlGrey Release 版本即框架本身EarlGrey.framework的发布版本如1.16.0、1.15.1。它是你在Podfile、Cartfile.private或手动拖入工程时真正依赖的版本。earlgreygem 版本官方提供的 Ruby 安装工具见 gem/earlgrey.gemspec名称earlgrey描述为 “Command line tool for installing EarlGrey into an iOS Unit Testing target”。它负责把框架自动配置进 Xcode 测试 Target。CocoaPods 版本集成 EarlGrey 所依赖的 CocoaPods 工具自身的最低版本。在 EarlGrey 的早期历史上这三者并不总是同步演进尤其 gem 版本在 1.9.3 之前长期停留在0.x阶段如0.0.8、0.1.5、0.2.1与框架 Release 的1.x号段明显错位。如果不加对照直接安装最新 gem可能与目标框架版本不匹配因此官方在 docs/versions.md 中固化了一张完整的映射表。核心版本对照总表下表完整继承自 docs/versions.md列出每个 EarlGrey Release 对应的推荐earlgreygem 版本以及最低支持的 CocoaPods 版本EarlGrey Release 版本对应的 EarlGrey Gem 版本最低支持的 CocoaPods 版本1.16.01.16.01.0.01.15.11.14.01.0.01.15.01.14.01.0.01.14.01.14.01.0.01.13.01.13.01.0.01.12.11.12.11.0.01.12.01.12.01.0.01.11.01.11.01.0.01.10.11.10.11.0.01.10.01.10.01.0.01.9.41.9.41.0.01.9.31.9.31.0.01.9.20.2.11.0.01.9.10.2.01.0.01.9.00.2.01.0.01.8.00.2.01.0.01.7.20.1.51.0.01.7.10.1.51.0.01.7.00.1.51.0.01.6.20.1.51.0.01.6.10.1.41.0.01.6.00.1.31.0.01.5.30.1.11.0.01.5.20.1.11.0.01.5.10.1.01.0.01.5.00.1.01.0.01.4.00.0.141.0.01.3.10.0.131.0.01.3.00.0.111.0.01.2.00.0.101.0.01.1.00.0.91.0.01.0.00.0.80.39.0读表时建议关注三个关键信息从 1.9.3 起earlgreygem 版本号与框架 Release 版本号完全一致如1.16.0↔1.16.0、1.13.0↔1.13.0此前则需按行逐一对照例如 Release1.6.2应对应 gem0.1.5Release1.4.0应对应 gem0.0.14。1.15.1与1.15.0是两处值得注意的“版本未随发”特例这两个 Release 对应的 gem 都是1.14.0即框架发了两个补丁/小版本而 gem 并未同步升号。若你在集成 1.15.x 时看到 gem 版本疑问这属于官方映射并非错误。最低 CocoaPods 版本几乎全线为1.0.0仅最早期的1.0.0Release 对应0.39.0。从 1.9.3 起gem 版本与 CocoaPods 版本同步的来历docs/versions.md 明确写道“From 1.9.3, we updated the version number of the EarlGrey gem to be in sync with the CocoaPods version.” 也就是说官方从1.9.3起把 gem 的版本号策略改为与框架 Release 同步发布彻底结束了早期 gem 停留在0.x号段的错位局面。这一点在当前仓库中可以交叉验证gem/lib/earlgrey/version.rb 中定义EarlGrey::VERSION 1.16.0与当前最新 Release 完全一致gem/earlgrey.gemspec 以该常量作为 gem 版本并声明required_ruby_version 2.1、运行时依赖colored、thor、xcodeproj 1.3.0三个 Ruby 库框架侧 EarlGrey.podspec.json 与 EarlGrey-Info.plist 中的CFBundleShortVersionString同样都是1.16.0。三处版本号对齐正是“同步发布”策略在仓库内的具体体现。反过来看1.9.3 之前对应表中 gem 版本为0.2.1、0.2.0、0.1.x、0.0.x的时期gem 与框架各自独立发版映射关系必须依赖官方表格这也是这张对照表最核心的价值所在。早期 CocoaPods 0.39.0 用户的特别说明docs/versions.md 中还包含一条面向旧用户的指引如果你正在使用 CocoaPods0.39.0应当参考更早期版本的 EarlGrey 安装说明而不是当前最新的 docs/install-and-run.md。这条提示的历史背景很清晰只有 EarlGrey1.0.0Release 对应0.39.0这一最低 CocoaPods 版本而1.0.0之后的全部 Release 都要求 CocoaPods1.0.0。CocoaPods 0.39 时代的安装流程包括configure_earlgrey_pods.rb脚本、post_install 钩子等与 1.0 之后由 gem 自动配置的流程差异很大在 gem/lib/earlgrey/configure_earlgrey.rb 中可以看到旧式post_install中的configure_for_earlgrey调用如今已直接输出弃用提示并说明 “EarlGrey pod will automatically set up your project and schemes”早期脚本迁移到 gem 的时间点从 CHANGELOG.md 的 1.1.0 条目可以印证“Easier CocoaPods setup using EarlGrey gem which replaces manually copying overconfigure_earlgrey_pods.rbandEarlGrey.swiftfile”同时该版本更新了安装指南以支持 CocoaPods 0.39。因此若你的工程仍停留在 CocoaPods 0.39.0应参考与 EarlGrey 1.0.0 时代匹配的旧安装说明若已升级到 CocoaPods 1.0.0 及以上则直接遵循当前仓库的 docs/install-and-run.md 即可。根据对照表选择与安装版本结合 docs/install-and-run.md 与 gem/README.mdEarlGrey 支持 CocoaPods、Carthage 与手动GitHub三种集成方式版本选择逻辑如下。CocoaPods 路径在测试 Target 对应的Podfile片段中声明依赖use_frameworks!仅 Swift 测试 Target 需要inherit! :search_paths用于避免 App 与测试 Target 双重链接库target TEST_TARGET do project PROJECT_NAME use_frameworks! # Required for Swift Test Targets only inherit! :search_paths # Required for not double-linking libraries in the app and test targets. pod EarlGrey end随后执行pod install。选版要点框架版本由pod EarlGrey的解析规则决定默认取 Pod 最新版即当前1.16.0见 EarlGrey.podspec.jsongem 版本需要单独安装。要下载特定版本的 gem按官方文档使用gem install earlgrey -v x.y.z其中的x.y.z应从上表第二列选取例如目标 Release 为 1.13.0 时安装gem install earlgrey -v 1.13.0官方强烈建议保持 EarlGrey 版本与最新 Release 同步以持续获得同步性与稳定性修复。Carthage 路径在Cartfile.private中指定版本也可用master分支替代 Release tagecho github google/EarlGrey 1.16.0 Cartfile.private更新并生成Cartfile.resolvedcarthage update EarlGrey --platform ios安装 gem 并把框架自动接入测试 Targetgem install earlgrey earlgrey install -t EarlGreyExampleSwiftTests-t参数传入测试 Target 名如需查看更多安装选项可运行earlgrey help install其完整选项见下文源码部分。手动GitHub路径下载对应 Release 源码后构建 EarlGrey.xcodeproj 得到EarlGrey.framework手动完成 Link Binary、Target Dependency、DYLD_INSERT_LIBRARIES环境变量与 Copy Files 阶段配置。该路径不涉及 gem选版即选 Release tag但配置步骤最多具体操作以 docs/install-and-run.md 的 “GitHub Installation” 章节为准。配套源码gem 在安装时到底做了什么理解了版本对照再看 gem 的执行逻辑就顺理成章。CLI 入口定义在 gem/lib/earlgrey/cli.rb其install子命令支持的选项如下选项别名类型/默认值说明--project-p字符串默认取当前目录下第一个*.xcodeproj指定 Xcode 工程--target-t字符串必填指定测试 Target 名--scheme-s字符串默认取 Target 名指定 Scheme 文件名--carthage/--no-carthage—布尔默认true是否按 Carthage 方式配置--swift/--no-swift—布尔默认true是否向测试 Target 添加EarlGrey.swift--swift-version—字符串默认4.0取值3.0/4.0选择 Swift 桥接文件的版本核心配置流程在 gem/lib/earlgrey/configure_earlgrey.rb 的configure_for_earlgrey方法中按顺序完成修改 Scheme为测试 Scheme 的 Test Action 注入DYLD_INSERT_LIBRARIESexecutable_path/EarlGrey.framework/EarlGrey环境变量确保动态加载器在main()之前载入 EarlGrey添加 framework 引用根据carthage标志选择Carthage/Build/iOS/EarlGrey.framework或Pods/EarlGrey/EarlGrey/EarlGrey.framework路径生成 Copy Files 阶段名为EarlGrey Copy Filesdst_path为$(TEST_HOST)/../并开启CodeSignOnCopy把框架嵌入被测 AppCarthage 搜索路径当使用 Carthage 时向构建配置追加FRAMEWORK_SEARCH_PATHS$(SRCROOT)/Carthage/Build/iOS与HEADER_SEARCH_PATHS$(SRCROOT)/Carthage/Build/iOS/**复制 Swift 桥接文件若 Target 含 Swift 源码则按--swift-version从 gem/lib/earlgrey/files/Swift-4.0/EarlGrey.swift 或 gem/lib/earlgrey/files/Swift-3.0/EarlGrey.swift 复制EarlGrey.swift并加入编译源找不到对应版本时回退到 Swift 4.0 文件。另外CocoaPods 场景下 gem 还以插件形式工作gem/lib/cocoapods_plugin.rb 通过 gem/lib/earlgrey/extensions/analyzer_extensions.rb 挂载到Pod::Installer::Analyzer在analyze阶段自动识别包含 EarlGrey spec 的 Target判断逻辑见 gem/lib/earlgrey/extensions/aggregate_target_extensions.rb 的is_earlgrey?随后自动完成 framework 链接、Copy Files 阶段与 Scheme 环境变量注入无需在Podfile里写任何 post_install 钩子。结合 CHANGELOG 看版本演进脉络将版本表与 CHANGELOG.md 对照可以还原每个号段的工程背景帮助判断选版时的取舍1.0.02016-02首个 Release框架初版面向 CocoaPods 0.39 时代对应 gem0.0.8。1.1.0 – 1.4.0新增 Carthage 支持、Jazzy API 文档与 cheatsheetgem 开始替代手动的configure_earlgrey_pods.rb脚本对应 gem 版本0.0.9→0.0.14。1.5.0 – 1.8.0Swift 3.0 / 2.3 支持逐步完善1.8.0 引入多指滑动multi-finger swipe动作 APIgem 版本进入0.1.x、0.2.0。1.9.0 – 1.9.41.9.0 要求 iOS 8 为最低部署目标1.9.3 是 gem 版本与框架版本同步的分水岭1.9.4 新增kGREYConfigKeyArtifactsDirLocation配置键。1.10.0 – 1.12.x同步性与状态跟踪持续优化如GREYAppStateTracker内存改进、NSURLSession同步增强1.11.0 增加 iOS 11 / Xcode 9 支持1.12.1 修正 podspec 指向。1.13.0 – 1.16.01.13.0 增加 shake 动作支持并改进键盘设置稳定性1.14.0 为 gem 增加 Swift 4 支持1.15.x 修复 TrustKit swizzling 与 Swift 5 包装1.16.02019-10修复 iOS 13 上的运行时崩溃是该仓库 1.x 系列的最后一个 Release。需要特别留意的是仓库根 README.md 已在顶部声明EarlGrey 1.0 已被弃用官方推荐迁移到与 XCUITest 集成的 EarlGrey 2.0earlgrey2分支1.0 不再随 iOS 13 内部维护。因此本文涉及的版本对照主要适用于仍在使用 EarlGrey 1.x 的存量工程做选版与排障。兼容性边界iOS 与 Xcode 对照选版时除了版本号映射还要核对运行环境。仓库中的 docs/backward-compatibility.md 给出了 EarlGrey 1.x 的官方兼容矩阵iOS 版本Xcode 版本DevicesSimulatorsiOS 8.x8.0 – 8.3.3iPhone、iPadiPhone、iPadiOS 9.x8.0 – 8.3.3iPhone、iPadiPhone、iPadiOS 10.3.38.0 – 8.3.3iPhone、iPadiPhone、iPadiOS 11.09.0 – 9.4iPhone、iPadiPhone、iPadiOS 12.010.0b1 – 11iPhone、iPadiPhone、iPadiOS 13.011.0 – 11.1iPhone、iPadiPhone、iPad从源码结构看框架对 iOS 8 以上系统的支持也体现在 EarlGrey.podspec.json 的platforms.ios 8.0声明中。若你的测试环境高于上述矩阵例如更新的 Xcode应优先评估 EarlGrey 2.0 或结合仓库已知问题文档判断而不是盲目沿用 1.x 的版本对照表。总结一张表、两条规则回顾 docs/versions.md 的全部要点EarlGrey 1.x 的版本管理可以收敛为两条规则版本对应看表不靠猜框架 Release、earlgreygem、CocoaPods 三套版本号并非始终一致尤其 1.9.3 之前与 1.15.x 两处特例必须以本文继承的官方对照表为准新工程跟随最新旧工程先查兼容矩阵当前仓库主版本为1.16.0可从 gem/lib/earlgrey/version.rb、EarlGrey.podspec.json 与 EarlGrey-Info.plist 交叉确认CocoaPods 用户要求 1.0.0且需对照 docs/backward-compatibility.md 的 iOS/Xcode 矩阵核验运行环境。若你仍停留在 CocoaPods 0.39.0请回退到与 EarlGrey 1.0.0 时代匹配的旧安装流程其余用户则可放心按 docs/install-and-run.md 走 gem CocoaPods/Carthage 的自动化配置路径。赞分享测试【免费下载链接】EarlGrey:tea: iOS UI Automation Test Framework项目地址https://gitcode.com/gh_mirrors/ea/EarlGrey点击查看免费下载相关推荐EarlGrey 版本兼容性指南iOS、Xcode 与设备/模拟器支持矩阵全解析EarlGrey 版本兼容性指南iOS、Xcode 与设备/模拟器支持矩阵全解析 EarlGrey 是 Google 开源的 iOS 原生 UI 自动化测试框测试终极指南Zellij插件与核心版本兼容性完全对照表终极指南Zellij插件与核心版本兼容性完全对照表 Zellij作为一款功能强大的终端工作区工具其丰富的插件生态系统极大扩展了使用体验。然而随着版本迭代插开发工具CLI如何使用OpenSCAP进行系统漏洞扫描完整命令行操作指南如何使用OpenSCAP进行系统漏洞扫描完整命令行操作指南 OpenSCAP是一款NIST认证的SCAP 1.2工具包提供全面的系统漏洞扫描和合规性检查能力上一篇从零开始构建专业企业官网Halo开源建站工具全攻略下一篇Unity专业版免费解锁方案UniHacker跨平台破解工具全面解析创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考