Hacktoberfest 2026:メンテナが10月に向けて印を付けた、オープンで初心者向けの issue。 Hacktoberfest の issue を見る

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

クローズ
#3,384 コメント 0 件 リアクション 0 件 担当者 0 名 GitHub で見る

メンテナーはふだん 1 日以内に返信

関連するプルリクエストがすでにマージされています。

  • #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
平均マージ
11時間 49分
マージ済み PR(30日)
585

環境構築

はじめの一歩

  1. issue を最後まで読み、次にプロジェクトのコントリビューションガイドを読みます。
  2. 着手することを issue にコメントします — 二人が同じ作業をするのを防げます。
  3. リポジトリをフォークし、ブランチを切って変更します。
  4. issue 番号を参照したプルリクエストを送ります。

callstack/agent-device のほかの issue

callstack/agent-device の issue をすべて見る

似ている issue

TypeScript の issue をもっと見る

新しい issue をメールで受け取る

初心者向けの GitHub issue を短くまとめたダイジェスト。