首页/新闻资讯/正文详情

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

发布时间:2026/9/23 11:10:10 来源:云帆数科 栏目:资讯中心
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),仅供参考

相关推荐

PyCharm 键盘快捷键速查表:Quick Reference 备忘清单完全指南
PyCharm 键盘快捷键速查表:Quick Reference 备忘清单完全指南

PyCharm 键盘快捷键速查表:Quick Reference 备忘清单完全指南 【免费下载链接】reference 为开发人员分享快速参考备忘清单(速查表) 项目地址: https://gitcode.com/jaywcjlove/reference 本篇技术指南以开源仓库 jaywcjlove/reference 中的 PyCharm 键盘快捷… · 2026/9/23 11:10:10

2026最新背景图卡通技术选型对比:3大主流方案深度解析
2026最新背景图卡通技术选型对比:3大主流方案深度解析

2026最新背景图卡通技术选型对比:3大主流方案深度解析 版本升级后 API 全变了,这是很多前端和后端开发在 2026 最新项目里遇到的最大噩梦。特别是处理背景图卡通这种视觉特效时,底层渲染引擎的迭代让旧代码直接报错。今天咱们不整虚的,直… · 2026/9/23 11:10:10

爱国者充电宝怎么样入门到精通
爱国者充电宝怎么样入门到精通

这是一个非常典型的**“指令冲突”**案例。 核心矛盾点分析: 关键词错配 :你给出的关键词是【爱国者充电宝怎么样】,这是一个 3C数码/消费电子产品 的评测类话题。 角色/场景错配… · 2026/9/23 11:09:58

冰雪林中著此身性能优化最佳实践
冰雪林中著此身性能优化最佳实践

冰雪林中著此身性能优化最佳实践 面对满屏红色的 StackTrace 报错,很多开发者第一反应是懵圈。不知道哪一行代码炸了,更不知道如何从这一堆乱麻里找出性能瓶颈。这种“报错一堆看不懂”的困境,正是阻碍项目上线、拖慢响应速度的核心元凶。要解… · 2026/9/23 11:50:15

3天搞定影视大全视频后端:图解原理与避坑实战
3天搞定影视大全视频后端:图解原理与避坑实战

3天搞定影视大全视频后端:图解原理与避坑实战 官方文档太长,抓不住重点,这是很多新手在接触视频类项目时的真实困境。面对海量的API定义和业务逻辑,直接读文档容易迷失。我们需要的是 图解原理… · 2026/9/23 11:50:08

君正T40 EVB原理图深度解析:电源树、DDR参考网络与启动配置
君正T40 EVB原理图深度解析:电源树、DDR参考网络与启动配置

简介:北京君正T40EVB原理图是面向AIoT与机器视觉应用的T40通用型SoC评估底板原理图文件,适合嵌入式硬件工程师、方案设计人员、AIoT产品开发者与研究者参考。T40集成双核XBurst2处理器、RISC-V协处理器与8TOPS AI引擎,支持4K ISP及多摄像头输… · 2026/9/23 11:49:18

java循环语句入门到精通:3个底层原理拆解Stack Trace报错
java循环语句入门到精通:3个底层原理拆解Stack Trace报错

java循环语句入门到精通:3个底层原理拆解Stack Trace报错 刚打开IDEA跑代码,控制台直接炸出一屏红色的Stack… · 2026/9/23 11:49:18

WSL2 + Webman + Swoole 开发环境搭建实录(中):打通 Windows 服务与代码仓库
WSL2 + Webman + Swoole 开发环境搭建实录(中):打通 Windows 服务与代码仓库

WSL2 Webman Swoole 开发环境搭建实录(中):打通 Windows 服务与代码仓库上篇把 WSL 里的 PHP/Swoole/Webman 项目跑到了 composer install 通过,但项目还连不上数据库,代码也没地方备份。 中篇(本篇&… · 2026/9/23 11:49:11

与的繁体图解原理:3个坑让你面试挂科
与的繁体图解原理:3个坑让你面试挂科

与的繁体图解原理:3个坑让你面试挂科 上周有个学员找我吐槽,说面试时被问“与的繁体在数据库里怎么存才不炸”,他愣了半天,只憋出一句“用UTF-8呗”。面试官没说话,直接让他回去等通知。 这就是典型的 面试被问原理答不上来 。… · 2026/9/23 11:49:11

3招搞定手机怎么下载微信面试难题实战项目解析
3招搞定手机怎么下载微信面试难题实战项目解析

3招搞定手机怎么下载微信面试难题实战项目解析 面试被问“手机怎么下载微信”背后的原理,90%的人答不上来。别笑,这看似弱智的问题,实则是考察你对移动应用分发机制、安全校验及网络协议理解的试金石。我带过不少校招新人,他们背了八股文,却连一个A… · 2026/9/23 0:00:03

你有新短消息请注意查收:3个新手避坑指南搞定消息系统选型
你有新短消息请注意查收:3个新手避坑指南搞定消息系统选型

你有新短消息请注意查收:3个新手避坑指南搞定消息系统选型 面试被问“高并发下如何保证消息不丢失”,你张口就是“用Redis”,结果面试官追问“如果Redis宕机了怎么办”,你瞬间卡壳。这种场景太常见了,很多新手在背八股文时,只记住了技术名词… · 2026/9/23 0:00:29

Win7无线热点配置工具源码解析:解决API失效的3个实战技巧
Win7无线热点配置工具源码解析:解决API失效的3个实战技巧

Win7无线热点配置工具源码解析:解决API失效的3个实战技巧 Win7无线热点配置工具在Win10/11上跑不动?不是你的问题,是版本升级后 API 全变了。很多老项目里的 netsh wlan… · 2026/9/23 0:00:36

了解更多?预约专属演示

我们的顾问将为您一对一讲解产品与方案

企业微信二维码