dsh-ios v0.1.0-rc.6
Pre-releasedsh-ios v0.1.0-rc.6
真机构建的目标设备,从此和 WDA 路径说同一种 id;签名团队不再写死。/ Device builds now name the destination the way the WDA path already did, and the signing team is no longer hardcoded.
🐛 修复 / Fixed
- 真机构建的
-destination传 CoreDevice 标识符 / Device builds passed the CoreDevice identifier as the destination(#4)——ios_sim_build_run的真机分支把 devicectl 的 CoreDevice UUID 交给xcodebuild -destination platform=iOS,id=…,而 WebDriverAgentRunner 构建路径用的是硬件 UDID。现在两条路径一致使用硬件 UDID,只在 devicectl 未报硬件 UDID 时回退。/ The device branch handed xcodebuild the CoreDevice UUID while the WDA runner build used the hardware UDID. Both paths now use the hardware UDID, falling back only when devicectl reports none. - exit 70 的错误信息只有一份设备列表 / An exit-70 failure showed only the destination list(#4)—— xcodebuild 打印 "Available destinations" 时,错误现在带上插件进程实际使用的
id=、scheme 和DEVELOPER_DIR,可以直接和手动跑通的命令逐项对比。/ When xcodebuild dumps "Available destinations", the error now states the id, scheme andDEVELOPER_DIRthe plugin process used.
🔧 改进 / Changed
DEVELOPMENT_TEAM可配置 /DEVELOPMENT_TEAMis configurable(#4)—— WebDriverAgentRunner 构建的签名团队按 显式选项 > 环境变量DSH_IOS_TEAM_ID> 登录钥匙串里第一个 Apple Development 身份 > 旧默认值 解析,日志会写明来源。DSH_IOS_WDA_BUNDLE_ID同样可覆盖 runner 的 bundle id。其他团队不再需要 sed 改 lib。/ The WDA runner's signing team resolves as option >DSH_IOS_TEAM_ID> the first Apple Development identity in the login keychain > the legacy default, and the log names the source.DSH_IOS_WDA_BUNDLE_IDoverrides the runner bundle id the same way.
🧪 验证 / Verification
typecheck、build、devicectl 与 WDA 夹具套件全绿;scripts/dev-realdevice-smoke.mjs 新增回归断言,把硬件 UDID 的选择回退成旧代码时会变红(已实际验证)。
坦白一句:exit 70 未在我们的机器上复现 —— 本机 Xcode 26 对两种 id 都能解析出设备,报告人的双 Xcode 环境(DEVELOPER_DIR / scheme 自动选取)仍是待确认的嫌疑,#4 保持打开。/ Honest caveat: exit 70 did not reproduce here — on Xcode 26 both id forms resolve. The reporter's two-Xcode environment remains the open suspect; #4 stays open.
DSH_IOS_TEAM_ID=5CHT5RB9C3。/ Upgrade note: with an Apple Development identity in the keychain, the WDA signing team switches from the legacy default to that identity's team. Pin the old behaviour with DSH_IOS_TEAM_ID=5CHT5RB9C3.
🙏 致谢 / Credit
感谢 @mikeanan 在 #4 中的详细报告与 DEVELOPMENT_TEAM 的建议。/ Thanks to @mikeanan for the detailed report in #4 and the DEVELOPMENT_TEAM suggestion.
📦 安装 / Install
dsh plugin --profile web add @zseven-w/dsh-ios@latest
dsh webFull Changelog: v0.1.0-rc.5...v0.1.0-rc.6