Skip to main content

ios-audio-e2e

Build and run device-backed iOS end-to-end checks for react-native-nitro-sound recording, playback, listeners, pause/resume, seek, speed, interruption, audio-session behavior, and rapid switching. Use for iOS audio regressions, Swift changes, or claims that require more than an Xcode compile.

معلومات المصدر

المستودع
hyochan/react-native-nitro-sound
آخر نشاط في المصدر
٧ أغسطس ٢٠٢٦ في ٠٢:٠٣
لغة SKILL.md المكتشفة
الإنجليزية
النجوم
٩٦١
التفرعات
٢٥٢

خيارات التثبيت

يُحدَّد Prompt الذي يراجع المصدر أولًا بشكل افتراضي. يمكنك التبديل إلى أمر مباشر أو تنزيل نسخة محلية.

مراجعة ملفات المصدر

اقرأ SKILL.md وأي ملفات مرافقة يعرضها SkillsMP قبل أن تقرر التثبيت.

مستكشف الملفات
2 ملفات

عرض SKILL.md

SKILL.md
تعليمات المصدر · معاينة للقراءة فقط
name
ios-audio-e2e
description
Build and run device-backed iOS end-to-end checks for react-native-nitro-sound recording, playback, listeners, pause/resume, seek, speed, interruption, audio-session behavior, and rapid switching. Use for iOS audio regressions, Swift changes, or claims that require more than an Xcode compile.
# iOS Audio E2E Separate build evidence from live microphone and speaker evidence. Never report an iOS runtime pass from a simulator compile alone. ## Safety And Scope - Obtain explicit approval in the current run before starting live microphone capture. State that the example app `sound.example` will record a short clip. - Use a test device and non-sensitive audio. Do not retain, upload, transcribe, or inspect recorded content beyond what is needed to prove the flow. - Preserve the user's signing, simulator, device, and audio-session settings. - Treat calls, Bluetooth routing, backgrounding, and other-app interruptions as separate opt-in rows; they alter device state and are not implied by a basic E2E request. ## Preflight 1. Read `AGENTS.md`, `.github/workflows/ci-ios.yml`, the changed Swift/spec/TS files, and the relevant example screen. 2. Record `git status --short --branch`; do not discard existing changes. 3. Run `xcodebuild -version` and `xcrun devicectl list devices`; select a physical iPhone. Use `$simulator-audio-e2e` for virtual-device coverage. 4. Confirm `example/ios/SoundExample/Info.plist` contains a microphone usage description and identify the selected destination. 5. Run `yarn install --immutable`, `yarn prepare`, and `./scripts/fix-nitrogen-swift.sh` when generated Swift is involved. ## Build Lane Mirror `.github/workflows/ci-ios.yml`: ```bash cd example bundle install bundle exec pod install --project-directory=ios cd .. xcodebuild \ -workspace example/ios/SoundExample.xcworkspace \ -scheme SoundExample \ -configuration Debug \ -sdk iphonesimulator \ -destination 'generic/platform=iOS Simulator' \ CODE_SIGNING_ALLOWED=NO \ SKIP_BUNDLING=YES \ build ``` Report this as `BUILD PASS` or `BUILD FAIL`, never as runtime E2E. ## Device Runtime Lane After microphone approval, run the smallest matrix covering the change: 1. Install and launch the example on the selected physical iPhone. Never report device-backed runtime evidence from this skill using a Simulator. 2. Grant microphone permission through the system prompt. 3. Start recording; require a resolved URI, `isRecording`, and increasing millisecond callbacks. 4. Pause and resume; require callback time to stop and then advance without a second recorder instance. 5. Stop; require a terminal state, listener cleanup, and a playable file. 6. Play the recorded clip; require increasing playback position and duration. 7. Exercise seek, volume, and playback speed when affected. 8. Require exactly one playback-end transition and successful stop/cleanup. 9. Run the Rapid Switch screen for concurrency or promise-settlement changes. For interruption, route change, or background work, capture the before/after audio-session state and verify recovery on a physical device. A manual gesture without matching app state and logs is insufficient. ## Evidence And Cleanup Capture the device identifier, iOS/Xcode versions, build configuration, tested screen/API, permission state, callback progression, returned path, and relevant redacted logs. Remove only recordings and temporary artifacts created by the current run. Report `RUNTIME PASS`, `RUNTIME FAIL`, or `BLOCKED` separately from the build result and list every untested row.
عرض على GitHub