Hacktoberfest 2026:维护者为十月标记出来的 issue,仍然开放、适合新手。 浏览 Hacktoberfest issue

settings permission --app writes a display name as the bundle id instead of resolving it

已关闭
#3,384 0 条评论 0 个 reaction 已指派 0 人 在 GitHub 查看

维护者通常 1 天内回复

已经有一个关联 PR 被合并了。

  • #3386 来自 @thymikee —— 已合并

评估

难度
3/5
预计耗时
1-2 天
新手友好度
22/100
Issue 类型
缺陷
描述清晰度
描述清楚
活跃度
活跃
技术栈
android, ios, typescript
领域
cli, mobile-dev

调研方向

Start from how settings clear-app-state --app resolves a display name to a bundle id, then check where settings permission and iOS location pass app straight to simctl privacy or pm grant/pm revoke. Done when a display name reaches those calls as its resolved id, an unknown app is refused with details.dispatched: 'no', and tests cover both platforms. Open PR #3386 already targets this, so check it before starting.

由索引模型根据 Issue 内容生成。

描述

Problem

settings permission … --app <name> (#3179) passes the app through unresolved. On iOS it goes straight to simctl privacy; on Android it goes to pm grant or pm revoke. A display name is never resolved to its bundle id or package. settings clear-app-state --app, open and close all resolve it.

Live on 0.21.22 (iOS 27.1 simulator):

agent-device settings permission grant photos --app Maps --platform ios --udid <udid>
# Updated setting: permission

The simulator's TCC.db then has a kTCCServicePhotos row for client Maps, not com.apple.Maps. The real app never gets the permission, and the command reports success. settings clear-app-state --app Maps on the same device resolves to com.apple.Maps ("bundleId": "com.apple.Maps").

Consumer impact: tester-army/e2e pins apps by whatever app accepts, including display names (its quickstart uses bundleId: 'Settings'). To drop its "open the app first so the session names it" workaround, it needs --app on permissions to accept what open --app accepts.

Required behavior

  • An app-scoped settings mutation (permission, and iOS location grant/revoke) resolves an explicit app the way clear-app-state does: a bundle id or package passes through, and a display name resolves to the installed app's id.
  • An app that resolves to nothing is refused before anything is sent, with details.dispatched: 'no'. It is never written as a literal client id.

Done when

  • Tests on both platforms: a display name resolves to the id that reaches simctl privacy or pm, and an unknown app is refused.
  • Live on an iOS simulator: settings permission grant photos --app Maps writes the TCC.db row for com.apple.Maps.

Related: #3179.

主要语言
TypeScript
星标
4.9k
派生
328
平均合并
12 小时 18 分钟
30 天内合并 PR
561

环境准备

  • 没有 Dockerfile 或 Docker Compose 文件
  • 没有 Pull Request 模板
  • 阅读贡献指南

从这里开始

  1. 先读完整个 Issue,再读项目的贡献指南。
  2. 在 Issue 下留言说明你要接手 —— 这能避免两个人做同样的事。
  3. Fork 仓库,在一个分支上完成修改。
  4. 提交 Pull Request,并在描述里引用这个 Issue 编号。

callstack/agent-device 的其他 Issue

查看 callstack/agent-device 的全部 Issue

相似的 Issue

更多 TypeScript Issue

把新 issue 发到你的邮箱

精选适合新手参与的 GitHub issue 摘要。