Conversation
AFTERIMAGE_DEVICE_NAME=<name> xcrun ... | python3 only exported the variable to xcrun, so the parser raised KeyError and screenshot capture never succeeded. Pass the name as argv instead. Also created the iPhone 16 Pro Max / iOS 26.5 simulator the contract requires, which was missing on the self-hosted runner.
xcodebuild does not forward the shell environment to test runner processes unless the variable is prefixed with TEST_RUNNER_. The UI test therefore never saw AFTERIMAGE_SCREENSHOT_OUTPUT_DIR, skipped itself, and the screenshot gate failed with three missing artifacts on every run.
…iably The screenshot capture had never succeeded end to end. Three defects: - AFTERIMAGE_DEVICE_NAME was set on the left side of a pipe, so it reached xcrun but not the python reader, which died on KeyError. - xcodebuild does not forward shell environment to the test runner without a TEST_RUNNER_ prefix, so the UI test hit XCTSkip on every run. - The ready marker was queried only via otherElements, which misses the scroll-view-backed scenes, and the rendered PNG kept an alpha channel (colorType 6) that App Store submission rejects. Simulator name now passes as argv, the output dir is exported as TEST_RUNNER_AFTERIMAGE_SCREENSHOT_OUTPUT_DIR, the marker is matched with descendants(matching: .any), and the screenshot is re-encoded through an opaque device-RGB context so the PNG is colorType 2 (no alpha).
|
No actionable comments were generated in the recent review. 🎉 ℹ️ Recent review info⚙️ Run configurationConfiguration used: Organization UI Review profile: CHILL Plan: Advanced Run ID: 📒 Files selected for processing (3)
Included review availability: Your plan provides up to 1 included review per hour; 0 remain after this review. WalkthroughApp Storeスクリーンショット処理を更新しました。アクセシビリティ検索、不透明PNG生成、シミュレータ名の引数渡し、出力先環境変数名を変更しました。 ChangesApp Storeスクリーンショット処理
Priority: ➖ Normal Estimated code review effort: 3 (Moderate) | ~20 minutes Change: Bug fix Merge Risk: ⚪ Minimal · up to No concrete merge-blocking issue was established in the changed screenshot workflow. 🚥 Pre-merge checks | ✅ 4 | ❌ 1❌ Failed checks (1 warning)
✅ Passed checks (4 passed)
✨ Finishing Touches 💡 1📝 Generate docstrings 💡
🧪 Generate unit tests (beta)
Warning Git: CodeRabbit could not clone the repository, so clone-backed analysis was skipped and this review may be incomplete. Verify repository clone access, such as SSH credentials, before requesting another full review. If clone access is intentionally unavailable, use Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. ウサギが準備マーカーを見つけたよ Comment |
何が壊れていたか
App Store screenshotsワークフローは一度も成功していませんでした。npm run screenshots:app-storeは4つの欠陥で必ず失敗していました。run履歴が空だったのはそのためです。AFTERIMAGE_DEVICE_NAME=... xcrun ... | python3KeyErrorで即死AFTERIMAGE_SCREENSHOT_OUTPUT_DIRをそのまま exportxcodebuildはシェルenvをテストランナーへ渡さないためXCTSkipapp.otherElements["app-store-screenshot-ready-*"].otherにならず要素を発見できないUIGraphicsImageRendererFormat.opaque = true修正
TEST_RUNNER_AFTERIMAGE_SCREENSHOT_OUTPUT_DIRとして export(xcodebuildの公式な受け渡し方法)descendants(matching: .any)で識別子を照合契約マーカー(
verify-app-store.mjsが検査する文字列)はすべて維持しています。検証(実測)
self-hosted macOS 実機で生成 → CI でも実走:
app-store-screenshotsワークフロー: success(初)1320x2868,colorType=2, alpha なし, portrait ×3verification.json:status: "passed",failures: []npm test: 122 passednpm run verify:app-store: PASS残り
submission モードの15ゲート(
releaseCommit、法務記録、実機スモーク等)は本PRの対象外です。Summary by CodeRabbit
アクセシビリティ
バグ修正