iOS devices: `open <app> <url>` never delivers the URL, `--payload-url` is passed after the bundle ID
メンテナーはふだん 1 日以内に返信
まだ誰も着手していません。
評価
- 難易度
- 2/5
- 見積もり時間
- 1〜3時間
- 初心者へのやさしさ
- 88/100
- issue の種類
- バグ
- 明瞭さ
- 明確に書かれている
- 活発さ
- 活発
- 技術スタック
- ios, typescript
- 領域
- cli, mobile-dev, testing-qa
調査の方向性
packages/platform-apple/src/core/physical-device-coredevice.ts の起動引数の構築箇所から始め、packages/platform-apple/src/core/tests/apps.test.ts の期待値と比較します。関連する apps のテストを実行し、payload URL が起動オプションとして扱われ、物理 iOS デバイスに渡されることを確認します。その際、起動引数のサポートは引き続き維持します。
索引モデルが issue の本文から書いたものです。
説明
Summary
On a physical iPhone, open <bundle-id> <url> and Maestro openLink launch the app, but the app never receives the URL. The same call with devicectl works when --payload-url comes before the bundle ID.
Cause
The launch arguments put --payload-url after the bundle ID:
devicectl treats everything after the bundle ID as program arguments for the app:
USAGE: devicectl device process launch [<options>] --device <...> <bundle-identifier-or-path> [<command-line-arguments> ...]
So the app receives --payload-url <url> in its argv and opens no link. The unit test pins the same order:
Repro
Same device, same app state (app running on its first screen), custom-scheme link to a screen with a visible marker:
| Call | Link opens |
|---|---|
devicectl device process launch --device <udid> <bundle-id> --payload-url <url> |
no |
devicectl device process launch --device <udid> --payload-url <url> <bundle-id> |
yes |
agent-device open <bundle-id> <url> --platform ios --udid <udid> |
no |
A cold launch with --payload-url before the bundle ID also opens the link.
Possible fix
Push --payload-url <url> before the bundle ID, and keep -- <launch args> after it. Update the two expectations in apps.test.ts.
Environment
- agent-device 0.21.14. Same code in 0.21.15 and on
mainat 16e0757 - iPhone 14 Pro, iOS 26.2, USB, CoreDevice backend
- Xcode 26.4
- 主要言語
- TypeScript
- スター
- 4.7k
- フォーク
- 304
- 平均マージ
- 11時間 6分
- マージ済み PR(30日)
- 521
環境構築
はじめの一歩
- issue を最後まで読み、次にプロジェクトのコントリビューションガイドを読みます。
- 着手することを issue にコメントします — 二人が同じ作業をするのを防げます。
- リポジトリをフォークし、ブランチを切って変更します。
- issue 番号を参照したプルリクエストを送ります。
callstack/agent-device のほかの issue
-
難易度 2/5 1〜3時間 初心者へのやさしさ 84/100
callstack/agent-device#2995 ·
メンテナーはふだん 1 日以内に返信
-
Proxy lease refuses every iOS install/open: connection platform 'ios' compared with internal 'apple'オープン
難易度 2/5 1〜3時間 初心者へのやさしさ 78/100
callstack/agent-device#2962 ·
メンテナーはふだん 1 日以内に返信
-
難易度 2/5 1〜3時間 初心者へのやさしさ 68/100
callstack/agent-device#1869 ·
メンテナーはふだん 1 日以内に返信
-
Maestro `eraseText` fails on real Android devices: `test` and `replay` cannot opt in to the test IMEオープン
難易度 3/5 1〜2日 初心者へのやさしさ 74/100
callstack/agent-device#2997 ·
メンテナーはふだん 1 日以内に返信
-
難易度 4/5 3〜5日 初心者へのやさしさ 52/100
callstack/agent-device#2996 · コメント 1 件 ·
メンテナーはふだん 1 日以内に返信
callstack/agent-device の issue をすべて見る
似ている issue
-
難易度 1/5 1〜3時間 初心者へのやさしさ 88/100
supabase/agent-skills#611 ·
-
難易度 1/5 1時間未満 初心者へのやさしさ 68/100
polka-codes/test#345 ·
メンテナーはふだん 1 日以内に返信
-
難易度 1/5 1〜3時間 初心者へのやさしさ 92/100
GoogleChromeLabs/project-sesame#217 ·
メンテナーはふだん 12 日以内に返信
-
難易度 2/5 1〜3時間 初心者へのやさしさ 74/100
solana-foundation/solana-com#2202 ·
メンテナーはふだん 1 日以内に返信
-
難易度 2/5 1〜3時間 初心者へのやさしさ 85/100