ARTICLE DETAIL

资讯详情

深耕网站建设与运营推广的一线实战洞察。

Skia CI 资产 ios-dev-image-14.4:iOS 开发镜像的创建与更新指南

Skia CI 资产 ios-dev-image-14.4:iOS 开发镜像的创建与更新指南 图形学【免费下载链接】skiaSkia is a complete 2D graphic library for drawing Text, Geometries, and Images. See documentation for contribution instructions.项目地址https://gitcode.com/gh_mirrors/ski/skia点击查看免费下载导读本文介绍 Skia 持续集成CI体系中ios-dev-image-14.4这一资产的用途与维护方法。该资产承载 Xcode 随附的 iOS 14.4 设备开发镜像Developer Disk Image供 CI 机器在真机测试前将镜像挂载到 iPhone 上。读完本文你将掌握该资产的创建/更新命令、前置条件以及它从上传、存储到被测试任务消费的完整链路。资产是什么Skia CI 的 Assets 体系Skia 的测试与编译机器人bots需要大量工具链与系统镜像统一托管在infra/bots/assets/目录下通过版本号存储在 Google Cloud Storage 中。正如 infra/bots/assets/README.md 所述This directory contains tooling for managing assets used by the bots. The primary entry point is assets.py, which allows a user to add, remove, upload, and download assets. Assets are stored in Google Storage, named for their version number.每个资产占一个子目录标准结构为VERSION当前资产版本号infra/bots/assets/README.md可选create.py生成资产的脚本由sk asset upload调用可选create_and_upload.py用户自定义的便捷封装脚本。ios-dev-image-14.4目录当前仅含两个文件README.md 与 VERSION其中VERSION内容为0。它属于需要人工从本机 Xcode 提取、无法在 CI 上自动再生的资产因此目录中不提供create.py。为什么需要 iOS 开发镜像真机 iOS 测试不是开箱即用的。CI 脚本在连接设备后必须把与设备 iOS 版本匹配的 Developer Disk ImageDeveloperDiskImage.dmg及其签名文件.dmg.signature挂载到设备上才能执行安装应用、运行测试等操作。Skia 的做法是把这些镜像做成版本化资产随测试任务一并下发到机器人。镜像来源是 Xcode 自带目录/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/DeviceSupport/该目录下按 iOS 版本分子目录如14.4每个子目录内即为对应版本的开发镜像。创建或更新资产核心命令资产 README 给出了完整的操作命令infra/bots/assets/ios-dev-image-14.4/README.mdTo create or update this asset, you will need a Mac with Xcode installed. Just run:./upload.py --target_dir \ /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/DeviceSupport/14.4要点拆解前置条件一台安装了 Xcode 的 Mac。因为目标路径位于 Xcode 应用包内部Windows/Linux 无法提供该镜像--target_dir参数指向本机DeviceSupport/14.4目录即镜像原始出处上传时按目录打包./upload.py这是资产目录历史文档中使用的上传脚本名。需要说明的是当前仓库中ios-dev-image-14.4目录内只保留README.md与VERSION并未包含upload.py按 infra/bots/assets/README.md 描述现在资产的统一操作入口是sk asset upload例如# 首次上传需提供资产位置 sk asset upload --in ${MY_ASSET_LOCATION} ios-dev-image-14.4 # 更新版本配合 create.py 或本地目录变更 sk asset upload ios-dev-image-14.4认证要求所有sk asset命令都要求拥有 google.com 账号并先执行gcloud auth application-default login完成认证infra/bots/assets/README.md版本号推进上传时VERSION会被更新后续make -C infra/bots train会依据新版本重新生成infra/bots/tasks.json最后提交代码infra/bots/assets/README.md。资产如何进入 CI 任务CIPD 打包链路上传后的资产并非直接以文件形式分发而是按version:N打包为 CIPD 包。在 task_builder.go 中可以找到包名与版本号的拼接逻辑pkg : specs.CipdPackage{ Name: fmt.Sprintf(skia/bots/%s, assetName), Path: assetName, Version: fmt.Sprintf(version:%d, version), }即ios-dev-image-14.4会被注册为skia/bots/ios-dev-image-14.4、版本version:0与VERSION文件内容一致。任务生成时通过TaskBuilder.asset(...)把这些包作为 CIPD 依赖注入任务task_builder.go机器人执行任务前即可自动拉取到本地。消费端测试任务如何挂载镜像镜像被拉取到机器人后由 recipe 层完成挂载。核心实现在 infra/bots/recipe_modules/flavor/ios.py 的_install()方法中完整流程为杀掉 usbmuxd仅 macOSsudo /usr/bin/killall -v usbmuxd随后 sleep 10 秒缓解连接问题ios.py配对设备先用idevicepair validate检查失败则执行idevicepair pairios.py检查已挂载镜像ideviceimagemounter --list若输出中不含ImageSignature则说明设备上尚未挂载ios.py定位资产包在当前目录下用 glob 匹配ios-dev-image*要求恰好命中一个包ios.py在包内查找.dmg与.dmg.signature文件缺一即报错ios.py挂载开发镜像ideviceimagemounter image sigios.py。之后才进入安装 Xcodexcode.install()、安装应用ideviceinstaller等后续步骤。这也解释了为什么资产必须完整包含DeveloperDiskImage.dmg与.dmg.signature——CI 脚本严格依赖这两个文件。版本映射任务如何选择正确的镜像不同 iOS 版本需要不同镜像映射逻辑位于 gen_tasks_logic.go 的maybeAddIosDevImage()任务维度dimension中出现os:iOS-版本时按版本选择资产例如11.4.1→ios-dev-image-11.413.3.1/13.4.1/13.5.1/13.6→ 对应ios-dev-image-13.x其中 patch 版本合并到同一资产注释写明“其他 patch 版本可归入同一个 case”。而18.2.1、18.4等较新版本则不需要预打包开发镜像。若遇到未收录的版本代码会直接log.Fatalf终止并提示若是新的 iOS 版本必须新增包含对应开发镜像的 CIPD 包可参考ios-dev-image-11.4的示例。这也说明 CI 维度的 iOS 版本号必须带版本缺失会触发强制校验错误见 gen_tasks_logic.go。从当前仓库源码结构看maybeAddIosDevImage的 switch 中并未显式列出14.4分支仓库中也存在ios-dev-image-13.x等兄弟资产assets 目录。这意味着ios-dev-image-14.4属于“已建目录、版本 0、待按需启用/更新”的状态若要让 iOS 14.4 真机任务使用它可参照 13.x 的 case 补上case 14.4: asset ios-dev-image-14.4映射并重新生成任务。维护要点小结更新镜像需在装有 Xcode 的 Mac 上进行目标目录固定为DeviceSupport/14.4上传前确认已通过gcloud auth application-default login认证上传走sk asset upload历史文档中的./upload.py为早期封装写法上传会推进VERSION随后需make -C infra/bots train重新生成任务配置并提交镜像必须同时包含.dmg与.dmg.signature否则测试脚本会直接失败新增 iOS 版本测试前先在maybeAddIosDevImage()中登记版本与资产映射避免任务生成阶段报错。赞分享图形学【免费下载链接】skiaSkia is a complete 2D graphic library for drawing Text, Geometries, and Images. See documentation for contribution instructions.项目地址https://gitcode.com/gh_mirrors/ski/skia点击查看免费下载相关推荐AutoGluon CI 镜像更新指南基于 AWS Batch ECR 的 Docker 构建与发布全流程AutoGluon CI 镜像更新指南基于 AWS Batch ECR 的 Docker 构建与发布全流程 导读 本文面向 AutoGluon 仓库的维护人工智能机器学习AutoML深度学习数据科学CANN/GE引擎功能分析Engine Feature Analysis 1 Feature Background 1.1 Problem Domain The Ascend AI pr人工智能深度学习模型编译模型优化编译器AscendKOReader OTA 更新为什么总卡在下载升级机制完整指南KOReader OTA 更新为什么总卡在下载升级机制完整指南 在 Kobo 上长按屏幕顶部呼出菜单点进「更新」检查新版本进度条走到一半却弹出「Unabl桌面应用跨平台嵌入式创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表